拓端tecdat|MATLAB用Lasso回歸擬合高維數(shù)據(jù)和交叉驗證
原文鏈接:http://tecdat.cn/?p=25741
原文出處:拓端數(shù)據(jù)部落公眾號
此示例顯示如何?lasso
?識別和舍棄不必要的預(yù)測變量。
使用各種方法從指數(shù)分布生成 200 個五維數(shù)據(jù) X 樣本。
rng(3,'twister') % ? ?實現(xiàn)可重復(fù)性
for i = 1:5
X(:,i) = exprnd
end
生成因變量數(shù)據(jù)?Y
?=??X
?*??r
?+??eps
?,其中?r
?只有兩個非零分量,噪聲?eps
?正態(tài)分布,標(biāo)準(zhǔn)差為 0.1。
用?擬合交叉驗證的模型序列?lasso
?,并繪制結(jié)果。
Plot(ffo);

Lambda
?該圖顯示了正則化參數(shù)的各種值的回歸中的非零系數(shù)?。較大的值?Lambda
?出現(xiàn)在圖的左側(cè),意味著更多的正則化,導(dǎo)致更少的非零回歸系數(shù)。
虛線代表最小均方誤差的Lambda值(在右邊),以及最小均方誤差加一個標(biāo)準(zhǔn)差的Lambda值。后者是Lambda的一個推薦設(shè)置。這些線條只在你進行交叉驗證時出現(xiàn)。通過設(shè)置'CV'名-值對參數(shù)來進行交叉驗證。這個例子使用了10折的交叉驗證。
?
圖的上半部分顯示了自由度(df),即回歸中非零系數(shù)的數(shù)量,是Lambda的一個函數(shù)。在左邊,Lambda的大值導(dǎo)致除一個系數(shù)外的所有系數(shù)都是0。在右邊,所有五個系數(shù)都是非零的,盡管該圖只清楚顯示了兩個。其他三個系數(shù)非常小,幾乎等于0。
對于較小的 Lambda 值(在圖中向右),系數(shù)值接近最小二乘估計。
求?Lambda
?最小交叉驗證均方誤差加上一個標(biāo)準(zhǔn)差的值。檢查 MSE 和擬合的系數(shù)?Lambda
?。
MSE(lm)

b(:,lam)

lasso
?很好地找到了系數(shù)向量?r
?。
為了比較,求 ?r
的最小二乘估計?。
rhat

估計?b(:,lam)
?的均方誤差略大于?rhat
?的均方誤差?。
res; % 計算殘差
MSEmin

但?b(:,lam)
?只有兩個非零分量,因此可以對新數(shù)據(jù)提供更好的預(yù)測估計。

最受歡迎的見解
1.R語言多元Logistic邏輯回歸 應(yīng)用案例
2.面板平滑轉(zhuǎn)移回歸(PSTR)分析案例實現(xiàn)
3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)
4.R語言泊松Poisson回歸模型分析案例
5.R語言回歸中的Hosmer-Lemeshow擬合優(yōu)度檢驗
6.r語言中對LASSO回歸,Ridge嶺回歸和Elastic Net模型實現(xiàn)
7.在R語言中實現(xiàn)Logistic邏輯回歸
8.python用線性回歸預(yù)測股票價格
9.R語言如何在生存分析與Cox回歸中計算IDI,NRI指標(biāo)