【问题标题】:Trying to use fit with SelectKBest variable and keep getting a TypeError尝试将 fit 与 SelectKBest 变量一起使用并不断收到 TypeError
【发布时间】:2020-05-31 21:15:06
【问题描述】:

我正在尝试对我的 SelectKBest 变量使用 .fit(),但一旦我的程序运行 skb.fit(X, y),我就会不断收到错误消息。不知道为什么。

我得到的错误: fit % (self.score_func, type(self.score_func)) TypeError: score function should be a callable, 26.48914983923762 () 已通过。

我的代码:

X = df.loc[:, features].astype(float)
y = df.iloc[:, 0].astype(float)

model = LogisticRegression()
classifier = LogisticRegression()
skb = SelectKBest(score_func = chi2, k = 3)

skb.fit(X, y) # Error happens here

我的数据框是什么样子的:

         col1  col2   col3      col4   col5 col6    col7
0           0  22.0   7.2500       3      1  1.0      0
1           1  38.0  71.2833       1      1  0.0      0
2           1  26.0   7.9250       3      0  0.0      0
3           1  35.0  53.1000       1      1  0.0      0
4           0  35.0   8.0500       3      0  1.0      0
..        ...   ...      ...     ...    ...  ...    ...
885         0  39.0  29.1250       3      0  0.0      5
886         0  27.0  13.0000       2      0  1.0      0
887         1  19.0  30.0000       1      0  0.0      0
889         1  26.0  30.0000       1      0  1.0      0
890         0  32.0   7.7500       3      0  1.0      0

我尝试将每个 col 更改为 float

编辑:我在发生错误的那一行添加了注释

【问题讨论】:

  • 你是如何定义 chi2 的?只是导入它?
  • 既然您在尝试进行分类时将y 变量转换为浮点数,那么y 中是否有看起来像26.48914983923762 的数字?
  • chi2 已导入,数据框中没有任何 26.48914983923762 值。 y 持有 1s 和 0s

标签: python pandas


【解决方案1】:

我遇到了同样的问题。通过在代码中进一步向下移动 import 语句来修复它。问题是它与您调用的较早的 chi2 平方函数混淆了。

【讨论】:

    猜你喜欢
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    相关资源
    最近更新 更多