gpt4 book ai didi

python - 使用 scikit-learn 进行 ANOVA 测试的交叉验证特征选择

转载 作者:太空宇宙 更新时间:2023-11-04 08:39:24 24 4
gpt4 key购买 nike

我正在使用 scikit-learn 进行特征选择。这是我的代码

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 作为 CV 方式使结果更可靠?

最佳答案

Scikit-learn 具有递归特征消除和交叉验证选择方法,称为 RFECV .以下代码仅供引用,与给出的例子相似on this link .

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()

示例输出:

Sample output for RFECV

引用链接:

编辑:使用方差分析检验的 CV 特征选择

要使用 Anova 测试和交叉验证,您需要使用 Pipeline , Select Percentilecross-val score .基于给出的示例 here您可以结合这些技术使用 CV+Annova 测试进行特征选择。

关于python - 使用 scikit-learn 进行 ANOVA 测试的交叉验证特征选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45925011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com