ElasticNet Regressor(弹性网络回归) --- 论文实战

一、前言

       在《机器学习论文复现实战---linear regression》中通过Pearson 相关性分析,去除了2个高相关性特征 "PN" 和 "AN" ,数据维度变为890*25(数据集地址

       这里我们不做如何前期处理,直接就将数据放入 ElasticNet 模型中进行训练了。

二、模型训练过程

 2.1  导入Python库

'''====================导入Python库===
### Elastic Net 正则化概述 Elastic Net 是一种线性回归模型中的正则化技术,它结合了 Lasso 和 Ridge 回归的优点。通过引入两个惩罚项——L1 范数和 L2 范数,Elastic Net 可以有效地处理高维数据集并防止过拟合。 #### 工作原理 Elastic Net 的目标函数可以表示为: \[ J(\beta) = \text{RSS} + \lambda_1 \sum_{j=1}^{p} |\beta_j| + \lambda_2 \sum_{j=1}^{p} \beta_j^2 \] 其中 RSS 表示残差平方和,$\lambda_1$ 控制 L1 惩罚强度,而 $\lambda_2$ 控制 L2 惩罚强度。参数 `l1_ratio` 定义了两者之间的混合比例 $r=\frac{\lambda_1}{\lambda_1+\lambda_2}$[^1]。 当 `l1_ratio`=0 时,Elastic Net 等价于 Ridge 回归;当 `l1_ratio`=1 时,则退化成 Lasso 回归。因此,调整这个比率可以在特征选择(由 L1 实现)与系数收缩(由 L2 实现)之间找到最佳平衡点。 #### Python实现案例 下面是一个简单的例子展示如何利用 Scikit-Learn 库来应用 Elastic Net: ```python from sklearn.linear_model import ElasticNet import numpy as np # 假设 X 和 y 是训练数据 X = np.array([[0, 0], [1, 1], [2, 2]]) y = np.dot(X, np.array([1, 2])) + 3 elastic_net = ElasticNet(alpha=0.1, l1_ratio=0.5, random_state=42) elastic_net.fit(X, y) print("Coefficients:", elastic_net.coef_) print("Intercept:", elastic_net.intercept_) ``` 这段代码创建了一个具有特定超参数设置的 Elastic Net 模型实例,并将其应用于给定的数据集上进行拟合操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码贾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值