机器学习从入门到进阶⑫丨重抽样方式

概念

机器学习算法拥有从数据中习得规律的方法——直觉(intuitive)。模型从给到的数据集中发现潜藏的规律,这个过程称为模型训练(training)。将经过训练的模型在另一个全新的数据集上进行测试,以求找出最优化的模型,也就是要找模型能够同时在训练和测试数据集上获得令人满意表现的最有效点。

机器学习从入门到进阶⑫丨重抽样方式

测试误差(test error),是指模型根据新的观测值(observation)做出预测时发生的平均误差。这个新的观测值是模型未曾见过的。测试误差通常与训练误差相距甚远,而且很容易被严重低估。

随着模型复杂性的提高,训练误差会降低,因为复杂性可以帮助模型更好地学习训练数据中的各种变化,这种情况称为过拟合(overfitting)。然而,因为测试数据是模型未曾见过的,过拟合的模型在测试样本上的表现会非常糟糕。

造成这个问题的原因,是偏差和方差

随着模型复杂性的提高,会发生以下情况:

模型所追求的,是平衡了误差与方差的最有效点。

模型训练过程与训练数据本身一样重要。那么我们该如何保证数据中的误差不会影响到模型训练?我们又该如何保证模型足够泛化?

重抽样(resampling)就是用于保证模型效果足够好,并且能处理得了数据中的变化。要实现这一点,就要用数据集中发现的多种规律对模型进行训练。本文将讨论这些重抽样方式。

验证集方式

机器学习从入门到进阶⑫丨重抽样方式

验证集方式是为训练和测试进行抽样的一种简单方式。将数据分为两部分,一部分数据用于训练模型,模型从训练数据中进行学习;另一部分数据用于测试模型。

验证集方式很简单,但是也有一些缺点:

总体来说,验证集误差往往会放大测试误差。

K-Fold交叉验证

上面讲了验证集方式的缺点,K-Fold交叉验证方式则能够克服这些缺点。这一方式的工作原理如下:

以示例来说明:

机器学习从入门到进阶⑫丨重抽样方式

  1. 在这个例子中,我们将一个数据集平均分为10个包;
  2. 在第一次迭代中,用9个包对模型进行训练,也就是包2-9;
  3. 用第1个包对模型进行测试,即包#1;
  4. 将第一次迭代中的训练和测试误差标注出来;
  5. 在第二次迭代中,还是用9个包训练模型。不过,这次训练使用了第1个包和其他8个包,也就是包1和包3-10;
  6. 用第2个包对模型进行测试,即包#2;
  7. 将第二次迭代中的训练和测试误差标注出来;
  8. 以此类推,直到所有包都经历过训练和测试。

基于所有迭代的平均误差来计算模型的整体表现。

机器学习从入门到进阶⑫丨重抽样方式

均方误差(Mean square error),即MSE。

机器学习从入门到进阶⑫丨重抽样方式

分类模型的衡量指标,即AUC、召回率、精确度等。

我们可以看到,K-Fold交叉验证方式弥补了验证集方式的很多缺点。通过用每个包进行一遍训练和测试,K-Fold交叉验证在避免偏差影响模型表现方面也有总体不错的效果。

不过也可以预料到,与验证集这种简单的方式相比,交叉验证的训练次数更多,耗时也显著增加。尤其是当训练数据集很大的时候,这个问题就会非常明显。

Bootstrap抽样法

还有一种抽样方法——Bootstrap抽样法(也称自助抽样法),这是一种灵活而强大的统计方法,可用于量化与估计量(estimator)相关的不确定性。其工作原理如下:

  1. 通过从原始数据集中重复抽取样本并放回,形成不同的数据集(即Bootstrap数据集)。而不是将原始数据重复分为多个单独的数据集。
  2. 每个Bootstrap数据集都是基于抽样再放回的方式形成的,其与原始数据集同样大。(即如果原始数据集大小为N,从中有放回的抽样N次,形成的Bootstrap数据集大小也为N)
  3. 某一观测值可能在Bootstrap样本中出现多次,也有可能完全不出现。

通过一个示例来更好地理解:

机器学习从入门到进阶⑫丨重抽样方式

在上图中包含10个观测值,Bootstrap抽样法运行如下:

  1. 原始数据集中有10个观测值。
  2. 训练数据集与原始数据集同样大,即训练在10个观测值上完成。不过,与原始数据集相比,训练数据集中的部分观测值是重复出现的。在上面这个示例中,在第一次迭代中,训练数据集中观测值2、3、9是重复的,观测值#1是不重复的。
  3. 模型训练完之后,再在未见数据上进行测试。未见数据是那些包含在原始数据集中,但不包含在训练数据集中的观测值。测试数据集,即为原始数据集中未曾被抽样到训练数据集的数据。

重复以上三个步骤,抽取出第二个Bootstrap样本集并测试。以此类推,直至所有Bootstrap样本集都完成这一过程(数量通常在1000个以内)。Bootstrap的总体估计值为每个Bootstrap样本集所得估计值的平均数。

与常规的训练集-测试集分割方式相比,Bootstrap抽样的估计值方差更低,在实际应用中更有优势。

如果涉及的观测值相对较少,Bootstrap抽样也可以用于对数据集的同一观测值进行重复抽样来进行训练。

结论

本文介绍了三种重抽样方式,总体目标都是使模型能够尽可能多的学习。为了实现这一点,需要用潜在数据集中的各种各样的数据点对模型进行训练。实践中,会采用简单的验证方式对模型进行快速验证,再使用K-fold交叉验证来强化。


参考资料:

翻译:TalkingData

作者:Pradeep Menon

来源:Mudium

原文链接:https://towardsdatascience.com/data-science-simplified-part-12-resampling-methods-e029db77fa9c

译者注:

本文是“机器学习从入门到进阶”的最后一篇,本系列文章至此告一段落。

作为入门级的内容,本系列文章试图用最通俗的语言和示例,来介绍最基础的数据科学概念与应用,尤其适合对数据科学初感兴趣或者工作中涉及数据科学的“非专业选手”阅读。

文章翻译中如有不准确的地方,非常欢迎大家留言指出。

展开阅读全文

页面更新:2024-05-04

标签:估计值   进阶   方式   方差   复杂性   误差   偏差   示例   样本   入门   模型   缺点   也就是   平均   机器   过程   测试   数据   游戏

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top