python - 造成这种差异的原因可能是什么?
问题描述
精度差异的原因可能是什么?
y_pred = model.predict(x_test)
ans = []
for i in y_pred:
ans.append(0 if i[0]<0.5 else 1)
ans = np.array(ans)
print("Accuracy:",metrics.roc_auc_score(y_test, ans))
Accuracy: 0.7781798160210841
尽管
print("Accuracy:",metrics.roc_auc_score(y_test, y_pred))
Accuracy: 0.8949947592358702
解决方案
ROC 分数不准确。它是曲线下的一个区域,当您通过改变阈值来构建预测时出现。在您的代码中,您通过仅输出 0 和 1 消除了“不确定性”的概念,因此 ROC 曲线变得平坦 - 没有影响您的预测的阈值。
推荐阅读
- mysql - MySQL - WHERE IN() - 获取所有数据
- javafx - JavaFX Slider - 当箭头按钮按下(->)移动滑块时不会触发changeListener
- javascript - 如何存储 Promise 对象数据?
- visual-studio - Visual Studio 2019 项目 - 包 - 路径中的非法字符
- html - 有没有办法将 HEX 颜色转换为 HTML、CSS 或 Python 中的可视颜色?
- r - 查找与其他列值共享的列值 R
- python - 可视化堆叠的 Lstm
- django - 为什么我的 Django 模型缺少 values 属性?
- angular - 如何在 Asp.Net Core Web Api 和 spa(Angular)中正确实现“Google 登录”?
- escaping - 为什么是 '。' Telegram Bot API 中 MarkdownV2 中的保留字符?