江西省赣州市南康区,大连百度搜索排名优化,石碣东莞网站建设,网站备案 在哪里机器学习模型的训练过程中#xff0c;可能会出现3种情况#xff1a;模型欠拟合、模型正常拟合与模型过拟合。其中模型欠拟合与模型过拟合都是不好的情况。下面将会从不同的角度介绍如何判断模型属于哪种拟合情况。
#xff08;1#xff09;欠拟合与过拟合表现方式
欠拟合…机器学习模型的训练过程中可能会出现3种情况模型欠拟合、模型正常拟合与模型过拟合。其中模型欠拟合与模型过拟合都是不好的情况。下面将会从不同的角度介绍如何判断模型属于哪种拟合情况。
1欠拟合与过拟合表现方式
欠拟合欠拟合是指不能很好的从训练数据中学习到有用的数据模式从而针对训练数据和待预测的数据均不能获得很好的预测效果。如果使用的训练样本过少较容易获得欠拟合的训练模型。
正常拟合模型的正常拟合是指训练得到的模型可以从训练数据集上学习得到了泛化能力强、预测误差小的模型同时该模型还可以针对待测试的数据进行良好的预测获得令人满意的预测效果。
过拟合过拟合是指过于精确地匹配了特定数据集导致获得的模型不能良好地拟合其他数据或预测未来的观察结果的现象。模型如果过拟合会导致模型的偏差很小但是方差会很大。
上面的介绍可能不能直观的快速了解数据的三种拟合情况下面分别介绍针对分类问题和回归问题不同任务下的拟合效果获得的模型对数据训练后的表示形式。针对二分类问题可以使用分界面表示所获得的模型与训练数据的表现形式图1表示三种情况下的数据分界面。 图1 分类问题的三种数据拟合情况
从图1可以发现欠拟合的数据模型较为简单因此获得的预测误差也会较大而过拟合的模型则正相反其分界面完美的将训练数据全部分类正确获得的模型过于复杂虽然训练数据能够百分百预测正确但是当预测新的测试数据时会有较高的错误率。而数据正常拟合的模型对数据的拟合效果则是介于欠拟合和过拟合之间训练获得不那么复杂的模型保证在测试数据集上的泛化能力。三种情况在训练数据集上的预测误差的表现形式为欠拟合正常拟合过拟合而在测试集上的预测误差形式为欠拟合过拟合正常拟合。
针对回归问题在对连续变量进行预测时三种数据拟合情况可以使用图2来表示。三幅图分别表示对一组连续变量进行数据拟合时可能出现的欠拟合、正常拟合与过拟合的三种情形。 图2 回归问题的三种数据拟合情况
很多时候面对高维的数据很难可视化出分类模型的分界面与回归模型的预测效果那么如何判断模型的拟合情况呢针对这种情况通常可以使用两种判断方案。第一种是判断在训练集和测试集上的预测误差的差异大小正常拟合的模型通常在训练集和测试集上的预测误差相差不大而且预测的效果均较好欠拟合模型在训练集和测试集上的预测效果均较差过拟合模型则会在训练数据集上获得很小的预测误差但是在测试集上会获得较大的预测误差。另一种方式是可视化出模型在的训练过程中三种不同的数据拟合情况在训练数据和测试数据或验证数据上的损失函数变化情况如图3所示。 图3三种数据拟合情况的损失函数变化情况
2避免欠拟合与过拟合的方法
实践过程中如果发现训练的模型对数据进行了欠拟合或者过拟合通常要对模型进行调整解决这些问题是一个复杂综合的过程而且很多时候要进行多项的调整下面介绍一些可以采用的相关解决方法。
增加数据量如果训练数据较少通常可能会导致数据的欠拟合也会发生在训练集上的过拟合问题。因此更多的训练样本通常会使模型更加的稳定所以训练样本的增加不仅可以得到更有效的训练结果也能在一定程度上调整模型的拟合效果增强其泛化能力。但是如果训练样本有限也可以利用数据增强技术对现有的数据集进行扩充。
合理的数据切分针对现有的数据集在训练模型时可以将数据集进行切分为训练集、验证集和测试集或者使用交叉验证的方法。在对数据进行切分后可以使用训练集来训练模型并且通过验证集来监督模型的学习过程也可以在网络过拟合之前提前终止模型的训练。在模型训练结束后可以利用测试集来测试训练结果的泛化能力。
当然在保证数据尽可能的来自同一分布的情况下如何有效的对数据集进行切分也很重要传统的数据切分方法通常是按照60:20:20的比例拆分但是针对数据量的不同数据切分的比例也不尽相同尤其在大数据时代如果数据集有几百万甚至上亿级条目时这种60:20:20比例的划分已经不再合适更好的方式是将数据集的98%用于训练保证尽可能多的样本接受训练使用1%的样本用于验证集这1%的数据已经有足够多的样本来监督模型是否过拟合最后使用1%的样本测试网络的泛化能力。所以针对数据量的大小、网络参数的数量数据的切分比例可以根据实际的需要来确定。
正则化方法正则化方式是解决模型过拟合问题的一种手段其通常会在损失函数上添加对训练参数的惩罚范数通过添加的范数惩罚对需要训练的参数进行约束防止模型过拟合。常用的正则化参数有L1和L2范数范数惩罚项的目的是将参数的绝对值最小化范数惩罚项的目的是将参数的平方和最小化。使用正则化防止过拟合非常有效如在经典的线性回归模型中使用L1范数正则化的模型叫做Lasso回归使用L2范数正则化的模型叫做Ridge回归。
参考书籍《Python机器学习算法与实战》——孙玉林余本国 著