关于roc_auc_score直接对预测标签值的计算的理解

网上的举例基本都是预测的概率作为输入

而对于预测的标签为输入时如何计算出来的不是很理解

于是做了些实验:

import numpy as np
from sklearn.metrics import roc_auc_score
y_true = np.array([0, 0, 1, 1])
y_scores = np.array([1, 1, 0, 0])
roc_auc_score(y_true, y_scores)
0.0
import numpy as np
from sklearn.metrics import roc_auc_score
y_true = np.array([0, 0, 1, 1])
y_scores = np.array([1, 1, 1 0])
roc_auc_score(y_true, y_scores)
0.25

推测其实就是直接算预测对的比例

进一步查看ROC

import numpy as np
from sklearn.metrics import roc_curve
import matplotlib.pyplot as plt
y = np.array([0, 0, 1, 1])
scores = np.array([1, 1, 1, 0])
fpr, tpr, thresholds = roc_curve(y, scores)
print(fpr)

print(tpr)

print(thresholds)

plt.plot(fpr,tpr)
plt.show()


[0. 1. 1.]
[0.  0.5 1. ]
[2 1 0]

关于roc_auc_score直接对预测标签值的计算的理解_第1张图片

推测0.25就是三角形的面积

你可能感兴趣的:(Python)