gpt4 book ai didi

python - scikit-learn:计算并绘制递归 KBEST 特征 (k ='all' ) 性能

转载 作者:行者123 更新时间:2023-11-30 09:10:02 25 4
gpt4 key购买 nike

我的目标:

  • SelectKBest (KBest)k="all",对排名功能进行排序(简单且完成)
  • 绘制已排序特征 ( pretty much as this example for recursive feature elimination, RFECV ) 的递归/渐进交叉验证性能,即 1) 计算最顶层特征的交叉验证性能,2) 然后计算最上面 + 第二最上面的 cv 性能,3) 然后 + 第三,... n) 所有特征组合。 (有点费劲,还没完成)
  • 如下图所示绘制结果(只是用排序的 KBest-all 特征代替 RFECV)。 (简单)。

是的,我可以k循环遍历所有排名的特征,然后“转换”数据以仅允许k最佳特征,然后计算交叉验证性能对于每个,最后得到所有分数和情节... - 我想避免这个代码。

我期待一个标准答案我猜像这样的包装函数一定已经存在于优秀的scikit-learn中图书馆。

也许可以使用GridSearchCV

enter image description here

最佳答案

我没有找到标准解决方案,所以这是我所做的伪代码:

(如果有兴趣,很乐意提供 Jupyter 工作示例)

def get_sorted_kbest_feature_keys(kbest_fitted_model):
return [fkey for fkey, _ in sorted(enumerate(kbest_fitted_model.scores_), key=lambda tuple: tuple[1], reverse=True)]

def select_features_transformer_function(X, **kwargs):
selected_feature_keys = kwargs["selected_feature_keys"]

X_new = X[:, selected_feature_keys]
# apply other transformers as desired

return X_new

-

kbest = SelectKBest(scoring_func, k="all")  # scoring_func like "f1_macro"
kbest.fit(X, y)
selected_feature_keys = get_kbest_sorted_feature_keys(kbest)

scores = []

for num_seletected_kbest_features in range(1, num_features + 1):

selected_feature_keys = sorted_kbest_feature_keys[:num_seletected_kbest_features]
my_transformer = FunctionTransformer(select_features_transformer_function, accept_sparse=True, kw_args={"selected_feature_keys": selected_feature_keys})

classifier = # example SVC
estimator = make_pipeline(my_transformer, classifier)

cv_scores = cross_val_score(estimator, X, y, scoring=scoring_name, verbose=True, n_jobs=-1)
scores.append(cv_scores.mean())

# Then I can plot the scores as in:

### http://scikit-learn.org/stable/auto_examples/feature_selection/plot_rfe_with_cross_validation.html#sphx-glr-auto-examples-feature-selection-plot-rfe-with-cross-validation-py

关于python - scikit-learn:计算并绘制递归 KBEST 特征 (k ='all' ) 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41944341/

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