1.模型的过拟合和欠拟合
训练误差(training error)和泛化误差(generalization error)。通俗来讲,前者指模型在训练数据集上表现出的误差,后者指模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似。
在机器学习里,我们通常假设训练数据集(训练题)和测试数据集(测试题)里的每一个样本都是从同一个概率分布中相互独立地生成的。基于该独立同分布假设,给定任意一个机器学习模型(含参数),它的训练误差的期望和泛化误差都是一样的。
一类是模型无法得到较低的训练误差,我们将这一现象称作欠拟合(underfitting);另一类是模型的训练误差远小于它在测试数据集上的误差,我们称该现象为过拟合(overfitting)。
1.1欠拟合
1)添加其它特征。组合,相关性,上下文特征,平台特征。
2)添加多项式特征,如线性模型中二次项和三次项。
1.2过拟合
1)重新清洗数据。
2)增大训练数据量。
3)减少特征维度。
4)正则化。减少某个特征的影响。
L2正则化。可以使其中一些w变得很小,接近0,削弱某个特征的影响。Ridge回归。MSE(x)+α正则项(平方和),等价于权重衰减。
L1正则化。是其中一些w直接变为0,删除这个特征的影响。LASSO回归。正则项为权值向量的1范数,绝对值和。
弹性网络,混合L2和L1.
5)Dropout。随机以概率p激活一部分神经元,丢弃一部分神经元。集成学习,bagging。
6)Early Stopping。验证错误达到最小时停止训练。
2.GBDT
G-gradient,B-Boosting,DT-decision tree
2.1gradient
除了第一轮模型拟合的目标值是真实值, 其余轮次拟合的都是负梯度,可以理解为就是残差=真值-预测值(损失函数为mse时相同)。
本质上拟合的不是真实值的残差,而是使损失函数最小化,与bp同。因此其学习得到的模型低偏差,高方差。
2.2boosting
Boosting本质上属于加法模型,前向分步算法。
f(x)=∑Mm=1βmb(x;γm)
b(x;γm)为基本分类器,γm为基本分类器的参数,βm为基本分类器的权重
2.3decision tree
基模型为CART回归决策树。分裂标准为均方误差。
CART决策树——CART算法 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/418306627))
3.Adam
ADaGrad-对频繁变化的参数小步长更新,稀疏的参数大步长更新。增加了分母,梯度平方累计和的平方根。
RMSProp-结合梯度平方的指数移动平均数来调节学习率的变化。
Adam-对梯度的一阶矩估计(梯度平均值)和二阶矩估计(梯度未中心化的方差)综合考虑,计算出更新步长。
1 | class Adam: |
可以看出,对更新的步长计算,能够从梯度均值及梯度平方两个角度进行自适应地调节,而不是直接由当前梯度决定。