Python数据挖掘—特征工程—特征选择

Posted 我不要被你记住

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据挖掘—特征工程—特征选择相关的知识,希望对你有一定的参考价值。

如何选择特征

根据是否发散及是否相关来选择

方差选择法

先计算各个特征的方差,根据阈值,选择方差大于阈值的特征

方差过滤使用到的是VarianceThreshold类,该类有个参数threshold,该值为最小方差的阈值,然后使用fit_transform进行特征值过滤

 

相关系数法

先计算各个特征对目标值的相关系数,选择更加相关的特征

 

递归特征消除法

使用一个基模型来进行多轮训练,经过多轮训练后,保留指定的特征数

通过estimator将基模型设置为线性模型(可以设置为其他类型),通过n_features_to_select=2将要选择的特征数设置为2

技术分享图片
 1 import pandas
 2 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
View Code

将自变量和因变量通过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数据挖掘—特征工程—特征选择的主要内容,如果未能解决你的问题,请参考以下文章

python 特征选择特征工程

特征工程的特征选择

机器学习sklearn(十七): 特征工程特征选择卡方选择卡方检验

《机学三》特征工程3 —— 特征选择:特征选择数据降维

特征工程-特征选择

特征工程之特征选择