去除方差小的特征
设置一个方差阈值,没有达到这个方差阈值的特征都会被丢弃。
VarianceThreshold,算法输入只要求特征(X),不需要输入结果(Y)。
from sklearn.feature_selection import VarianceThreshold
X=[[feature1,feature2,…],…]
sel=VarianceThreshold(threshold=xx)
print(sel.fit_transform(X))
单变量特征选取
单变量特征提取的原理是分别计算每个特征的某个统计指标,根据该指标来选取特征。
SelectKBest、SelectPercentile,前者选择排名前k个的特征,后者选择排名在前k%的特征。选择的统计指标需要指定,对于regression问题,使用f_regression指标;对于classification问题,可以使用chi2或者f_classif指标。
from sklearn.feature_selection import SelectKBest,chi2
X_new=SelectKBest(chi2,k=2).fit_transform(test_X,test_Y)
- False Positive Rate,假阳性率
- chi2,卡方统计量,X中特征取值必须非负。卡方检验用来测度随机变量之间的依赖关系。通过卡方检验得到的特征之间是最可能独立的随机变量,因此这些特征的区分度很高。
循环特征选取
不单独地检验某个特征的价值,而是检验特征集的价值。对于一个数量为n的特征集合,子集的个数为2的n次方减一。通过指定一个学习算法,通过算法计算所有子集的error,选择error最小的子集作为选取的特征。

本文介绍了Python scikit-learn库中进行特征选择的各种方法,包括基于方差阈值去除低变异性特征,单变量特征选取如SelectKBest、SelectPercentile,循环特征选取如RFE、RFECV以及L1正则化的线性SVC。此外,还探讨了决策树的特征重要性和sklearn.datasets中的分类数据生成。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



