美文网首页
机器学习之拟合、过拟合

机器学习之拟合、过拟合

作者: 一杯海风_3163 | 来源:发表于2020-06-16 17:16 被阅读0次

    机器学习的基本问题是利用模型对数据进行拟合,学习的目的并非是对有限的训练集进行正确的预测,而是对未曾出现在训练集中的样本能够进行正确预测。

    模型对训练数据的预测误差称为经验误差,对测试数据的预测误差称为泛化误差。模型对训练集之外的数据进行预测的能力称为模型的泛化能力,最求这种泛化能力是机器学习的目标。

    过拟合和欠拟合是导致模型泛化能力不高的两种常见原因,都是模型学习能力与数据复杂度之间失配的结果。

    ”欠拟合“常在模型学习能力较弱,而数据复杂度较高的情况下出现。由于模型的学习能力不足,无法学习到数据集中的“一般规律”,因而导致模型的泛化能力较弱。

    与之相反,”过拟合“常在模型学习能力较强,而数据复杂度较弱的情况下出现。此时由于模型的学习能力太强,以至于将训练集中单个样本自身的特点都能捕捉到,并将其认为是“一般规律”,这种情况同样会导致模型的泛化能力下降。

    过拟合与欠拟合的区别在于,欠拟合在训练集和测试集上的性能都比较差,而过拟合的模型往往能够较好的学习训练集数据的性质,而在测试集上的性能较差。在神经网络训练的过程中,欠拟合主要表现为输出结果的高偏差,而过拟合主要表现为输出结果的高方差。

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

    解决过拟合问题的方法主要有:
    1. 减少特征数量,通过人工或者算法选择哪些特征有用保留,哪些特征没用删除,但会丢失信息。
    2. 正则化,保留特征,但减少特征对应参数的大小,让每个特征都对预测产生一点影响。
    解决欠拟合问题的方法主要有:

    1.减少正则化:正则化可以避免过拟合的发生,因此在出现过拟合的情况时,可以通过减少正则化的损失函数来防止过拟合的发生。

    2.添加数据量和特征维度:由于模型可用于学习的数据规模可能不足够大,导致模型训练的不够充分,模型复杂度不够。还有如果统计的数据信息中,各个维度数量收集的不够或者维度信息中大部分不具有区分样本的特质。面对这种问题主要方法是收集更多的特质维度,或者增加采样信息等方式来扩充数据。

    3.增加算法模型的复杂度:例如很多训练样本不是线性可分的,如果单用线性方法来拟合可能无法达到一个理想的拟合方法,这时候引入非线性方法,如核函数等方法或者更复杂的深度学习等方法来增加模型的复杂度

    偏差与方差

    偏差又称表现误差,是指个别测定值与测定的平均值之差,它可以用来衡量测定结果的精度高低。在统计学中,偏差可以用于两个不同的改良,即有偏采样和有偏估计。一个有偏采样是对总样本集非平等采样,而一个有偏估计则是指高估或低估要估计的量。方差在概率论和统计方差衡量随机变量或一组数据时离散程度的度量。概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。

    在机器学习中,偏差描述的是根据样本拟合出的模型输出结果与真实结果的差距,损失函数就是依据模型偏差的大小进行反向传播的。降低偏差,就需要复杂化模型,增加模型参数,但容易造成过拟合。方差描述的是样本上训练出的模型在测试集上的表现,降低方差,继续要简化模型,减少模型的参数,但容易造成欠拟合。根本原因是,我们总是希望用有限的训练样本去估计无限的真实数据。假定我们可以获得所有可能的数据集合,并在这个数据集上将损失函数最小化,则这样的模型称之为“真实模型”。但实际应用中,并不能获得且训练所有可能的数据,所以真实模型一定存在,但无法获得。

    解决方法

    过拟合和欠拟合是所有机器学习算法都要考虑的问题,其中欠拟合的情况比较容易克服, 常见解决方法有:

    增加新特征,可以考虑加入进特征组合、高次特征,来增大假设空间
    添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强
    减少正则化参数,正则化的目的是用来防止过拟合的,但是模型出现了欠拟合,则需要减少正则化参数
    使用非线性模型,比如核SVM 、决策树、深度学习等模型
    调整模型的容量(capacity),通俗地,模型的容量是指其拟合各种函数的能力
    容量低的模型可能很难拟合训练集;使用集成学习方法,如Bagging ,将多个弱学习器Bagging

    泛化能力

    泛化能力是指机器学习算法对新样本的适应能力。学习的目的是学到隐含在数据背后的规律,对具有同一规律的训练集之外的数据,我们希望经过训练的模型能够给出合适的输出,这种能力称为泛化能力。我们期望经过训练集训练的模型具有较强的泛化能力,也就是对输入的测试数据能够给出合理的响应。

    原文链接:https://blog.csdn.net/qq_39514033/article/details/88794503

    相关文章

      网友评论

          本文标题:机器学习之拟合、过拟合

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