3.怎么科学地评估?
3.1. 线下评估:时间划分样本
在模型真正投入使用前,利用历史样本评估模型效果。
训练集:
训练数据:T-t月的数据, 用于训练模型
测试数据:T-1月的数据, 用于评估模型
3.2. 线上评估:A/B test
在【同质样本集】上同时使用不同的策略,排除其他因素干扰
评估指标:准确率(命中率,响应率)
其他业务指标(收入,违约率)
3.3. 模型评估指标
二分类问题的预测结果可能正确,也可能不正确。
- 结果正确存在两种可能:原本对的预测为对(True Positives),原本错的预测为错(False Negatives);
- 结果错误也存在两种可能:原本对的预测为错(True Neagtives),原本错的预测为对(False Positives);
- 其中Positives代表预测是对的,Negatives代表预测是错的;True代表原本为对,False代表原本为错。
- 原本对的预测为对 TP,原本错的预测为错 FN, 原本对的预测为错TN,原本错的预测为对FP。
- P = TP + FN
- N = TN + FP
1). 准确率(accuracy)
整个样本当中,原本是对的比例(原本是对的预测为对+原本是对的预测为错)
accuracy = TP+TN/(P+N)
越大越好,1为理想
2). 精准率(precision)
预测为对的当中,原本为对的比例
precision = TP/(TP+FP)
越大越好,1为理想
3). 召回率(recall)
原本为对的当中,预测为对的比例
precision = TP/(TP+FN)
越大越好,1为理想
4). 综合评价指标(F-Measure)
Precision和Recall加权调和平均
F = 2PR/(P+R)
越大越好,1为理想状态,此时precision为1,recall为1
5). fp rate
原本是错的预测为对的比例
fp = FP/N
越小越好,0为理想状态
6). tp rate
原本是对的预测为对的比例
tp rate = TP/P
越大越好,1为理想状态
案例说明:
【实际情况】1000个水果(500个苹果,500个梨)目标挑出所有的苹果。
【模型预测】以y>0.5为阈值,找出共300个水果,认为是评估,其中有250个苹果,另外还错误的把50个梨也当作苹果挑出来了。
【分析】
- 准确率accuracy = (TP+TN)/(P+N) = (250+450)/1000 = 0.7
- 精确率precision = TP/(TP+FP) = 250/(250+50) = 0.833
- 召回率recall = TP/(TP+FN) = 250/(250+250) = 0.5
- 综合评价指标F-Measure= 2PR/P+R = 20.830.5/(0.83+0.5) = 0.62
评价二分类模型好坏的指标:AUC
- ROC(Receiver Operating Characteristic)曲线和AUC(Area Under Curve)常被用来评价一个二值分类器(binary classifier)的优劣。
- 相比准确率、召回率、F-score这样的评价指标,ROC曲线有这样一个很好的特性:当测试集中正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。
ROC曲线(Receiver Operating Characteristic)
得到算法的一组(fp rate, tp rate)然后做出的曲线(没办法用大小来衡量)
AUC(Area Under Curve)
由来:因为ROC曲线没办法用大小来衡量,所以引入AUC的概念。
含义:ROC曲线下的面积
越大越好,1为理想状态
AUC的含义
The AUC value is equivalent to the probability that a randomly chosen positive example is ranked higher than a randomly chosen negative example. - AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。 - 当然,AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。
AUC的计算
- AUC(Area Under Curve)被定义为ROC曲线下的面积,这个面积的数值不会大于1。
- 由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。