机器学习算法拥有从数据中习得规律的方法——直觉(intuitive)。模型从给到的数据集中发现潜藏的规律,这个过程称为模型训练(training)。将经过训练的模型在另一个全新的数据集上进行测试,以求找出最优化的模型,也就是要找模型能够同时在训练和测试数据集上获得令人满意表现的最有效点。
测试误差(test error),是指模型根据新的观测值(observation)做出预测时发生的平均误差。这个新的观测值是模型未曾见过的。测试误差通常与训练误差相距甚远,而且很容易被严重低估。
随着模型复杂性的提高,训练误差会降低,因为复杂性可以帮助模型更好地学习训练数据中的各种变化,这种情况称为过拟合(overfitting)。然而,因为测试数据是模型未曾见过的,过拟合的模型在测试样本上的表现会非常糟糕。
造成这个问题的原因,是偏差和方差。
随着模型复杂性的提高,会发生以下情况:
模型所追求的,是平衡了误差与方差的最有效点。
模型训练过程与训练数据本身一样重要。那么我们该如何保证数据中的误差不会影响到模型训练?我们又该如何保证模型足够泛化?
重抽样(resampling)就是用于保证模型效果足够好,并且能处理得了数据中的变化。要实现这一点,就要用数据集中发现的多种规律对模型进行训练。本文将讨论这些重抽样方式。
验证集方式是为训练和测试进行抽样的一种简单方式。将数据分为两部分,一部分数据用于训练模型,模型从训练数据中进行学习;另一部分数据用于测试模型。
验证集方式很简单,但是也有一些缺点:
总体来说,验证集误差往往会放大测试误差。
上面讲了验证集方式的缺点,K-Fold交叉验证方式则能够克服这些缺点。这一方式的工作原理如下:
以示例来说明:
基于所有迭代的平均误差来计算模型的整体表现。
均方误差(Mean square error),即MSE。
分类模型的衡量指标,即AUC、召回率、精确度等。
我们可以看到,K-Fold交叉验证方式弥补了验证集方式的很多缺点。通过用每个包进行一遍训练和测试,K-Fold交叉验证在避免偏差影响模型表现方面也有总体不错的效果。
不过也可以预料到,与验证集这种简单的方式相比,交叉验证的训练次数更多,耗时也显著增加。尤其是当训练数据集很大的时候,这个问题就会非常明显。
还有一种抽样方法——Bootstrap抽样法(也称自助抽样法),这是一种灵活而强大的统计方法,可用于量化与估计量(estimator)相关的不确定性。其工作原理如下:
通过一个示例来更好地理解:
在上图中包含10个观测值,Bootstrap抽样法运行如下:
重复以上三个步骤,抽取出第二个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
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号