【问题标题】:What do these F scores mean ? Using SelectKBest feature这些 F 分数是什么意思?使用 SelectKBest 功能
【发布时间】:2023-03-09 05:35:01
【问题描述】:

我是统计新手。我正在尝试选择最佳特征来对我的数据集进行分类,我选择通过运行 scikitlearn 中的 SelectKbest 来实现。

这是我的代码:

 import sklearn.feature_selection as fs
 kb = fs.SelectKBest(k=10)
 kb.fit(X, y)
 names = X.columns.values[kb.get_support()]
 scores = kb.scores_[kb.get_support()]
 names_scores = list(zip(names, scores))
 ns_df = pd.DataFrame(data = names_scores, columns=
  ['Feat_names','F_Scores'])
 ns_df_sorted = ns_df.sort_values(['F_Scores','Feat_names'], ascending =
  [False, True])
 print(ns_df_sorted)

这给出了这样的输出

  Feat_names   F_Scores
4     go_out  29.870218
8     fun1_2  27.374212
6     fun1_1  26.470766
3       date  25.035227
7    shar1_1  17.629153
2    imprace  11.331197
0      order  11.290014
5    sinc1_1   8.309805
9    shar1_2   5.009775
1   field_cd   4.515538

我不确定这里的 F 分数意味着什么以及我可以从中解释什么。

【问题讨论】:

  • 这些是方差分析 f 分数。见herehere

标签: machine-learning scikit-learn statistics jupyter-notebook data-science


【解决方案1】:

您可以将 F 分数理解为衡量每个特征对您的数据集的信息量的衡量标准。

正如the method documentation 中所述,执行 F 检验来评估每个功能。 F 分数是F-test 的检验统计量,它们基本上代表了解释方差与未解释方差之间的比率

因此,在您的示例中,在使用特征选择方法后,您可以选择所有 k=10 信息最多的特征,或者您可以使用分数来优化您的选择(例如,仅选择 F 分数为高于某个阈值)。

【讨论】:

    猜你喜欢
    • 2018-04-08
    • 1970-01-01
    • 2013-05-09
    • 2021-03-27
    • 1970-01-01
    • 2023-03-03
    • 2021-12-28
    • 2013-08-20
    • 2014-12-24
    相关资源
    最近更新 更多