我想计算roc_auc_score,但我得到了跟随错误.
"ValueError: Data is not binary and pos_label is not specified"
Run Code Online (Sandbox Code Playgroud)
我的代码片段如下:
import numpy as np
from sklearn.metrics import roc_auc_score
y_scores=np.array([ 0.63, 0.53, 0.36, 0.02, 0.70 ,1 , 0.48, 0.46, 0.57])
y_true=np.array(['0', '1', '0', '0', '1', '1', '1', '1', '1'])
roc_auc_score(y_true, y_scores)
Run Code Online (Sandbox Code Playgroud)
请告诉我它有什么问题.
jab*_*edo 17
你只需要改变y_true它看起来像这样:
y_true=np.array([0, 1, 0, 0, 1, 1, 1, 1, 1])
Run Code Online (Sandbox Code Playgroud)
说明:
如果您查看https://github.com/scikit-learn/scikit-learn/blob/0.15.X/sklearn/metrics/metrics.py中的roc_auc_score函数,您将看到评估如下:y_true
classes = np.unique(y_true)
if (pos_label is None and not (np.all(classes == [0, 1]) or
np.all(classes == [-1, 1]) or
np.all(classes == [0]) or
np.all(classes == [-1]) or
np.all(classes == [1]))):
raise ValueError("Data is not binary and pos_label is not specified")
Run Code Online (Sandbox Code Playgroud)
在执行的时刻pos_label是None,但是只要你被定义y_true为字符数组np.all总是false和所有的人都被否定,那么,如果条件true和异常.
| 归档时间: |
|
| 查看次数: |
18682 次 |
| 最近记录: |