roc_curve()的用法及用途
Posted super尚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了roc_curve()的用法及用途相关的知识,希望对你有一定的参考价值。
来源及说明
来源于 sklearn 库的 metrics.roc_curve 主要用来计算ROC曲线面积。
sklearn.metrics.roc_curve(y_true, y_score, *, pos_label=None, sample_weight=None, drop_intermediate=True)
输入参数:
y_true : ndarray of shape (n_samples,)
#真实的二进制标签。如果标签不是-1,1或0,1,那么pos_label应该明确给出。
y_score : ndarray of shape (n_samples,)
#可以是正类的概率估计值,也可以是可信度值,或者是非正类的类的概率估计值,信心值,或者非阈值的决策测量值(如某些分类器上的 "decision_function "所返回的)。
pos_label : int or str, default=None
# 正面类的标签。 当`pos_label=None'时,如果`y_true'在-1, 1或0, 1。`pos_label'会被设置为1,否则会出现错误。
sample_weight : # 类似数组的形状(n_samples,), default=None 表示样本权重。
drop_intermediate : bool, default=True
# 是否放弃一些不会出现在ROC曲线上的次优阈值。在绘制的ROC曲线上。这对于创建较轻的ROC曲线很有用。
输出参数:
fpr : ndarray of shape (>2,)
#递增的假阳性率,其中i元素是score >= `thresholds[i]`.的预测的假阳性率。
tpr : ndarray of shape (>2,)
#增加真实阳性率,元素i是预测的真实阳性率,score >= `thresholds[i]`的预测的真阳性率。
thresholds : ndarray of shape = (n_thresholds,)
#用于计算决策函数的递减。`thresholds[0]` 代表没有被预测的实例。并被任意设置为`max(y_score) + 1'。
绘制ROC曲线:
plt.title('ROC')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.plot(fpr, tpr, '--*b', label="ours")
plt.legend()
plt.show()
TP(True Positives),TN(True Negatives),FP(False Positives),FN(False Negatives) 分别为阳性样本正确分类数量、阴性样本正确分类数量、阳性样本错误分类数量以及阴性样本错误分类数量。
阳性样本正确分类数量占阳性样本总数的比例TPR(即敏感性,Sensitivity),阴性样本正确分类的数量占阴性样本总数的比例FPR(即1-特异性,1-Specificity)计算如下:
T P R = T P / ( T P + F N ) \\ TPR = TP/(TP+FN) TPR=TP/(TP+FN)
(阳性样本被判断为阳性/阳性样本总数)
F P R = F P / ( F P + T N ) \\ FPR = FP/(FP+TN) FPR=FP/(FP+TN)
(阴性样本被判断为阳性/阴性样本总数)
ROC曲线横坐标为FPR,纵坐标为TPR。
以上是关于roc_curve()的用法及用途的主要内容,如果未能解决你的问题,请参考以下文章
Scikit-learn:如何获得真阳性、真阴性、假阳性和假阴性
有没有办法用已知的真阳性、真阴性、假阳性和假阴性来绘制混淆矩阵?
Python计算医疗数据训练集测试集的对应的临床特征:训练集(测试集)的阴性和阳性的样本个数连续变量的均值(标准差)以及训练测试集阳性阴性的p值离散变量的分类统计比率训练测试集阳性阴性的p值