sklearn feature selection特征选择

一、特征选择器

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


[source]

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值