首先我們應該了解一下多元線性回歸。相比於單變數線性回歸,該函式擁有多個變數值,那麼他所擁有的引數就不僅僅是乙個或者兩個,而是多個。例如下面這個函式:
如果把該函式的引數 θ 和變數 x 全部寫成向量的形式,就可以簡化成下面這個函式:
如果你想**房價,現在有兩個變數 x1 和 x2 來控制房子的**。 x1 為房子的大小,範圍在 0 到 2000,x2 為房子中臥室的數目,範圍在 0 到 5,那麼畫出這個代價函式的輪廓圖就是這個樣子,乙個扁扁的橢圓形。
對這個函式進行梯度下降,就是紅線的過程,你會發現,這個路程很長很曲折,這樣我們進行梯度下降所花費的時間就會很長。那麼我們應該怎樣來縮短這個時間呢?先從這個圖來下手。你看這個圖,麻麻賴賴的,一點都不圓潤,怎麼辦?盤它!(手動狗頭)
給它變成這個樣子不就好辦了嗎。怎麼盤?肯定不能用手盤呀,這裡就要用到特徵縮放(feature scaling)。將變數 x1 和 x2 都縮放到乙個範圍中,我們將他們都縮放到 -1 到 1 這個範圍內。最簡單的方法就是將 x1 除以 2000(因為他的範圍就是 0-2000), x2 除以 5。現在變數 x1 和 x2 的範圍全部都在 -1 到 1 這個區間了,但是又出現乙個問題,你發沒發現,現在經過處理之後的資料全是正值,不分散,那麼我們就要用稍微複雜一點的方法進行特徵縮放。用均值歸一化(mean normalization)的方法處理資料:
其中 μn 為平均值,sn 為標準差,也可以用這個變數最大值與最小值的差。現在你就會發現,資料既有正值也有負值,分散在-1 到 1 這個區間,進行梯度下降就很快啦。
Udacity 機器學習入門 特徵縮放
因為在這裡,體重完全主導了結果,身高的影響微乎其微。而我們應該盡量讓兩者對結果有同等重要的影響。這就引來了特徵縮放 把特徵都限制在 0,1 之間。解釋 特點 縮放後的特徵值總是在0和1之間 def featurescaling arr import numpy as np arr np.array ...
(機器學習)梯度下降法技巧 特徵縮放
1 特徵縮放 適用問題 假設我們有兩個特徵 以二維舉例 x1,x2。x1取值範圍和x2取值範圍相差過大,導致輪廓圖是乙個十分狹長的橢圓,這樣在梯度下降的過程中可能要花費很多步才能到達區域性最優解。對於這樣的問題,我們可以通過特徵縮放的方法來改變我們特徵的取值範圍,公式 特徵的值 特徵的最大值 最小值...
機器學習系列之特徵工程
description 特徵工程 preprocess 1 框架 scikit learn,依賴模組 scipy pandas numpy 2 pip3 install scikit learn i trusted host pypi.douban.com 3 模型 資料 演算法 4 機器學習開發流...