import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, auc , roc_auc_score
import numpy as np
correct_classification = np.array([0,1])
predicted_classification = np.array([1,1])
false_positive_rate, true_positive_rate, tresholds = roc_curve(correct_classification, predicted_classification)
print(false_positive_rate)
print(true_positive_rate)
从https://en.wikipedia.org/wiki/Sensitivity_and_specificity :
True positive: Sick people correctly identified as sick
False positive: Healthy people incorrectly identified as sick
True negative: Healthy people correctly identified as healthy
False negative: Sick people incorrectly identified as healthy
我使用这些值0:生病了,1:健康
从https://en.wikipedia.org/wiki/False_positive_rate :
FLASE阳性率=假阳性/(假阳性+真阴性)
假阳性的数量:0数目的真阴性的:1
因此,假阳性率= 0/0 + 1 = 0
阅读roc_curve的返回值( http://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html#sklearn.metrics.roc_curve ):
FPR:阵列,形状= [> 2]
增加假阳性率,使得基元i与得分> =阈值的预测[I]的假阳性率。
TPR:阵列,形状= [> 2]
增加真阳性率,使得基元i与得分> =阈值的预测[I]的真阳性率。
阈值:阵列,形状= [n_thresholds]
在决策功能降低阈值来计算FPR和TPR。 阈值[0]表示被预测没有实例,并任意设置为MAX(y_score)+ 1。
这是一个多么不同的值,以我的假阳性率的手工计算? 阈值是如何设置的? 这里提供了一些门槛模式的信息: https://datascience.stackexchange.com/questions/806/advantages-of-auc-vs-standard-accuracy但我很困惑,它如何与这个实现适合?