文章目錄
- 多維特征
- 變量與術語
- 公式
- 多元線性回歸
- 正規方程法
- Mean normalization
- Z-score normalization
- 設置合適的學習率
- Feature engineering
多維特征
變量與術語
列屬性xj | 屬性數n | x ? \vec{x} x(i)行向量 | 某個值 x ? j i \vec{x}_j^i xji?上行下列 |
---|---|---|---|
均值μ | 標準化 | 標準差σ | sigma(σ) |
公式
w ? \vec{w} w = [w1 w2 w3 …]
x ? \vec{x} x = [x1 x2 x3 …]
f w ? , b ( x ? ) = w ? ? x ? + b = w 1 x 1 + w 2 x 2 + … + w n x n + b f_{\vec{w},b} (\vec{x}) = \vec{w} * \vec{x} + b = w_1x_1 + w_2x_2 + … + w _nx_n + b fw,b?(x)=w?x+b=w1?x1?+w2?x2?+…+wn?xn?+b
多元線性回歸
import numpy
f = np.dot(w, x) + b
注:n很大的時候很快(并行處理)
正規方程法
- 大于1000效率低
- 不能推廣到其他算法,如邏輯回歸,神經網絡或其他算法。
- 沒有迭代
w n = w n ? α 1 m ∑ i = 1 m f w ? , b ( x ? ( i ) ? y ( i ) ) x n ( i ) w_n = w_n - α\dfrac{1}{m} \sum\limits_{i=1}^mf_{\vec{w},b}(\vec{x}^{(i)}-y^{(i)})x_n^{(i)} wn?=wn??αm1?i=1∑m?fw,b?(x(i)?y(i))xn(i)?
b = b ? α 1 m ∑ i = 1 m ( f w ? , b ( x ? ( i ) ? y ( i ) ) b = b - α{\dfrac{1}{m}}\sum\limits_{i=1}^m(f_{\vec{w},b}(\vec{x}^{(i)}-y^{(i)}) b=b?αm1?i=1∑m?(fw,b?(x(i)?y(i))
較大范圍的自變量對應權重趨于更小,較小范圍的自變量對應權重趨于更大。
Mean normalization
除以范圍的最大值以求得權重與自變量的[0, 1]
橫坐標: x 1 = x 1 ? μ 1 2000 ? 300 x_1 = \dfrac{x_1-μ_1}{2000-300} x1?=2000?300x1??μ1?? 縱坐標: x 2 = x 2 ? μ 2 5 ? 0 x_2 = \dfrac{x_2 - μ_2}{5-0} x2?=5?0x2??μ2??
? 0.18 ≤ x 1 ≤ 0.82 -0.18\le x_1\le0.82 ?0.18≤x1?≤0.82 ? 0.46 ≤ x 2 ≤ 0.54 -0.46\le x_2\le0.54 ?0.46≤x2?≤0.54
Z-score normalization
300 ≤ x 1 ≤ 2000 300\le x_1\le2000 300≤x1?≤2000 0 ≤ x 2 ≤ 5 0\le x_2\le5 0≤x2?≤5
x 1 = x 1 ? μ 1 σ 1 x1 = \dfrac{x_1-μ_1}{σ_1} x1=σ1?x1??μ1?? ? 0.67 ≤ x 1 ≤ 3.1 -0.67\le x_1\le3.1 ?0.67≤x1?≤3.1
通過縮放盡量讓所有特征的取值在差不多范圍,這樣它們的變化對預測值的影響都是接近的 接近(-3,3)
如果成本函數J變大,那么說明步長(學習率)不合適,或代碼有誤
注:迭代次數因機器而異
除了通過繪制曲線判斷迭代到什么地步之外還可以采用自動收斂測試
讓 ε 等于 1 0 ? 3 10^{-3} 10?3,J的減小幅度小于這個很小的數則視作收斂。
設置合適的學習率
- 測試時可以設置一個很小的值, 看J是否減小
- 迭代時學習率不宜過大不宜過小
- 測試時每次 * 3,選擇盡可能大的學習率,或是比合理值略小的
Feature engineering
通過變換或組合建立特征工程,給予更多選擇
f w ? , b ( x ? ) = w 1 x 1 + w 2 x 2 + w 3 x 3 + b f_{\vec{w},b}(\vec{x}) = w_1x_1+w_2x_2+w_3x_3+b fw,b?(x)=w1?x1?+w2?x2?+w3?x3?+b
注:多項式回歸可以用于線性和非線性擬合