3.1. Cross-validation: evaluating estimator performance
一、简介
这一段我反反复复修改了很多次,最后,我发现,我很难靠自己的语言细致的阐述这部分内容。所以,我先把自己的理解呈现出来,最后再给出对sklearn文档的翻译。
1.1 最本质的理解
我们知道,统计(观测)存在误差。为了尽可能的消除误差,我们会选择多次观测,并对统计值取平均。(这个应该很好理解)但是在机器学习中,我们发现,如果在同一个数据集上不断测试,会造成过拟合(并且,反复测试同一组数据会使得测试结果天然的倾向于更乐观,从而造成假象),所以,我们采用交叉验证。
即,将数据分成几部分,每次,选取一部分作为训练集,另一部分作为测试集,最后在对结果“取平均”,从而避免以上提到的问题。
1.2 最常见的应用:调参
无论是机器学习还是深度学习,绝大多数的模型使用时都会涉及的参数的选择。
俗话说的好,实践是 检验真理的唯一标准。所以,为了验证什么样的参数最符合要求,我们需要新的数据的集合来对模型进行测试。
但是,这所谓的“数据的集合”不能是最后的测试集,因为那样会影响到最后测试的准确性和降低模型的性能。
所以,在将最初数据集划分为“训练集”和“测试集”之后,我们通常会在训练集内再次对数据进行划分(分出用于训练模型的和测试参数的)。而面对这个问题,我们最常采用交叉验证的方式。
所以说,交叉验证在调参上的应用及其广泛。
1.3 sklearn文档(我有给出自己的注释)
学习预测函数的参数并在同一数据上进行测试是一个方法错误:一个模型,只需重复它刚刚看到的样品的标签,就会有一个完美的分数,但无法预测任何有用的尚未看到的数据。
这种情况被称为过度拟合