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 Permalink Normal View History

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