欠拟合,过拟合及正则化

  

在设计Machine Learning系统时,我们很难从系统运行之前就得知系统的“复杂程度”。在线性回归中,我们可以将此问题等同为:使用几维参数,是否需要涉及更复杂的多项式,以及本文的一个新概念—Regularization Parameter。本文,将讨论Underfit,Overfit基本理论,及如何改进系统复杂度,使其能够使其在准确拟合现有训练样例的情况下,尽可能准确预测新数据。

Underfit(欠拟合)和Overfit(过拟合)

首先要确定的两个概念是Underfit(欠拟合)和Overfit(过拟合),也被称作high bias和high viarance。在表征线性回归模型的下面的三张图中,左图使用一条直线来作为模型,很明显无论如何调整起始点和斜率,该直线都不可能很好的拟合给定的五个训练样例,更不要说给出的新数据;右图使用了高阶的多项式,过于完美的拟合了训练样例,当给出新数据时,很可能会产生较大误差;而中间的模型则刚刚好,既较完美的拟合训练样例,又不过于复杂,基本上描绘清晰了在预测房屋价格时Size和Prize的关系。

对于逻辑回归,同样存在此问题,如下图:

解决欠拟合或过拟合的思路

1、增减模型的参数维度。如利用线性回归预测房屋价格的例子中,增加“卧室数量”,“停车位数量”,“花园面积”等维度以解决欠拟合,或相应的减少维度去解决过拟合。

2、增减多项式维度,比如将加入高阶多项式来更好地拟合曲线,用以解决欠拟合,或者降阶去处理过拟合。

3、调整Regularization Parameter。在不改变模型参数维度和多项式维度的情况下,单纯的调整Regularization Parameter同样可以有效改变模型对数据的拟合程度。

Regularization Parameter

在之前做逻辑回归的Octave仿真时,就用到了该参数,我们可以看到在计算Cost Function时,加入了一项theta‘*theta*lambda/(2*m),此项即为调整项。整理后的逻辑回归Cost Function和梯度下降求theta的表达式为如下形式:

线性回归的Cost Function也是类似形式:

无论是哪一种模型,lambda的取值对于能否改进模型的表现都有很重要的作用。试想如果lambda取值过大,那么cost function的取值就近似于Regularization Parameter的取值,即为一条直线了,这同样是一种Underfit,而如果lambda取值过小,则对于cost function而言没有任何作用。在下篇文章中,会详细讲解如何评估模型表现及选取lambda的值。

原文地址:https://www.cnblogs.com/liuyicai/p/10465577.html

时间: 2024-10-09 22:32:00

欠拟合,过拟合及正则化的相关文章

欠拟合和过拟合的一般解决方法

简单来说,欠拟合是指模型在训练集.验证集和测试集上均表现不佳的情况:过拟合是指模型在训练集上表现很好,到了验证和测试阶段就大不如意了,即模型的泛化能力很差.欠拟合和过拟合一直是机器学习训练中的难题,在进行模型训练的时候往往要对这二者进行权衡,使得模型不仅在训练集上表现良好,在验证集以及测试集上也要有出色的预测能力.下面对解决欠拟合和过拟合的一般方法作一总结,说明大致的处理方向,具体应用还得结合实际的任务.数据和算法模型等. 解决欠拟合(高偏差)的方法 1.模型复杂化 对同一个算法复杂化.例如回归

机器学习之欠拟合和过拟合(一)

1.欠拟合(underfitting)与过拟合(overfitting) 在机器学习中,我们的主要思想是通过对数据集的学习来生成我们的假设模型.在对数据集进行拟合的过程中,我们可能会遇到欠拟合和过拟合的问题.以身高预测的例子为例,这里给出7-18岁男生的身高标准(数据来源:7 岁-18 岁儿童青少年身高发育等级评价),如图1: 将中位数随年龄的变化绘制成散点图,如图2: 由图2中的散点可知,先开始身高随年龄几乎成一条直线关系,后来增长率逐渐下降.如果我们采用线性函数取拟合,这显然是不合理的(线性

机器学习(ML)七之模型选择、欠拟合和过拟合

训练误差和泛化误差 需要区分训练误差(training error)和泛化误差(generalization error).前者指模型在训练数据集上表现出的误差,后者指模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似.计算训练误差和泛化误差可以使用之前介绍过的损失函数,例如线性回归用到的平方损失函数和softmax回归用到的交叉熵损失函数. 直观地解释训练误差和泛化误差这两个概念.训练误差可以认为是做往年高考试题(训练题)时的错误率,泛化误差则可以通过真正参加高

动手深度学习12- 模型选择,欠拟合和过拟合

模型选择.欠拟合和过拟合 训练误差和泛化误差 模型选择 K折交叉验证 欠拟合和过拟合 模型复杂度 训练数据集大小 多项式函数拟合实验 定义.训练和测试模型 欠拟合 过拟合 小结 模型选择.欠拟合和过拟合 前几节给予Fashion_MNIST数据集的实验中,我们评价了机器学习模型在训练集合测试集上的表现.通常得到的结果都是训练数据集上更准确时,它在测试集上表现不一定更好,这就涉及到了模型的选择以及拟合程度的选择. 训练误差和泛化误差 训练误差 是指模型在训练数据集上表现出来的误差 泛化误差 是指模

机器学习之路: python线性回归 过拟合 L1与L2正则化

git:https://github.com/linyi0604/MachineLearning 正则化: 提高模型在未知数据上的泛化能力 避免参数过拟合正则化常用的方法: 在目标函数上增加对参数的惩罚项 削减某一参数对结果的影响力度 L1正则化:lasso 在线性回归的目标函数后面加上L1范数向量惩罚项. f = w * x^n + b + k * ||w||1 x为输入的样本特征 w为学习到的每个特征的参数 n为次数 b为偏置.截距 ||w||1 为 特征参数的L1范数,作为惩罚向量 k 为

机器学习过程中欠拟合和过拟合的诊断及解决方法

1.Diagnosing bias vs. variance 2.Regularization and bias/variance 3.Learning curves 4.Deciding what to try next 原文地址:https://www.cnblogs.com/CoolJayson/p/9704385.html

机器学习之拟合和过拟合问题

过拟合:当某个模型过度的学习训练数据中的细节和噪音,以至于模型在新的数据上表现很差,我们称过拟合发生了,通俗点就是:模型在训练集中测试的准确度远远高于在测试集中的准确度. 过拟合问题通常发生在变量特征过多的时候.这种情况下训练出的方程总是能很好的拟合训练数据,也就是说,我们的代价函数可能非常接近于0或者就为0,使其拟合只局限于训练样本中,无法很好预测其他新的样本. 欠拟合:在训练数据和未知数据上表现都很差 解决过拟合问题的方法主要有: 1. 减少特征数量,通过人工或者算法选择哪些特征有用保留,哪

数据趋势拟合--线性拟合

lm函数,可以用一种线程关系建立两个数据之间的发展趋势,也就是线程拟合,并用predict函数将这种发展趋势的结果用于数据的预测. fr = lm(Height~Weight,data=hw) coef(fr) 建立基于Weight来预测Height的线程拟合.由截距和斜率定义的一条直线.可视化如下图示: library("ggplot2") ggplot(heights.weights,aes(x=Height,y=Weight)) + geom_point()+geom_smoot

容量、欠拟合、过拟合和正则化

1.训练误差和泛化误差 机器学习的主要挑战是我们的模型要在未观测数据上表现良好,而不仅仅是在训练数据上表现良好.在未观测数据上表现良好称为泛化(generalization). 通常情况下,我们在训练数据上训练模型时会计算一些被称为训练误差(training error)的误差度量,目标是降低训练误差.由于模型要投入到实际使用,所以我们希望泛化误差(generalization,或者被称为测试误差)也尽可能的小.泛化误差被定义为新输入的误差期望. 如果训练数据和测试数据是同分布的,我们将这个共享

小白学习之pytorch框架(6)-模型选择(K折交叉验证)、欠拟合、过拟合(权重衰减法(=L2范数正则化)、丢弃法)、正向传播、反向传播

下面要说的基本都是<动手学深度学习>这本花书上的内容,图也采用的书上的 首先说的是训练误差(模型在训练数据集上表现出的误差)和泛化误差(模型在任意一个测试数据集样本上表现出的误差的期望) 模型选择 验证数据集(validation data set),又叫验证集(validation set),指用于模型选择的在train set和test set之外预留的一小部分数据集 若训练数据不够时,预留验证集也是一种luxury.常采用的方法为K折交叉验证.原理为:把train set分割成k个不重合