【发布时间】: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