机器学习-线性回归-损失函数+正则化regularization-06
1. 为什么要加上正则项
防止模型的过拟合 需要在损失函数LOSS(MSE或者交叉熵)再加上正则项
常用的惩罚项有L1正则项或者L2正则项

其实L1和L2正则的公式数学里面的意义就是范数,代表空间中向量到原点的距离

当我们把多元线性回归损失函数加上L2正则的时候,就诞生了Ridge岭回归。
当我们把多元线性回归损失函数加上L1正则的时候,就孕育出来了Lasso回归
其实L1和L2正则项惩罚项可以加到任何算法的损失函数上面去提高计算出来模型的泛化能力的

2 L1稀疏 L2平滑
L1

上式中λ是正则项系数,λ越大,说明我们算法工程师越看重模型的泛化能力,经验值是设置0.4


L1更容易相交于坐标轴上,而L2更容易相交于非坐标轴上。如果相交于坐标轴上,如图L1就使得是W2非0,W1是0,这个就体现出L1的稀疏性。如果没相交于坐标轴,那L2就使得W整体变小。通常我们为了去提高模型的泛化能力L1和L2都可以使用。
L1稀疏性的作用:W=0的维度 做特征选择
L1的稀疏性在做机器学习的时候,还有一个副产品就是可以帮忙去做特征的选择。
3. 代码1--L2正则
import numpy as np
from sklearn.linear_model import Ridge
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)
ridge_reg = Ridge(alpha=0.4, solver="sag")
ridge_reg.fit(X, y)
print(ridge_reg.predict([[1.5]]))
print(ridge_reg.intercept_)
print(ridge_reg.coef_)
4 代码2--L2正则2
np.ravel(y) 是摊平
import numpy as np
from sklearn.linear_model import SGDRegressor
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)
sgd_reg = SGDRegressor(penalty="l2", max_iter=1000)
sgd_reg.fit(X, np.ravel(y))
print(sgd_reg.predict([[1.5]]))
print(sgd_reg.intercept_)
print(sgd_reg.coef_)
5. 代码3--l1正则
import numpy as np
from sklearn.linear_model import Lasso
from sklearn.linear_model import SGDRegressor
X = 2*np.random.rand(100, 1)
y = 4 + 3*X + np.random.randn(100, 1)
lasso_reg = Lasso(alpha=0.15, max_iter=30000)
lasso_reg.fit(X, np.ravel(y))
print(lasso_reg.predict([[1.5]]))
print(lasso_reg.intercept_)
print(lasso_reg.coef_)
sgd_reg = SGDRegressor(penalty="l1", max_iter=10000)
sgd_reg.fit(X, np.ravel(y))
print(sgd_reg.predict([[1.5]]))
print(sgd_reg.intercept_)
print(sgd_reg.coef_)
6. ElasticNet
L1 L2 正则项 都使用
import numpy as np
from sklearn.linear_model import SGDRegressor
from sklearn.linear_model import ElasticNet
X = 2*np.random.rand(100, 1)
y = 4+3*X+np.random.randn(100, 1)
elastic_net = ElasticNet(alpha=0.4, l1_ratio=0.15)
elastic_net.fit(X, np.ravel(y))
print(elastic_net.predict([[1.5]]))
sgd_reg = SGDRegressor(penalty="elasticnet", max_iter=1000)
sgd_reg.fit(X, np.ravel(y))
print(sgd_reg.predict([[1.5]]))
机器学习-线性回归-损失函数+正则化regularization-06的更多相关文章
- 机器学习入门10 - 正则化:简单性(Regularization for Simplicity)
原文链接:https://developers.google.com/machine-learning/crash-course/regularization-for-simplicity 正则化指的 ...
- zzL1和L2正则化regularization
最优化方法:L1和L2正则化regularization http://blog.csdn.net/pipisorry/article/details/52108040 机器学习和深度学习常用的规则化 ...
- 7、 正则化(Regularization)
7.1 过拟合的问题 到现在为止,我们已经学习了几种不同的学习算法,包括线性回归和逻辑回归,它们能够有效地解决许多问题,但是当将它们应用到某些特定的机器学习应用时,会遇到过拟合(over-fittin ...
- [DeeplearningAI笔记]改善深层神经网络1.4_1.8深度学习实用层面_正则化Regularization与改善过拟合
觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.4 正则化(regularization) 如果你的神经网络出现了过拟合(训练集与验证集得到的结果方差较大),最先想到的方法就是正则化(re ...
- [笔记]机器学习(Machine Learning) - 03.正则化(Regularization)
欠拟合(Underfitting)与过拟合(Overfitting) 上面两张图分别是回归问题和分类问题的欠拟合和过度拟合的例子.可以看到,如果使用直线(两组图的第一张)来拟合训,并不能很好地适应我们 ...
- 机器学习入门13 - 正则化:稀疏性 (Regularization for Sparsity)
原文链接:https://developers.google.com/machine-learning/crash-course/regularization-for-sparsity/ 1- L₁正 ...
- 线性回归和正则化(Regularization)
python风控建模实战lendingClub(博主录制,包含大量回归建模脚本和和正则化解释,2K超清分辨率) https://study.163.com/course/courseMain.htm? ...
- 《机器学习_01_线性模型_线性回归_正则化(Lasso,Ridge,ElasticNet)》
一.过拟合 建模的目的是让模型学习到数据的一般性规律,但有时候可能会学过头,学到一些噪声数据的特性,虽然模型可以在训练集上取得好的表现,但在测试集上结果往往会变差,这时称模型陷入了过拟合,接下来造一些 ...
- 机器学习(五)--------正则化(Regularization)
过拟合(over-fitting) 欠拟合 正好 过拟合 怎么解决 1.丢弃一些不能帮助我们正确预测的特征.可以是手工选择保留哪些特征,或者使用一 些模型选择的算法来帮忙(例如 PCA) 2.正则化. ...
- 吴恩达-机器学习+正则化regularization
随机推荐
- 微软官方发布的C#开源、免费、实用的Windows工具箱
前言 今天分享一款由微软官方发布的C#开源.免费.实用的Windows工具箱(帮助用户调整和简化Windows系统的体验,从而提高工作效率):Microsoft PowerToys. 项目介绍 Mic ...
- 用JS实现简单的屏幕录像机
本文将介绍如何用JS实现简单的屏幕录像机. 一.录制准备 创建一个按钮 <button id="recording-toggle">Start recording< ...
- ASR项目实战-决策点
针对语音识别的产品,分别记录设计.开发过程中的决策点. 实时语音识别 对于实时语音识别来说,客户端和服务端之间实时交换语音数据和识别的结果. 客户端在启动识别时,即开始发送语音数据,期望在等待较短的时 ...
- 国产Geoscene Server 4.0编译SOE总结
背景:公司一直使用Arcgis Server 10.1.Visual Studio 2010开发SOE功能,随着国产化软件发展大趋势,SOE中的各种分析功能,需要升级到Geoscene Server环 ...
- CodeForces 1082E Increasing Frequency 计数 递推 思维
原题链接 题意 给我们一个长为n的序列A以及一个整数c,对这个序列的任何一个连续区间[l, r],我们可以给这个区间内的数统一加上一个我们任取的整数k. 要求我们只能做上述操作一次,问最终序列内最多有 ...
- 【小白学YOLO】YOLOv3网络结构细致解析
摘要:本文将详细介绍Yolov3的网络结构相关内容. Yolov3 网络结构 在博客"Yolo发展历史及网络结构"中我们已经详细的解释了Yolov1的网络结构,并简要的提到了Yol ...
- 云图说|图解云消息服务KooMessage
摘要:云消息服务(KooMessage)是提供数字化营销新入口,覆盖全行业.全场景.全终端的一站式富媒体消息服务. 本文分享自华为云社区<[开天aPaaS]图解云消息服务KooMessage&g ...
- 华为云VSS漏洞扫描服务之开源组件漏洞检测能力
摘要:华为云VSS漏洞扫描服务提供针对于Web.主机和软件包的漏洞检测能力. 近日Apache Log4j2漏洞持续发酵,已成为中国互联网2021年年底前最大的安全事件.华为云VSS漏洞扫描服务,提供 ...
- 自己搭建git服务器:linux自己Gitlab服务
github只能保存开源项目,私有项目要收费. 公司的git不想上传个人项目,比如我的博客: https://www.zhoulujun.cn/.https://www.zhoulujun.co h ...
- 直播实时数仓基于DataLeap开放平台在发布管控场景的业务实践
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 背景 业务背景 随着字节业务的高速增长,业务场景越来越丰富,业务基于数据做的决策也越来越多,对数据的时效性要求也越 ...