过拟合和欠拟合怎么判断,如何解决?
(1)判断:训练集误差和验证集误差,从而判断算法达到什么效果
- 训练误差大和验证误差都大,是欠拟合
- 训练误差和验证误差差不多,都较低,是适度拟合
- 训练误差小,验证误差大,是过拟合
(2)过拟合的解决方法
数据集角度
- 增加样本量
数据集扩增
原有数据加随机噪声
重采样
特征角度
特征选择
特征降维
模型角度
降低模型复杂度
正则化 ,正则化正是通过在损失函数上添加额外的参数稀疏性惩罚项(正则项),来限制网络的稀疏性,以此约束网络的实际容量,从而防止模型出现过拟合。L1正则化是将权值的绝对值之和加入损失函数,使得权值中0值比重增大,因此得到的权值较为稀疏。L2正则化是将权重的平方之和加入损失函数,使得权值分布更加平均,所以权值较为平滑。
Dropout舍弃,在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃,使得每次训练的网络结构多样。
训练角度
早停止,如在训练中多次迭代后发现模型性能没有显著提高就停止训练
交叉验证
(3)欠拟合的解决方法
- 增加新特征,可以考虑加入进特征组合、高次特征,来增大假设空间,添加多项式特征
- 减少正则化参数,正则化的目的是用来防止过拟合的,但是模型出现了欠拟合,则需要减少正则化参数
- 使用非线性模型,比如核SVM 、决策树、深度学习等模型
- 使用集成学习方法,如Bagging ,将多个弱学习器Bagging