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:回归任务
引用参考:/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 SelectKBestfrom sklearn.feature_selection import f_classiffrom 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%的变量
如果觉得《特征选择-单变量特征选择》对你有帮助,请点赞、收藏,并留下你的观点哦!