特征选择方法
为什么进行特征选择
1、去除不相关或冗余特征
2、减少过拟合,提高泛化能力,缓解维度灾难
3、提高模型准确率,加快模型训练速度
相关特征:对于学习任务(例如分类问题)有帮助,可以提升学习算法的效果;
无关特征:对于我们的算法没有任何帮助,不会给算法的效果带来任何提升;
冗余特征:不会对我们的算法带来新的信息,或者这种特征的信息可以由其他的特征推断出
特征选择方法
一、Filter
描述:按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征
具体方法:
-
方差
-
f_classif f_regression
-
相关系数:皮尔逊相关系数等
-
距离相关系数:克服Pearson相关系数的弱点
在x 和x ^2这个例子中,即便Pearson相关系数是0,我们也不能断定这两个变量是独立的(有可能是非线性相关);但如果距离相关系数是0,那么我们就可以说这两个变量是独立的。
- 卡方检验 Chi2
- 信息增益
- 互信息 mutual_info_classif mutual_info_regression
- 最大信息系数
互信息直接用于特征选择其实不是太方便:
1、它不属于度量方式,也没有办法归一化,在不同数据及上的结果无法做比较;
2、对于连续变量的计算不是很方便(X和Y都是集合,x,y都是离散的取值),通常变量需要先离散化,而互信息的结果对离散化的方式很敏感。
最大信息系数MIC克服了这两个问题。它首先寻找一种最优的离散化方式,然后把互信息取值转换成一种度量方式,取值区间在[ 0 , 1 ]
//使用方差进行选择
from sklearn.feature_selection