零基础学习人工智能-03如何进行科学地评估


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个梨也当作苹果挑出来了。

【分析】

  1. 准确率accuracy = (TP+TN)/(P+N) = (250+450)/1000 = 0.7
  2. 精确率precision = TP/(TP+FP) = 250/(250+50) = 0.833
  3. 召回率recall = TP/(TP+FN) = 250/(250+250) = 0.5
  4. 综合评价指标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更大的分类器效果更好。

猜你喜欢

转载自blog.csdn.net/hualusiyu/article/details/86178067