真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何Python進(jìn)行Lasso回歸選取關(guān)鍵特征

本篇文章給大家分享的是有關(guān)如何Python進(jìn)行Lasso回歸選取關(guān)鍵特征,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。 

成都創(chuàng)新互聯(lián)公司主要從事成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)湟源,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

今天,分享一下Lasso回歸用于選取關(guān)鍵特征,數(shù)據(jù)探索性分析時(shí),引入的特征太多,要直接用這些特征建模分析,需要對原始特征進(jìn)一步篩選,只保留重要的特征,Lasso算法在模型系數(shù)絕對值之和小于某常數(shù)的條件下,謀求殘差平方和最小,在變量選取方面的效果優(yōu)于逐步回歸、主成分回歸、嶺回歸、偏最小二乘等,能較好的克服傳統(tǒng)方法在模型選取上的不足。

我們選取部分GDP指標(biāo)如下所示:

如何Python進(jìn)行Lasso回歸選取關(guān)鍵特征


       

Lasso回歸概念

Lasso回歸方法屬于正則化方法的一種,是壓縮估計(jì)。它通過構(gòu)造一個(gè)懲罰函數(shù)得到一個(gè)較對精煉的模型。使用它壓縮一些系數(shù),同時(shí)設(shè)定一些系數(shù)為零,保留了子集收縮的優(yōu)點(diǎn),是一種處理具有復(fù)共線性數(shù)據(jù)的有偏估計(jì)。


 

Lasso基本原理

Lasso以縮小特征集(降階)為思想,是一種收縮估計(jì)方法。Lasso方法可以將特征的系數(shù)進(jìn)行壓縮并使某些回歸系數(shù)變?yōu)?,進(jìn)而達(dá)到特征選擇的目的,可以廣泛地應(yīng)用于模型改進(jìn)與選擇。通過選擇懲罰函數(shù),借用Lasso思想和方法實(shí)現(xiàn)特征選擇的目的。模型選擇本質(zhì)上是尋求模型稀疏表達(dá)的過程,而這種過程可以通過優(yōu)化一個(gè)“損失”+“懲罰”的函數(shù)問題來完成。


 

Lasso參數(shù)估計(jì)定義

其中,為非負(fù)正則參數(shù),控制著模型的復(fù)雜程度。越大,對特征較多的線性模型的懲罰力度就越大,從而最終獲得一個(gè)特征較少的模型,稱為懲罰項(xiàng)。參數(shù)的確定可以采用交叉驗(yàn)證法,選取交叉驗(yàn)證誤差最小的值。最后,按照得到的值,用全部數(shù)據(jù)重新擬合模型即可。


 

Lasso適用場景

當(dāng)原始特征中存在多重共線性時(shí),Laso回歸不失為一種很好的處理共線性的方法,它可以有效地對存在多重共線性的特征進(jìn)行篩選。在機(jī)器學(xué)習(xí)中,面對海量的數(shù)據(jù),首先想到的就是降維,爭取用盡可能少的數(shù)據(jù)解決問題,從這層意義上說,用Lasso模型進(jìn)行特征選擇也是一種有效的降維方法。從理論上說,Lasso對數(shù)據(jù)類型沒有太多限制,可以接收任何類型的數(shù)據(jù),而且一般不需要對特征進(jìn)行標(biāo)準(zhǔn)化處理。


 

Lasso回歸方法優(yōu)缺點(diǎn)

Lasso回歸方法的優(yōu)點(diǎn)是可以彌補(bǔ)最小二乘估計(jì)法和逐步回歸局部最優(yōu)估計(jì)的不足,可以很好地進(jìn)行特征的選擇,有效地解決各特征之間存在多重共線性的問題。缺點(diǎn)是當(dāng)存在一組高度相關(guān)的特征時(shí),Lasso回歸方法傾向于選擇其中的一個(gè)特征,而忽視其他所有的特征,這種情況會(huì)導(dǎo)致結(jié)果的不穩(wěn)定性。雖然Lasso回歸方法存在弊端,但是在合適的場景中還是可以發(fā)揮不錯(cuò)的效果的。

得出Lasso回歸后,各個(gè)特征的值如下表所示

如何Python進(jìn)行Lasso回歸選取關(guān)鍵特征

用Lasso回歸,剔除值為0.000的系數(shù),得出,影響國內(nèi)生產(chǎn)總值的關(guān)鍵因素為,X1、X2、X3、X4、X5 、X6、X7、X8、X9、X11、X12,用這些特征進(jìn)行下一步的研究。

如何Python進(jìn)行Lasso回歸選取關(guān)鍵特征      

   

#Lasso模型程序

import numpy as np

import pandas as pd

from sklearn.linear_model import Lasso

inputfile = 'C:\\Users\\27342\\Desktop\\data.csv' #輸入的數(shù)據(jù)文件

data = pd.read_csv(inputfile) #讀取數(shù)據(jù)

lasso = Lasso(1000)  #調(diào)用Lasso()函數(shù),設(shè)置λ的值為1000

lasso.fit(data.iloc[:,0:12],data['y'])

print('相關(guān)系數(shù)為:',np.round(lasso.coef_,5))  #輸出結(jié)果,保留五位小數(shù)

## 計(jì)算相關(guān)系數(shù)非零的個(gè)數(shù)

print('相關(guān)系數(shù)非零個(gè)數(shù)為:',np.sum(lasso.coef_ != 0))

mask = lasso.coef_ != 0  #返回一個(gè)相關(guān)系數(shù)是否為零的布爾數(shù)組

print('相關(guān)系數(shù)是否為零:',mask)

outputfile = 'C:\\Users\\27342\\Desktop\\new_reg_data.csv'  #輸出的數(shù)據(jù)文件

new_reg_data = data.iloc[:, mask]  #返回相關(guān)系數(shù)非零的數(shù)據(jù)

new_reg_data.to_csv(outputfile)  #存儲(chǔ)數(shù)據(jù)

print('輸出數(shù)據(jù)的維度為:',new_reg_data.shape)  #查看輸出數(shù)據(jù)的維度


以上就是如何Python進(jìn)行Lasso回歸選取關(guān)鍵特征,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)站欄目:如何Python進(jìn)行Lasso回歸選取關(guān)鍵特征
當(dāng)前URL:http://weahome.cn/article/ppcpoj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部