其他
机器学习模型评估指标ROC、AUC详解
The following article is from Python数据科学 Author wLsq
什么是性能度量?
1. 混淆矩阵
2. 准确率
3. 精准率
精准率和准确率看上去有些类似,但是完全不同的两个概念。精准率代表对正样本结果中的预测准确程度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。
4. 召回率
5. 精准率和召回率的关系,F1分数
1. 灵敏度,特异度,真正率,假正率
其实我们可以发现灵敏度和召回率是一模一样的,只是名字换了而已。 由于我们比较关心正样本,所以需要查看有多少负样本被错误地预测为正样本,所以使用(1-特异度),而不是特异度。
2. ROC(接受者操作特征曲线)
ROC(Receiver Operating Characteristic)曲线,又称接受者操作特征曲线。该曲线最早应用于雷达信号检测领域,用于区分信号与噪声。后来人们将其用于评价模型的预测能力,ROC曲线是基于混淆矩阵得出的。
3. AUC(曲线下的面积)
0.5 - 0.7:效果较低,但用于预测股票已经很不错了 0.7 - 0.85:效果一般 0.85 - 0.95:效果很好 0.95 - 1:效果非常好,但一般不太可能
曲线下面积对所有可能的分类阈值的效果进行综合衡量。曲线下面积的一种解读方式是看作模型将某个随机正类别样本排列在某个随机负类别样本之上的概率。以下面的样本为例,逻辑回归预测从左到右以升序排列:
from sklearn.metrics import auc
import numpy as np
y = np.array([1, 1, 2, 2])
scores = np.array([0.1, 0.4, 0.35, 0.8])
fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2)
metrics.auc(fpr, tpr)
0.75