Python數據挖掘—特征工程—特征選擇
阿新 • • 發佈:2018-10-07
from res 6.2 最好的 python features import 方差 過多
如何選擇特征
根據是否發散及是否相關來選擇
方差選擇法
先計算各個特征的方差,根據閾值,選擇方差大於閾值的特征
方差過濾使用到的是VarianceThreshold類,該類有個參數threshold,該值為最小方差的閾值,然後使用fit_transform進行特征值過濾
相關系數法
先計算各個特征對目標值的相關系數,選擇更加相關的特征
遞歸特征消除法
使用一個基模型來進行多輪訓練,經過多輪訓練後,保留指定的特征數
通過estimator將基模型設置為線性模型(可以設置為其他類型),通過n_features_to_select=2將要選擇的特征數設置為2
1 import pandasView Code2 from sklearn.feature_selection import RFE 3 from sklearn.linear_model import LinearRegression 4 5 data=pandas.read_csv("C:\\Users\\Jw\\Desktop\\python_work\\Python數據挖掘實戰課程課件\\6.2\\data2.csv") 6 7 feature=data[["月份","季度","廣告費用","客流量"]] 8 rfe=RFE( 9 estimator=LinearRegression(), #通過estimator將基模型設置為線性模型10 n_features_to_select=2) #要選擇的特征數設置為2
將自變量和因變量通過fit_transfrom傳入,並通過get_support()知道所用的哪兩列的名字,得到對應列名
1 sFeature=rfe.fit_transform( 2 feature, 3 data["銷售額"]) 4 5 rfe.get_support() #要知道這兩列的名字View Code
模型選擇法
它是一種吧我們建好的模型對象傳入選擇器,然後它會根據這個已經建好的模型,自動幫我們選擇最好的特征值。
首先導入數據,給出全部特征值,然後建立模型,作為參數傳入SelctFromModel(),在通過fit_transfrom對特征值和因變量進行過濾,選出最優的特征,最後通過get_support()得到對應的列名。
1 import pandas 2 from sklearn.linear_model import LinearRegression 3 from sklearn.feature_selection import SelectFromModel 4 5 data=pandas.read_csv("C:\\Users\\Jw\\Desktop\\python_work\\Python數據挖掘實戰課程課件\\6.2\\data2.csv") 6 7 feature=data[["月份","季度","廣告費用","客流量"]] 8 9 lrModel=LinearRegression() 10 11 selectFromModel=SelectFromModel(lrModel) 12 13 selectFromModel.fit_transform( 14 feature, 15 data["銷售額"]) 16 17 feature.columns[selectFromModel.get_support()]View Code
Python數據挖掘—特征工程—特征選擇