美文网首页程序员
交叉验证与算法评价

交叉验证与算法评价

作者: banana_hao | 来源:发表于2017-09-28 19:47 被阅读0次

机器学习问题中如何评价一个算法的好坏尤为重要,它决定了算法的改进方向。

有人想直接用训练集的误差来评价算法的优劣。

但利用训练集的误差并不是一个好选择;在过拟合的情况下,预测函数对训练样本吻合度很高,但对预测新的样本时准确度较低,将算法推广到其他新样本上时不适用。

如何判断算法是否过拟合?

第一种方法就是对预测函数 h(x) 画出图像,通过观察图像来看是否过拟合。

但有的时候输入特征变量可能有很多维,例如100个特征变量的函数就有100维,此时就不能通过画图来看模型是否存在过拟合的情况。

第二种方法我们把数据集分为2部分,拿70%的数据用来训练,剩下的30%作为验证集。验证集误差越小说明算法越实用,如果训练集的误差很小但验证集的误差很大就说明出现了过拟合现象。与此同时如果训练集的误差很大,预测误差也很大,则是未拟合。

根据机器学习的输出调整机器学习函数中的参数来优化算法的情况

例如防止过拟合中的lambda变量,或者需要选择预测函数的次数d (degree)。我们使用验证集来看哪个参数的效果最好,来确定预测函数。

但因为在优化模型的过程中用到了测试集中的数据,此时函数的参数有可能只针对测试集中的数据。模型中的参数根据测试集得到,又利用这个同一个测试集作为评价学习好坏的标准显然有失妥当。这些数据很可能更好的拟合训练集,而不是新样本。我们实际上希望对新样本的预测准确率高。

考虑到这种情况就不仅需要将数据集分为2个部分了,需要一个额外的部分叫做交叉验证集(cross validation 简称cv)

此时数据集有三个部分,比例大概是60%用来训练,20%交叉验证,20%用于测试集

会得到训练误差,交叉验证误差,测试误差三个J(θ)值

三个误差的作用如下

训练误差:在训练过程中对训练误差进行梯度下降,进行学习。

交叉验证误差:用于优化算法(例如选择预测函数的次数)。观察不同的模型在交叉验证集中的表现如何,并选出表现最好的。

测试误差:真正意义上检验算法的好坏,测试误差越小说明算法的表现越好。

相关文章

  • 交叉验证与算法评价

    机器学习问题中如何评价一个算法的好坏尤为重要,它决定了算法的改进方向。 有人想直接用训练集的误差来评价算法的优劣。...

  • 2020-04-01

    线性回归模型:线性回归对于特征的要求;处理长尾分布;理解线性回归模型;模型性能验证:评价函数与目标函数;交叉验证方...

  • 算法调参 - 交叉验证

     算法模型训练过程中,获取模型项目参数(比如λ、p)的最优值,这个过程叫做调参。  - 模型调参的方法:     ...

  • 深度学习知识点汇总-机器学习基础(15)

    2.15 交叉验证和k折交叉验证 交叉验证是为了提高模型的泛华能力。 方法主要有: 留一交叉验证 k折交叉验证 这...

  • 7.cross_validation_and_grid_sear

    1.模型的评估与参数调优 1.1交叉验证/Cross - validation 1.1.1 K折交叉验证 1.1....

  • 机器学习笔记(一)——交叉验证

    交叉验证问题 什么是交叉验证     交叉验证是在机器学习建立模型和验证模型参数时常用的办法。交叉验证,顾名思义,...

  • 复习 - 模型测试

    一、模型测试的API总结 1、分类算法评估方式 2、回归算法评估方式 二、分类模型测试 交叉验证:(Cross V...

  • 2020-09-03--多项式回归02

    验证数据集(Validation )与交叉验证(Cross Validation) 模型正则化-Regulariz...

  • 算法工程师面试

    1、编程语言 2、基本算法 3、传统的机器学习算法 4、常见机器学习问题 过拟合问题、交叉验证问题、模型融合、...

  • 嵌套交叉验证(Nested cross-validation)

    传统交叉验证和嵌套交叉验证的区别 在开始分享嵌套交叉验证前,首先以K-Fold为例,区分K-Fold交叉验证和嵌套...

网友评论

    本文标题:交叉验证与算法评价

    本文链接:https://www.haomeiwen.com/subject/idtvextx.html