模型的评估和选择

模型的评估和选择

1、精度

分类错误的样本数量占样本总数的比例为‘错误率’,若有m个样本,其中a个样本被错误分类,则错误率为
E = m a E=\frac{m}{a} E=am
,相应的‘精度’就等于1-E。一般来说,在训练集上的误差称为训练误差,在新样本上的误差称为泛化误差。我们最终的目的是得到一个泛化误差较低的学习器,然而在很多情况下,我们并不知道新样本。因此,我们只能努力降低训练误差,同时提高模型的泛化能力。

2、过拟合与欠拟合

我们努力降低学习器的训练误差,因此,学习器会尽可能挖掘出训练样本的内在规律。有时候,学习器把训练样本自身特有的结构当做了一般规律,当遇到新样本时就不能做出正确的判断。这种情况就称为过拟合,也就是说学习器过于强大,将样本自身的特有情况挖掘出来作为判断的依据。欠拟合则相反,是由于只学习到训练样本的一部分规律,在遇到新样本时判断错误。
一般来说,复杂的模型会具有更强的学习力,意味着具有更高的过拟合风险。理想状态下,我们应该选择泛化误差最小的模型,但是由于我们无法直接观察到泛化误差,而训练误差又因为无法反映出是否过拟合,所以不是一个合适的评价标准。因此,模型选择必须有一套合适的评估方法。

在这里插入图片描述

3、评估方法

比较好的一种办法就是将已有的数据集拆分成训练集和测试集,要求是训练集和测试集互斥。

3.1留出法

直接将数据集D分为训练集S和测试集T,在S集上训练模型,然后使用T进行评估。需要注意的地方:

  • 训练集和测试集尽可能保持数据分布的一致。分类任务中,训练集和测试集的类别比例应该保持相似。如果训练集中有500个正样本、1000个负样本,则测试集也最好拥有一样的正负样本比例。
  • 不同的训练集和测试集会产生不同的模型评估结果,因此,不能把一次划分的结果作为模型评估的结果,一般采用多次的模型划分后训练模型评估模型,最后取平均值作为评估结果。
  • 所用于训练的训练集数量较少,不能完全代表数据集D的特征,则学习器所学到的规律不能完全表达出D的规律。若用于测试的训练集数量少,则测试结果不具有参考性。因此,训练集和测试集的划分比例要控制好,要视数据集的大小而定,一般将数据集的 2 3 \frac{2}{3} 32~ 4 5 \frac{4}{5} 54作为训练集,剩下的作为测试集。
3.2交叉验证法

将数据集D以分层抽样分为 k k k个互斥的子集,使用其中的 k − 1 k-1 k1个子集训练模型,剩下的1个作为测试集,循环使用则可以训练 k k k次,最终返回 k k k次测试的均值。

在这里插入图片描述

假定有m个样本,留其中的1个样本作为测试集,这样的交叉验证称为‘留一法’,优点在于评估的结果较为准确,缺点在于数据集较大的时候计算开销巨大,而且评估也未必一定比其他的方法准确。

3.3自助法

给定包含m个样本集的数据集 D D D,对其采取有放回的随机抽样,产生包含m个样本的数据集 D ′ D′ D,显然D中会有一部分数据被重复采样,也有一部分数据不会被采样。可以估计出,不被采样到的概率是 ( 1 − 1 m ) m (1-\frac{1}{m})^{m} (1m1)m,取极限估计概率
lim ⁡ m → + ∞ ( 1 − 1 m ) m = 1 e ≈ 0.368 {\lim_{m \to +\infty}}(1-\frac{1}{m})^m=\frac{1}{e}\approx 0.368 m+lim(1m1)m=e10.368
也就是说,大概有 1 / 3 1/3 1/3的样本没有出现在 D ′ D′ D中,使用 D ′ D′ D作为训练集,原始数据集D作为测试集。这种测试结果也称为’包外估计‘(out-of-bag estimate)。

这种方法在大数据集上应用会引入估计偏差,因为对大数据来说 1 / 3 1/3 1/3的数据量足以改变数据的分布。因此,自助法在小样本上很有用。

4 模型评价标准

前文已经讨论过模型选择的评价方法,我们还需要模型的评价标准才能满足模型选择。下面分别介绍准确率和召回率。以二分类为例

TP: Ture Positive 真正例

FP: False Positive 假正例

TN: True Negative 真反例

FN: False Negative 假反例

其中TP+FP+TN+FN=总样本集

1. 精确率(Precision)

P = T P T P + F P P = \frac{TP}{TP+FP} P=TP+FPTP

精确率是对预测结果而言,表示预测为正的结果中有多少是真正例。

2. 召回率 (Recall)

R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP

召回率是对于样本而言,共有 T P + F N TP+FN TP+FN个样本,其中被正确分类的有多少。

3. 准确率 (Accuracy)

A = T P + T N T P + T N + F N + F P A=\frac{TP+TN}{TP+TN+FN+FP} A=TP+TN+FN+FPTP+TN

指的是在所有的分类样本中,分类正确的有多少。

img

4. F1

精确率和召回率是一对矛盾的指标。召回率高意味着其中的一类被尽可能的分出来了,那么极端情况下,学习器把正负两类全分为正例,此时正例全部被区分出来,召回率很高,但是精确率很低。因此单纯使用一种指标并不是很好的模型评价策略,因此提出F1值。
F 1 = 2 ∗ P ∗ R P + R = 2 ∗ T P 样 例 总 数 + T P − T N F1 = \frac{2*P*R}{P+R}=\frac{2*TP}{样例总数+TP-TN} F1=P+R2PR=+TPTN2TP

F1值为精确率和召回率的调和平均值。

5.ROC与AUC

受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve)。

ROC曲线的纵轴是‘真正例率’(TPR)正例被正确区分出来的概率,横轴是‘假正例率’(FPR)反例中被错误分类的概率。
T P R = T P T P + F N TPR = \frac{TP}{TP+FN} TPR=TP+FNTP

F P R = F P T N + F P FPR = \frac{FP}{TN+FP} FPR=TN+FPFP

img

显然,我们希望真正例率越大越好,也就是正例被正确区分出来的概率越大越好,也就是TPR=1。同时,我们也希望假正例率越低越好,因为如果模型把所有样本都分成正例,此时TPR为1,也就是所有的正例都被正确区分出来了,但是所有的反例都被错误的分成了正例,因此假正例率也为1,位于ROC坐标中的右上角(1,1)。这样的模型并不是我们需要的,我们需要正例和反例都尽量被正确的区分出来,所以TPR应该尽量大,FPR尽量小。

例子:假设现在有雷达用于探测敌军飞机,现在雷达反馈10个信号,其中8个是飞机,2个是大鸟。经过分析后确认,其中9个是飞机,1个是鸟。则真正例为 8 9 \frac{8}{9} 98,雷达漏掉了一架飞机。我们希望雷达能够检测到所有的飞机,经过调整后,雷达反馈10个信号,并把10个信号全部标记为飞机,经过分析确认,里面有1架飞机,9只鸟,此时真正例为1,假正例也为1,雷达虽然认出了所有的飞机,但这并不是我们希望的分类器。雷达最好是把所有的飞机都分出来,并且不要把鸟认为飞机,也就是真正例率为1,假正例率为0。显然,这俩个坐标值是相互制约的。

在这里插入图片描述

对于不同的模型,ROC曲线被另一个学习器完全包住,则说明后一个学习器性能优于前一个。若两个学习器的ROC曲线交叉,则不能断言谁更优秀。因此使用ROC曲线下面积作为评价标准。ROC曲线下面积称为AUC(Area Under ROC Curve)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值