特征选择-单变量特征选择

1.SelectKBest可以依据相关性对特征进行选择,保留k个评分最高的特征。

①方差分析

分类问题使用f_classif,回归问题使用f_regression。

f_classif:分类任务

跟目标的分类,将样本划分成n个子集,S1,S2,..,Sn,我们希望每个子集的均值μ1,μ2,...,μn不相等。

我们假设H0:μ1=μ2=...=μn,当然我们希望拒绝H0,所以我们希望构造出来f最大越好。所以我们可以通过第i个特征xi对分类进行预测。f值越大,预测值越好。

f_regression:回归任务

引用参考:https://blog.csdn.net/jetFlow/article/details/78884619

  • 要计算f_regression中的ff值,我们首先要计算的是,这个就是i号特征和因变量y之间的样本相关系数。

  • 我们计算的 ,才是f_regression中的ff值,服从F(1,n−2)F(1,n−2)分布。

  • ff值越大,i号特征和因变量y之间的相关性就越大,据此我们做特征选择。

from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import f_classif
from sklearn.datasets import load_iris
# 特征选择
data = load_iris()
slectKBest = SelectKBest(f_classif,k=2)
dataK = slectKBest.fit_transform(data.data,data.target)

②χ²检验

卡方检验用于分类问题

③互信息

mutual_info_classif:分类问题

mutual_info_regression:回归问题

 

2.SelectPercentile 选择排名排在前n%的变量 

 

你可能感兴趣的:(机器学习)