普通最小二乘法
理論:
損失函數:
權重計算:
1、對於普通最小二乘的系數估計問題,其依賴於模型各項的相互獨立性。
2、當各項是相關的,且設計矩陣 X的各列近似線性相關,那么,設計矩陣會趨向於奇異矩陣,這會導致最小二乘估計對於隨機誤差非常敏感,產生很大的方差。
例如,在沒有實驗設計的情況下收集到的數據,這種多重共線性(multicollinearity)的情況可能真的會出現。
使用:
from sklearn import datasets, linear_model
regr = linear_model.LinearRegression()
reg.fit(X_train, y_train)
嶺回歸
理論:
損失函數:
其中阿爾法大於0,它的值越大,收縮量越大,這樣系數對公線性的魯棒性也更強
當X矩陣不存在廣義逆(即奇異性),最小二乘法將不再適用。可以使用嶺回歸
X矩陣不存在廣義逆(即奇異性)的情況:
1)X本身存在線性相關關系(即多重共線性),即非滿秩矩陣。
當采樣值誤差造成本身線性相關的樣本矩陣仍然可以求出逆陣時,此時的逆陣非常不穩定,所求的解也沒有什么意義。
2)當變量比樣本多,即p>n時.
嶺跡圖:
嶺跡圖作用:
1)觀察λ較佳取值;
2)觀察變量是否有多重共線性;
在λ很小時,W很大,且不穩定,當λ增大到一定程度時,W系數迅速縮小,趨於穩定。
λ的選擇:一般通過觀察,選取喇叭口附近的值
嶺參數的一般選擇原則
選擇λ值,使到
1)各回歸系數的嶺估計基本穩定;
2)用最小二乘估計時符號不合理的回歸系數,其嶺估計的符號變得合理;
3)回歸系數沒有不合乎實際意義的值;
4)殘差平方和增大不太多。 一般λ越大,系數β會出現穩定的假象,但是殘差平方和也會更大
嶺回歸選擇變量的原則(僅供參考)
1)在嶺回歸中設計矩陣X已經中心化和標准化了,這樣可以直接比較標准化嶺回歸系數的大小。可以剔除掉標准化嶺回歸系數比較穩定且值很小的自變量。
2)隨着λ的增加,回歸系數不穩定,震動趨於零的自變量也可以剔除。
3)如果依照上述去掉變量的原則,有若干個回歸系數不穩定,究竟去掉幾個,去掉哪幾個,這無一般原則可循,這需根據去掉某個變量后重新進行嶺回歸分析的效果來確定。
使用:
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
# X is the 10x10 Hilbert matrix
X = 1. / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis])
y = np.ones(10)
# #############################################################################
# Compute paths
n_alphas = 200
alphas = np.logspace(-10, -2, n_alphas)
coefs = []
for a in alphas:
ridge = linear_model.Ridge(alpha=a, fit_intercept=False)
ridge.fit(X, y)
coefs.append(ridge.coef_)
# #############################################################################
# Display results
ax = plt.gca()
ax.plot(alphas, coefs)
Lasso回歸
理論:
維數災難:
何謂高維數據?高維數據指數據的維度很高,甚至遠大於樣本量的個數。高維數據的明顯的表現是:在空間中數據是非常稀疏的,與空間的維數相比樣本量總是顯得非常少。
在分析高維數據過程中碰到最大的問題就是維數的膨脹,也就是通常所說的“維數災難”問題。研究表明,隨着維數的增長,分析所需的空間樣本數會呈指數增長。
如下所示,當數據空間維度由1增加為3,最明顯的變化是其所需樣本增加;換言之,當樣本量確定時,樣本密度將會降低,從而樣本呈稀疏狀態。假設樣本量n=12,單個維度寬度為3,那在一維空間下,樣本密度為12/3=4,在二維空間下,樣本分布空間大小為3*3,則樣本密度為12/9=1.33,在三維空間下樣本密度為12/27=0.44。
設想一下,當數據空間為更高維時,X=[x1x1,x2x2,….,xnxn]會怎么樣?
1、需要更多的樣本,樣本隨着數據維度的增加呈指數型增長;
2、數據變得更稀疏,導致數據災難;
3、在高維數據空間,預測將變得不再容易;
4、導致模型過擬合。
數據降維:
對於高維數據,維數災難所帶來的過擬合問題,其解決思路是:1)增加樣本量;2)減少樣本特征,而對於現實情況,會存在所能獲取到的樣本數據量有限的情況,甚至遠小於數據維度,即:d>>n。如證券市場交易數據、多媒體圖形圖像視頻數據、航天航空采集數據、生物特征數據等。
主成分分析作為一種數據降維方法,其出發點是通過整合原本的單一變量來得到一組新的綜合變量,綜合變量所代表的意義豐富且變量間互不相關,綜合變量包含了原變量大部分的信息,這些綜合變量稱為主成分。主成分分析是在保留所有原變量的基礎上,通過原變量的線性組合得到主成分,選取少數主成分就可保留原變量的絕大部分信息,這樣就可用這幾個主成分來代替原變量,從而達到降維的目的。
但是,主成分分析法只適用於數據空間維度小於樣本量的情況,當數據空間維度很高時,將不再適用。
Lasso是另一種數據降維方法,該方法不僅適用於線性情況,也適用於非線性情況。Lasso是基於懲罰方法對樣本數據進行變量選擇,通過對原本的系數進行壓縮,將原本很小的系數直接壓縮至0,從而將這部分系數所對應的變量視為非顯著性變量,將不顯著的變量直接舍棄。
目標函數:
1、Lasso 是估計稀疏系數的線性模型。
2、它在一些情況下是有用的,因為它傾向於使用具有較少參數值的情況,有效地減少給定解決方案所依賴變量的數量。 因此,Lasso 及其變體是壓縮感知領域的基礎。 在一定條件下,它可以恢復一組非零權重的精確集
彈性網絡
1、彈性網絡 是一種使用 L1, L2 范數作為先驗正則項訓練的線性回歸模型。
2、這種組合允許學習到一個只有少量參數是非零稀疏的模型,就像 Lasso 一樣,但是它仍然保持 一些像 Ridge 的正則性質。我們可利用 l1_ratio 參數控制 L1 和 L2 的凸組合。
3、彈性網絡在很多特征互相聯系的情況下是非常有用的。Lasso 很可能只隨機考慮這些特征中的一個,而彈性網絡更傾向於選擇兩個。
4、在實踐中,Lasso 和 Ridge 之間權衡的一個優勢是它允許在循環過程(Under rotate)中繼承 Ridge 的穩定性。
損失函數:
使用:
from sklearn.linear_model import ElasticNet
enet = ElasticNet(alpha=0.2, l1_ratio=0.7) #alpha=α l1_ratio=ρ