第二章——模型评估与选择 Part3

在开始今天的部分之前,我们先搬出上一部分的思维导图。

第二章——模型评估与选择 Part3

 

有了模型,有了测试集,就是有了测试结果。那如何来评估测试结果呢?我们要确定一个评估指标。

指标一:错误率、精度

错误率和精度是最常用的两种度量方法。错误率是分类错误的样本数量占总样本数量的比例,精度就是分类正确的样本数量占总样本数量的比例。

虽然常用,但是题目的局限性还是很明显的。比如,无法回答:预测为真的所有样本中,到底有多少是预测正确的?

指标二:查准率、查全率、F分数

真实情况

预测结果

 

 

Positive

Negative

TRUE

TP

FN

FALSE

FP

TN

查准率 = TP / (TP + FP)    在所有的Positive预测中,有多少是预测正确的?(预测的对不对)

查全率= TP / (TP + FN)     在所有的True中,有多少被正确预测出来了?(有没有漏)

 

这两者有的时候就像跷跷板,一头按下去另一头就起来了。打个比方,我们现在给1万个客户做信用审核。如果想查准率高,那我就只预测最有把握的那群人,这样做肯定会漏掉很多其他的好人;如果想查全率高,我干脆就说这1万个人所有人都是好人,显然这样会把那些信用不好的人也预测成好人,查准率就低了。

 

在现实中,查准率和查全率有时并不是同样重要的。比如从疾病诊断角度来看,初诊的查全率可能更加重要一点。误诊的患者要多一次复诊的检查,是增添了一些麻烦;但是和有病但是漏诊相比,这些麻烦还是可以忍受一下的。所以我们引入了一个β来表示对查准率和查全率的不同偏好。

可以看到,当β>1时,更看重查全率;当β<1时,更看重查准率;当β=1时,就是F1分数。

第二章——模型评估与选择 Part3

 

指标三:ROC与AUC

当我们在预测时,可能会发现存在这样一个顺序:把最有可能是正例的排在前面,最不可能是正例的排在后面。然后我们可以在这个序列中切上一刀,前半部预测为Positive,后半部预测为Negative。

从这个思想出发,我们有ROC (Receiver Operation Characteristc)曲线。我们用机器学习预测结果,然后每次预测都计算两个值TPR (True Postitive Rate)、FPR (False Positive Rate)。把FPR作为横轴,TPR作为纵轴,作图,就得到了ROC曲线。其中:

TPR = TP / (TP + FN)   

FPR = FP / (FP + TN)

如果我们有两个模型需要进行比较,如何比较ROC,进而能知道哪个模型更好一些呢?此时就要用到AUC (Area Under ROC Curve)了。AUC就是ROC曲线下方的面积。

第二章——模型评估与选择 Part3

 

指标四:代价敏感错误率和代价曲线

其实仔细回想一下,我们之前的所有指标都暗含了一个假设:所有错误的代价是一样的。因此之前我们只计算了正确/错误的次数而已。但是现实中,不同错误的代价是相同的嘛?举个栗子,忘记刷牙十次是犯了十次错误,过马路没抬头看一眼被车撞死,其实只犯了一次错误而已。显然不同错误的代价是完全不同的。

为了展现出错误的代价,我们可以把上面出现的矩阵稍微修改一下,加上他们错误的成本(Cost)

真实情况

预测结果

 

 

Positive

Negative

TRUE

TP,cost=0

FN, cost=1

FALSE

FP, cost=10

TN, cost=0

TP和TN都是正确的预测,所以cost=0。在错误的预测中,我们认为FN的cost=1,FP的cost=10。显然我们更加看重FP错误产生的代价。

第二章——模型评估与选择 Part3