【问题标题】:obtaining different features in each execution with SelectKBest and mutual_info_classif [closed]使用 SelectKBest 和mutual_info_classif 在每次执行中获得不同的特征[关闭]
【发布时间】:2021-11-21 21:09:28
【问题描述】:

我正在为二进制数据集进行特征选择,因为通常使用的技术之一是通过 selectKbest 函数。现在碰巧每次我使用相互信息分类运行 select k best 时,我都会得到不同的最佳特征。为什么会出现这种情况?

 sel_mutual = SelectKBest(mutual_info_classif, k=110)
 print(sel_mutual.get_support())

执行 #1

执行 #2

【问题讨论】:

  • 如果您可以制作一个演示此行为的最小示例,它可以帮助诊断问题或提供提交给库的错误证据。

标签: python machine-learning scikit-learn


【解决方案1】:

我尝试了这段代码,它总是返回相同的输出,所以我无法重现该行为。

from sklearn.feature_selection import SelectKBest,chi2
from sklearn.datasets import load_digits
X, y = load_digits(return_X_y=True)
sel_mutual = SelectKBest(chi2, k=55)
z = sel_mutual.fit(X,y)
print(sel_mutual.get_support())

但可能这些功能具有相同的重要性,因此 sklearn 随机选择尝试在两次执行之前通过添加来修复种子。

import random
import numpy as np
np.random.seed(10)
random.seed(10)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 2018-10-18
    • 2019-07-16
    • 2013-06-22
    相关资源
    最近更新 更多