This repository has been archived on 2020-04-25. You can view files and clone it, but cannot push or open issues or pull requests.
ml/basic/evaluation.md

90 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 评估方法
## 留出法
留出法(hold-out)直接将数据集D划分为两个互斥的集合其中一个集合作为训练集S,另一个作为测试集T即有$$D=ST,S∩T=∅ $$
建议:<br>
训练集/测试集2/3~4/5
## 交叉验证法
交叉验证法(cross validation)先将数据集D划分为k个大小相似的互斥子集。即有$$D=D1D2...Dk,Di∩Dj=∅$$
每个子集Di都尽可能保持数据分布的一致性即从D中通过分层采样得到。然后每次用k-1个子集的并集作为训练集余下的那个子集
作为测试集这样就可以获得k组训练/测试集。从而可以进行k次训练与测试最终返回的是这k个测试结果的均值。<br>
![交叉验证法](https://img.zeekling.cn/images/2020/04/25/4f02df31de0364f1c9340d0dffab13ea.png) <br>
缺陷:数据集较大时,计算开销。同时留一法的估计结果也未必比其他评估方法准确。
## 自助法
简单的说它从数据集D中每次随机取出一个样本将其拷贝一份放入新的采样数据集D,样本放回原数据集中重复这个过程m次就得
到了同样包含m个样本的数据集D,显然D中会有一部分数据会在D中重复出现。样本在m次采样中始终不被采样到的概率是
![概率](https://img.zeekling.cn/images/2020/04/25/5a38dfeac11eec9b6f702e520f48e8c2.png),取极限得到:<br>
![自助法](https://img.zeekling.cn/images/2020/04/25/c0adf2b44a747e3b3656219e7ef78112.png) <br>
即通过自助法初始数据集中约有36.8%样本未出现在采样数据集D中。可将D作为训练集D\D作为测试集(\表示集合的减法)。保
证了实际评估的模型与期望评估的模型都是用m个训练样本而有数据总量约1/3的、没在训练集中出过的样本用于测试这样的测试结
果,也叫做”包外估计”(out-of-bagestimate).
### 适用场景
自助法在数据集较小、难以有效划分训练/测试集很有用;此外自助法可以从初始数据集中产生多个不同的训练集,这对集成学习等方法
有很大好处。
### 缺点
自助法产生的数据集改变了初始数据集的分布,引入估计偏差。故在数据量足够时,留出法与交叉验证更为常用。
# 性能度量
在预测任务中,给定样本集
![样本集](https://img.zeekling.cn/images/2020/04/25/356599b3bb2a6e02b0d56f15327e46b0.jpg)
其中yi是示例xi的真实标记。回归任务中最常用的性能度量是均方误差(mean squeared error),f(x)是机器学习预测结果<br>
![均方误差](https://img.zeekling.cn/images/2020/04/25/4f138effdae759513764bfc7d3c33713.png)<br>
更一般的形式(数据分布D概率密度函数p(x))<br>
![均方误差](https://img.zeekling.cn/images/2020/04/25/df5933f0b3aec4c93ccac1a67001e466.png)
## 错误率和精度
错误率的定义:<br>
![错误率](https://img.zeekling.cn/images/2020/04/25/a6d785b9b95f854a1dd6229f18978283.png)<br>
更一般的定义:<br>
![错误率](https://img.zeekling.cn/images/2020/04/25/ed0f470faf5604e4a7615acbafac6434.png)<br>
精度的定义:<br>
![精度](https://img.zeekling.cn/images/2020/04/25/f6ad23b157393bd01debfb50c70451e9.png)<br>
更一般的定义:<br>
![精度](https://img.zeekling.cn/images/2020/04/25/cd861ef96f53a9f74f424fbe99c4cbfe.png)
## 查准率、查全率与F1
下表是二分类结果混淆矩阵将判断结果分为四个类别真正例TP、假正例FP、假反例FN、真反例TN<br>
![二分类问题](https://img.zeekling.cn/images/2020/04/25/9643db5e5887b74c4573a7a3c1e668e7.jpg) <br>
查准率:【真正例样本数】与【预测结果是正例的样本数】的比值。<br>
查全率:【真正例样本数】与【真实情况是正例的样本数】的比值。 <br>
![P-R曲线](https://img.zeekling.cn/images/2020/04/25/5c078520ffcd259bbe498b5676af6ea7.png) <br>
- 当曲线没有交叉的时候:外侧曲线的学习器性能优于内侧;
- 当曲线有交叉的时候:
- 第一种方法是比较曲线下面积,但值不太容易估算;
- 第二种方法是比较两条曲线的平衡点,平衡点是“查准率=查全率”时的取值,在图中表示为曲线和对角线的交点。平衡点在外侧的
曲线的学习器性能优于内侧。
- 第三种方法是F1度量和Fβ度量。F1是基于查准率与查全率的调和平均定义的Fβ则是加权调和平均。<br>
![F1](https://img.zeekling.cn/images/2020/04/25/41703aab28291f37557a7742e636c5ee.png)<br>
![Fb](https://img.zeekling.cn/images/2020/04/25/9f9b83f34cd9a96a33695020f5646af1.png)<br>
## ROC与AUC
ROC曲线便是从这个角度出发来研究学习器泛化性能的有力工具。<br>
与P-R曲线使用查准率、查全率为横纵轴不同ROC的纵轴是”真正样例True Positive Rate简称TPR横轴是“假正例率False
Positive Rate简称FPR两者分别定义为<br>
![ROC](https://img.zeekling.cn/images/2020/04/25/7d7a43d6d5d1aa6c60c627e5656ff1cc.jpg) <br>
显示ROC的曲线图称为“ROC图”<br>
![pic](https://img.zeekling.cn/images/2020/04/25/80ba85a56d336856ac19c5bb9ef0cf8b.jpg)<br>
进行学习器比较时与P-R如相似若一个学习器的ROC曲线被另一个学习器的曲线“包住”则可断言后者的性能优于前者若两个学习
器的ROC曲线发生交叉则难以一般性的断言两者孰优孰劣。此时如果一定要进行比较则较为合理的判断是比较ROC曲线下的面积
即AUCArea Under ROC Curve
注意AUC计算公式没看懂
## 代价敏感错误率与代价曲线
在现实任务中会遇到这样的情况:不同类型错误所造成的后果不同。以二分类任务为例,我们可根据任务领域知识设定一个“代价矩阵”,
如下图所示,<br>
![代价矩阵](https://img.zeekling.cn/images/2020/04/25/7678f5fbd82759a4e54e40ac946ed795.jpg) <br>
在非均等代价下ROC曲线不能直接反映出学习器的期望总体代价而“代价曲线cost curve”则可达到目的。代价曲线图的横轴是取
值为[01]的正例概率代价,<br>
![正概率代价](https://img.zeekling.cn/images/2020/04/25/3252090d68a565a5e37789cba5f5ab6e.jpg) <br>
纵轴是取值为[01]的归一化代价<br>
![归一化代价](https://img.zeekling.cn/images/2020/04/25/0a30530fec90a584a1449e3373dff3a3.jpg) <br>
画图表示如下图所示 <br>
![](https://img.zeekling.cn/images/2020/04/25/b309cc398dd5a3c7b6d730be973c17a3.jpg) <br>