机器学习 -- 多项式回归(Ⅸ L1,L2正则和弹性网)

本文对比了Ridge和LASSO回归,重点探讨了L1和L2正则化的概念,包括明可夫斯基距离、范数以及它们在模型正则化中的应用。此外,还介绍了弹性网Elastic Net,它是岭回归和LASSO的结合,适用于特征数量较多的情况,以平衡模型复杂度和预测精度。
摘要由CSDN通过智能技术生成

比较Ridge和LASSO

一. L1,L2正则

1. 明可夫斯基距离:

2. L_p 范数:||x||_p = (\sum ^n_{i=1}|x_i|^p)^{\frac{1}{p}}

3. L1正则项和L2正则项:

模型正则化中,通常不会使用p>2的正则项。

好的,针对您的问题,我可以给出以下的Python代码实现: L1正则调优: ```python from sklearn.linear_model import Lasso from sklearn.preprocessing import PolynomialFeatures from sklearn.pipeline import make_pipeline from sklearn.model_selection import GridSearchCV import numpy as np # 构造数据 x = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]) y = np.array([0.1, 0.9, 2.8, 6.5, 12.4, 20.5, 30.8, 43.3, 58.0, 74.9]) # 构造管道 model = make_pipeline(PolynomialFeatures(degree=9), Lasso()) # 构造参数选项 param_grid = {'lasso__alpha': np.logspace(-5, 1, 50)} # 执行交叉验证调优 grid = GridSearchCV(model, param_grid, cv=5, iid=False) grid.fit(x[:, np.newaxis], y) # 输出结果 print("最优参数:", grid.best_params_) print("最优得分:", grid.best_score_) ``` L2正则调优: ```python from sklearn.linear_model import Ridge from sklearn.preprocessing import PolynomialFeatures from sklearn.pipeline import make_pipeline from sklearn.model_selection import GridSearchCV import numpy as np # 构造数据 x = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]) y = np.array([0.1, 0.9, 2.8, 6.5, 12.4, 20.5, 30.8, 43.3, 58.0, 74.9]) # 构造管道 model = make_pipeline(PolynomialFeatures(degree=9), Ridge()) # 构造参数选项 param_grid = {'ridge__alpha': np.logspace(-5, 1, 50)} # 执行交叉验证调优 grid = GridSearchCV(model, param_grid, cv=5, iid=False) grid.fit(x[:, np.newaxis], y) # 输出结果 print("最优参数:", grid.best_params_) print("最优得分:", grid.best_score_) ``` 以上就是 L1正则调优 和 L2正则调优 的Python代码实现,希望能够帮助到您。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值