惩罚线性回归算法解析与应用
1. 交叉验证与模型训练顺序
在实际操作中,通常先进行交叉验证,再在整个数据集上训练算法。交叉验证的目的是确定能够达到的均方误差(MSE)等性能水平,以及了解数据集所能支持的模型复杂程度。例如,在10折交叉验证中,实际上训练了10个模型,但无法直接从这10个模型中做出选择。最佳实践是在完整数据集上进行训练,并使用交叉验证结果来确定要部署的模型。
以某个示例来说,交叉验证在训练过程的第311步给出了0.59的最小MSE,这表明应部署在完整数据集上训练得到的第311个模型。
2. 使用Glmnet算法
Glmnet算法由斯坦福大学的Jerome Friedman教授及其同事开发,用于解决ElasticNet问题。ElasticNet问题结合了Lasso惩罚(绝对值之和)和岭惩罚(平方和)的广义惩罚函数。它有两个重要参数:
- λ :决定系数惩罚相对于拟合误差的惩罚程度。
- α :决定惩罚更接近岭回归(α = 0)还是Lasso回归(α = 1)。
Glmnet算法与LARS算法类似,都能生成完整的系数曲线。不同的是,LARS算法通过将系数量子累积到β中来推动曲线前进,而Glmnet算法则通过不断减小λ值来推动系数曲线前进。其关键迭代方程如下:
[
\tilde{\beta} j \leftarrow \frac{S\left(\tilde{\beta}_j+\frac{1}{1+\lambda(1 - \alpha)}\sum {i = 1}^{m}x_{ij}r_i,\la
超级会员免费看
订阅专栏 解锁全文
3776

被折叠的 条评论
为什么被折叠?



