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

 

转载于:https://www.cnblogs.com/U940634/p/9748667.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值