scikit-learn - Scikit-learn : roc_auc_score 根据地面实况是否是热编码返回不同的值
问题描述
不知道发生了什么,但是:
import numpy as np
from sklearn.preprocessing import OneHotEncoder
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import roc_auc_score
y_true = np.random.randint(np.ones((100,1))*5)
y_scores = RandomForestClassifier().fit(np.random.rand(100,5),y_true.ravel()).predict_proba(np.random.rand(100,5))
oh=OneHotEncoder()
print(roc_auc_score(oh.fit_transform(y_true.reshape(-1, 1)).toarray(), y_scores,multi_class='ovo'))
print(roc_auc_score(y_true.ravel(), y_scores,multi_class='ovo'))
不断给我不同的输出(显然我希望它每次运行它时都会给出不同的值,但我希望一个热编码和非一个热编码的真值返回相同的东西。示例输出:
0.5141240772057938
0.5242429384699121
任何人都知道我做错了什么(只是想了解我是否遗漏了什么)。
解决方案
推荐阅读
- javascript - 如何将我的 json 数据附加到选择列表中?
- scala - Scala 3:仅对某些类型发生相等编译错误
- javascript - 我如何迭代具有键和值的对象数组,并在 JSX(键和值)中做出反应并呈现它们
- reactjs - 在反应中更改弹出框引导程序的标题和正文之间的下划线或空格的颜色
- windows - 误删用户变量中的路径
- azure - 无法在 Azure Synapse Studio 中创建用户定义的函数
- powershell - Powershell 脚本:如何在用户从 OU 移动时将用户添加到 AD 组,
- python - ProcessPoolExectur 和 Ctrl C
- bash - 需要恢复桌面文件 - 使用 Git Bash 意外删除的桌面目录
- reactjs - 延迟加载 - 概述和估计改进?