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

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