正则
正则化的目的是限制参数过多或者过大,避免模型更加复杂,容易发生过拟合。因此需要在目标函数添加一些额外的惩罚项,即正则项。
添加惩罚项可看成是对损失函数中的某些参数做一些限制,根据惩罚项的不同可分为:L0范数惩罚、L1范数惩罚(参数稀疏性惩罚)、L2范数惩罚(权重衰减惩罚)。
L0范数惩罚:将其高阶部分的权重 w 限制为 0,这样,就相当于从高阶的形式转换为低阶。为了达到这一目的,最直观的方法就是限制 w 的个数
L1范数:权值向量w中各个元素的绝对值之和,L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择。
L2范数:权值向量w中各个元素的平方和然后再求平方根,L2正则化可以防止模型过拟合;一定程度上,L1也可以防止过拟合。
L0范数惩罚:将其高阶部分的权重 w 限制为 0,这样,就相当于从高阶的形式转换为低阶。为了达到这一目的,最直观的方法就是限制 w 的个数
L1范数:权值向量w中各个元素的绝对值之和,L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择。
L2范数:权值向量w中各个元素的平方和然后再求平方根,L2正则化可以防止模型过拟合;一定程度上,L1也可以防止过拟合。
(1)L1正则化:当 W>0时,更新权重使得其减小,当 W<0时,更新权重使得其增大. 可能使得权重为0.--选择特征
(2)L2正则化:参数减小到很小的范围,但不为0。,但缩放操作使得其仍保持同号.

(1)MAE对于异常值比MSE更稳定,MSE对误差取了平方,如果数据存在异常值,误差会被放大。
(2)MAE更新的梯度始终相同,即使对于很小的损失值,梯度也很大。
MSE损失的梯度随损失增大而增大,而损失趋于0时则会减小。这使得在训练结束时,使用MSE模型的结果会更精确。
1. 随机森林的正则化
样本有放回随机采样,特征值采样(每个结点都采一次样,而不是一颗树采一次);
剪枝,控制tree深度,控制gain或者gini变化大小
以及控制结点样本数等情况,随机森林中没有剪枝操作,但是有max_depth,min_size等进行控制
2. GBDT的正则化
和Adaboost一样,我们也需要对GBDT进行正则化,防止过拟合。GBDT的正则化主要有三种方式:
第一种是和Adaboost类似的正则化项,即步长(learning rate),防止过拟合就要稍微加大步长:f_k(x)=f_{k−1}(x)+νh_k(x)
第二种正则化的方式是通过子采样比例(subsample)。取值为(0,1]。随机森林使用的是放回抽样,而这里是不放回抽样。比如有100个样本,subsample=0.8,第一棵树训练时随机从100个样本中抽取80%,有80个样本训练模型;第二棵树再在100个样本再随机采样80%数据,也就是80个样本,训练模型;以此类推。
第三种是对于弱学习器即CART回归树进行正则化剪枝。
3. XGBOOST的正则化
xgboost在代价函数里加入了正则化项,用于控制模型的复杂度。正则化项里包含了:
树的叶子节点个数
每个叶子节点上输出的score的L2模的平方和。
posted on 2020-09-21 14:10 happygril3 阅读(314) 评论(0) 收藏 举报
浙公网安备 33010602011771号