首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于scikit交叉验证的特征选择-方差分析学习

基于scikit交叉验证的特征选择-方差分析学习
EN

Stack Overflow用户
提问于 2017-08-28 18:08:28
回答 1查看 3.9K关注 0票数 1

我正在使用scikit学习做特征选择。这是我的密码

代码语言:javascript
复制
from sklearn.feature_selection import GenericUnivariateSelect
from sklearn.feature_selection import f_classif


scores = GenericUnivariateSelect(f_classif, 'k_best').fit(features_pd, target_pd)

如何使用f_classif是一种简历方式,这样的结果就更可靠了?

EN

回答 1

Stack Overflow用户

发布于 2017-08-28 19:56:10

Scikit-learn有一个递归的特征消除和交叉验证的选择方法,称为RFECV。下面的代码可供参考,类似于给定的在这个链接上示例。

代码语言:javascript
复制
import matplotlib.pyplot as plt
from sklearn.svm import SVC
from sklearn.cross_validation import StratifiedKFold
from sklearn.feature_selection import RFECV
svc = SVC(kernel="linear")
rfecv = RFECV(estimator=svc, step=1, cv=StratifiedKFold(labels, 50),
      scoring='precision')
rfecv.fit(features, labels)
print("Optimal number of features : %d" % rfecv.n_features_)
print rfecv.support_
features=features[:,rfecv.support_]
# Plot number of features VS. cross-validation scores
plt.figure()
plt.xlabel("Number of features selected")
plt.ylabel("Cross validation score (nb of correct classifications)")
plt.plot(range(1, len(rfecv.grid_scores_) + 1), rfecv.grid_scores_)
plt.show()

样本输出:

参考链接:

编辑:基于变异系数的CV特征选择

要使用Anova测试和交叉验证,您需要使用管道选择百分位数交叉val评分。根据给定的这里示例,您可以结合这些技术来使用CV+Annova测试进行特征选择。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45925011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档