TypeError: 'numpy.float64' 对象不可调用 - 打印 F1 分数时

我正在尝试在 Jupyter Notebook 上运行以下代码:


lr = LogisticRegression(class_weight='balanced')

lr.fit(X_train,y_train)

y_pred = lr.predict(X_train)


acc_log = round(lr.score(X_train, y_train) * 100, 2)

prec_log = round(precision_score(y_train,y_pred) * 100,2)

recall_log = round(recall_score(y_train,y_pred) * 100,2)

f1_log = round(f1_score(y_train,y_pred) * 100,2)

roc_auc_log = roc_auc_score(y_train,y_pred)

当尝试执行此操作时,我收到以下错误:


---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-46-bcb2d9729eb6> in <module>

      6 prec_log = round(precision_score(y_train,y_pred) * 100,2)

      7 recall_log = round(recall_score(y_train,y_pred) * 100,2)

----> 8 f1_log = round(f1_score(y_train,y_pred) * 100,2)

      9 roc_auc_log = roc_auc_score(y_train,y_pred)


TypeError: 'numpy.float64' object is not callable

似乎无法弄清楚我做错了什么。


偶然的你
浏览 155回答 2
2回答

MMMHUHU

在您的代码中的某个位置(此处未显示),有一行显示f1_score = ...(书面类型为numpy.float64),因此您将使用f1_score变量覆盖该方法f1_score(该变量不可调用,因此会出现错误消息)。重命名两者之一以解决错误。

阿晨1998

在这种情况下使用metrics.f1_score(y_train,y_pred)而不是f1_score(y_train,y_pred):演示截图
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python