
分类
|
185
除了
ROC
曲线,研究精确度
–
召回率(
PR
)曲线也能给我们很多启示。
PR
曲线的计算方法与
ROC
曲
线非常类似,只是它的数据是按照可能为
1
的概
率从小到大排序的,而且计算的是累积精确度和召回率。在评估结果非常不
平衡的数据时,
PR
曲线尤其有用。
5.4.5
AUC
ROC
曲线是一种非常有价值的图形工具,但它本身并不能被视为对分类器性能的一种量
度。不过,
ROC
曲线可以生成曲线下面积
(
area underneath the curve
,
AUC
)这个指标。
AUC
就是
ROC
曲线下的总面积
。
AUC
的值越大,分类器就越有效。完美分类器的
AUC
为
1
,即它可以对所有的
1
进行正确分类,而不会将任何
0
误分类为
1
。
完全无效的分类器(对角线)的
AUC
是
0.5
。
图
5-7
给出了贷款模型
ROC
曲线下的面积。
AUC
的值可以通过
R
的数值积分来计算:
sum(roc_df$recall[-1] * diff(1 - roc_df$specificity))
[1] 0.6926172
在
Python
中,可以像在
R
中那样计算准确率,也可以使用
scikit-learn
中的
sklearn.
metrics.roc_auc_score
函数,这时需要你确定期望的值是
0
还是
1
:
print(np.sum(roc_df.recall[:-1] * np.diff(1 - roc_df.specificity)))
print(roc_auc_score([1 if yi == 'default' else 0 for yi in y], ...