admin管理员组文章数量:1650765
一、特征选择器
1. sklearn.feature_selection.SelectKBest(score_func, k)
Select features according to the k highest scores.
其中参数score_func是评分函数,默认是f_classif ; k默认为10,指定选择特征的个数。
2. sklearn.feature_selection.SelectFpr(score_func, alpha=0.05): score_func参数默认如上。
根据FPR测试选择alpha以下的pvalues。FPR测试代表假阳性率/误检率测试。 它控制错误检测的总量。
false-positive rate(误检率)= sum(fp) / (sum(fp)+sum(tn))
其中P值就是当原假设为真时,比所得到的样本观察结果更极端的结果出现的概率”。如果P值很小,就表明,在原假设为真的情况下出现的那个分布里面,只有很小的部分,比出现的这个事件更为极端。
P值 | 碰巧的概率 | 对无效假设 | 统计意义 |
P>0.05 | 碰巧出现的可能性大于5% | 不能否定无效假设 | 两组差别无显著意义 |
P<0.05 | 碰巧出现的可能性小于5% | 可以否定无效假设 | 两组差别有显著意义 |
P <0.01 | 碰巧出现的可能性小于1% | 可以否定无效假设 | 两者差别有非常显著意义 |
3. sklearn.feature_selection.
SelectFdr
(score_func=<function f_classif>, alpha=0.05)
选择估计的错误发现率的p值
这使用Benjamini-Hochberg程序。 alpha是预期错误发现率的上限。
二、Score_func
1. feature_selection.chi2
(X, y) : 基于卡方检验
2. feature_selection.mutual_info_classif
(X, y):基于互信息
3. feature_selection.f_classif
(X, y):计算所提供样本的ANOVA F值,即方差分析F值(F检验)。
三、应用实例
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
# 获取iris数据集
iris = load_iris()
X_data = iris.data
y_data = iris.target
X_train, X_test, y_train, y_test = train_test_split(X_data, y_data, \
test_size = 0.25, random_state = 1)
from sklearn.feature_selection import SelectKBest, chi2
skb = SelectKBest(chi2, k=2)
X_train_chi2 = skb.fit_transform(X_train, y_train)
X_test_chi2 = skb.transform(X_test)
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression(random_state = 1)
lr.fit(X_train_chi2, y_train)
print('Test accuracy: %.3f' % lr.score(X_test_chi2, y_test))
Test accuracy: 0.684
本文标签: 特征sklearnfeatureSelection
版权声明:本文标题:sklearn feature selection特征选择 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1729534393a1205228.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论