您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何Python進行Lasso回歸選取關鍵特征,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
今天,分享一下Lasso回歸用于選取關鍵特征,數據探索性分析時,引入的特征太多,要直接用這些特征建模分析,需要對原始特征進一步篩選,只保留重要的特征,Lasso算法在模型系數絕對值之和小于某常數的條件下,謀求殘差平方和最小,在變量選取方面的效果優于逐步回歸、主成分回歸、嶺回歸、偏最小二乘等,能較好的克服傳統方法在模型選取上的不足。
我們選取部分GDP指標如下所示:
Lasso回歸概念
Lasso回歸方法屬于正則化方法的一種,是壓縮估計。它通過構造一個懲罰函數得到一個較對精煉的模型。使用它壓縮一些系數,同時設定一些系數為零,保留了子集收縮的優點,是一種處理具有復共線性數據的有偏估計。
Lasso基本原理
Lasso以縮小特征集(降階)為思想,是一種收縮估計方法。Lasso方法可以將特征的系數進行壓縮并使某些回歸系數變為0,進而達到特征選擇的目的,可以廣泛地應用于模型改進與選擇。通過選擇懲罰函數,借用Lasso思想和方法實現特征選擇的目的。模型選擇本質上是尋求模型稀疏表達的過程,而這種過程可以通過優化一個“損失”+“懲罰”的函數問題來完成。
Lasso參數估計定義
其中,為非負正則參數,控制著模型的復雜程度。越大,對特征較多的線性模型的懲罰力度就越大,從而最終獲得一個特征較少的模型,稱為懲罰項。參數的確定可以采用交叉驗證法,選取交叉驗證誤差最小的值。最后,按照得到的值,用全部數據重新擬合模型即可。
Lasso適用場景
當原始特征中存在多重共線性時,Laso回歸不失為一種很好的處理共線性的方法,它可以有效地對存在多重共線性的特征進行篩選。在機器學習中,面對海量的數據,首先想到的就是降維,爭取用盡可能少的數據解決問題,從這層意義上說,用Lasso模型進行特征選擇也是一種有效的降維方法。從理論上說,Lasso對數據類型沒有太多限制,可以接收任何類型的數據,而且一般不需要對特征進行標準化處理。
Lasso回歸方法優缺點
Lasso回歸方法的優點是可以彌補最小二乘估計法和逐步回歸局部最優估計的不足,可以很好地進行特征的選擇,有效地解決各特征之間存在多重共線性的問題。缺點是當存在一組高度相關的特征時,Lasso回歸方法傾向于選擇其中的一個特征,而忽視其他所有的特征,這種情況會導致結果的不穩定性。雖然Lasso回歸方法存在弊端,但是在合適的場景中還是可以發揮不錯的效果的。
得出Lasso回歸后,各個特征的值如下表所示
用Lasso回歸,剔除值為0.000的系數,得出,影響國內生產總值的關鍵因素為,X1、X2、X3、X4、X5 、X6、X7、X8、X9、X11、X12,用這些特征進行下一步的研究。
#Lasso模型程序
import numpy as np
import pandas as pd
from sklearn.linear_model import Lasso
inputfile = 'C:\\Users\\27342\\Desktop\\data.csv' #輸入的數據文件
data = pd.read_csv(inputfile) #讀取數據
lasso = Lasso(1000) #調用Lasso()函數,設置λ的值為1000
lasso.fit(data.iloc[:,0:12],data['y'])
print('相關系數為:',np.round(lasso.coef_,5)) #輸出結果,保留五位小數
## 計算相關系數非零的個數
print('相關系數非零個數為:',np.sum(lasso.coef_ != 0))
mask = lasso.coef_ != 0 #返回一個相關系數是否為零的布爾數組
print('相關系數是否為零:',mask)
outputfile = 'C:\\Users\\27342\\Desktop\\new_reg_data.csv' #輸出的數據文件
new_reg_data = data.iloc[:, mask] #返回相關系數非零的數據
new_reg_data.to_csv(outputfile) #存儲數據
print('輸出數據的維度為:',new_reg_data.shape) #查看輸出數據的維度
以上就是如何Python進行Lasso回歸選取關鍵特征,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。