机器学习第6天:线性回归模型正则化

文章目录

机器学习专栏 

正则化介绍

岭回归

岭回归成本函数

核心代码

示例

Lasso回归

Lasso回归损失函数

核心代码

弹性网络

弹性网络成本函数

核心代码

结语


机器学习专栏 

机器学习_Nowl的博客-CSDN博客

正则化介绍

作用:正则化是为了防止模型过拟合

原理:在损失函数中加入一个正则项,使模型减少损失的同时还要降低模型复杂度

它往往给模型约束,来使它无法完全迎合训练集数据

在本文中我们将看到三种正则化方法

三种方法思想差不多,只是约束模型复杂度的方法不同


岭回归

岭回归成本函数

J(w)=MSE(w)+a*\frac{1}{2}*\sum_{i=1}^{n}w^{2}

我们先前已经知道MSE损失函数,这个公式后面加的项就叫作正则项,岭回归的正则项是l2范数的平方的一半

a*\frac{1}{2}*\sum_{i=1}^{n}w^{2}

此时模型训练时就不能只考虑MSE函数的损失了,还必须减小w参数的大小(降低模型复杂度,减少过拟合的可能性)

核心代码

以下是sklearn库使用岭回归的基本代码

from sklearn.preprocessing import PolynomialFeatures


model = Ridge(alpha=1)
model.fit(x, y)

alpha就是公式中的a参数,越小则代表正则程度越小  

我们来看几种不同alpha的情况

 该图参数从左到右逐渐增大(岭回归越强),可以看到模型的复杂度也逐渐降低了

示例

我们已经清楚一点,正则化能让模型变得更简单,考虑以下情景

我们有这样一组数据

可以看到,开始的点排列的还是很有规律的,但是右上角的点显得非常突兀,那么如果进行普通的预测 

可能得到以下结果

而使用岭回归可能得到更好的结果,如下

再一次体现了正则化的作用(防止模型过拟合而降低泛化能力) 

我们也可以看一个代码示例

分别用线性模型和加入正则的模型拟合数据

from sklearn.linear_model import Ridge
from sklearn.linear_model import LinearRegression
import numpy as np

x = np.random.rand(100, 1)
y = 4 * x + np.random.rand(100, 1)


model1 = LinearRegression()
model1.fit(x, y)
print(model1.coef_)

model = Ridge(alpha=1)
model.fit(x, y)
print(model.coef_)

看看它们拟合的参数 

可以看到岭回归拟合的模型更简单(在这个实例中当然效果不好,这里只是为了演示它的作用,在实际情况中我们应该用指标测试模型是否过拟合了,再尝试使用岭回归)


Lasso回归

Lasso回归损失函数

Lasso回归公式和岭回归类似,只不过它的正则项是l1范数,它与岭回归的一个区别是它倾向于完全消除掉最不重要的特征

J(w)=MSE(w)+a*\sum_{i=1}^{n}\left | w \right |

则正则项为

a*\sum_{i=1}^{n}\left | w \right |

效果与岭回归相同

核心代码

以下是sklearn库使用Lasso回归的基本代码

from sklearn.linear_model import Lasso

model = Lasso(alpha=1)
model.fit(x, y)

alpha就是公式中的a参数,越小则代表正则程度越小 


弹性网络

弹性网络成本函数

弹性网络是岭回归于Lasso回归的中间地带,你可以控制r来控制其他两种正则化方法的混合程度,r为0时,弹性网络就是岭回归,为1时,弹性网络就是Lasso回归

J(w)=MSE(w)+ra\sum_{i=1}^{n}\left | w \right |+\frac{1-r}{2}a\sum_{i=1}^{n}w^{2}

正则项为

ra\sum_{i=1}^{n}\left | w \right |+\frac{1-r}{2}a\sum_{i=1}^{n}w^{2}

核心代码

以下是sklearn库使用弹性网络的基本代码

from sklearn.linear_model import ElasticNet

model = ElasticNet(alpha=0.1, l1_radio=0.5)
model.fit(x, y)

alpha对应公式中的a参数,l1_radio对应公式中的r 

结语

在具体任务中,我们应该用学习曲线或其他性能判断模型是否过拟合后再考虑使用正则化,同时根据不同特征选取不同的正则化方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/159638.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

es使用客户端,“grunt” 不是内部或外部命令,多种解决方法

”grunt“不是内部或外部命令,也不是可运行的程序 或批处理文件。 4、问题排查 查看node的安装根目录 npm root -g 在运行grunt -version还是不行 网上找了很多,给出正确解决方案的没几个,所以自己摸索,最后确定了加环境变量的解…

Python实验项目7 :tkinter GUI编程

(1)利用tkinter 制作界面,效果图如下: from tkinter import * # winTk() for i in range(1,20):Button(width5,height10,bg"black" if i%20 else"white").pack(side"left") win.geometry("8…

Android 屏幕适配

目录 一、为什么要适配 二、几个重要的概念 2.1 屏幕尺寸 2.2 屏幕分辨率 2.3 屏幕像素密度 2.4 屏幕尺寸、分辨率、像素密度三者关系 三、常用单位 3.1 密度无关像素(dp) 3.2 独立比例像素(sp) 3.3 dp与px的转换 四、解决方案 4.1 今日头条…

Docker之DockerFile解析

DockerFile解析 是什么 Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。 概述 官网 https://docs.docker.com/engine/reference/builder/ 构建三步骤 编写Dockerfile文件 docker build命令构建镜像 docker run依镜像运…

李沐的学习Pytorch环境配置

https://github.com/Miraclelucy/dive_into_deep_learning/tree/main 上面是别人的笔记 可以学一下。 如果没有梯子,按照清华源配置 清华源conda配置 最好下载 1.11版本torch那一套 然后装d2l版本可以装 pip install d2l0.17.6然后可以用 http://localhost:8889/…

DolphinScheduler V3.1.8 海豚调度器【概述、安装、功能介绍、项目运用、邮箱预警设置】轻松拿捏!

概述 Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。 Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应…

Diffusion Models CLIP

Introduction to Diffusion Models 生成模型 主要指的是无监督学习中的生成模型,在无监督学习中的主要任务是让机器学习给定的样本,然后生成一些新的东西出来。比如:给机器看一些图片,能够生成一些新的图片出来,给机器…

.locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

导言: 随着科技的不断发展,网络空间的威胁也日益增加。其中,.locked勒索病毒作为一种恶意软件,给用户的数据安全带来了极大的威胁。本文91数据恢复将介绍.locked勒索病毒的特点,以及如何有效恢复被它加密的数据文件&a…

Java入门篇 之 多态

本篇碎碎念:个人认为,一切都不是不学习的理由,在如今这个"内卷"的时代,唯有认真学习,掌握知识,才能把握命运 今日份励志文案:你必须拼尽全力,才有资格说运气不好 加油吧,少…

Elasticsearch基础条件查询

条件查询 query:查询 match:匹配 match_all:匹配所有 #第一种 GET /shopping/_search?q名字:张三#第二种 GET /shopping/_search {"query": {"match": {"名字": "张三"}} }#全量查询 match_all G…

MIB 6.1810实验Xv6 and Unix utilities(5)find

难度:moderate Write a simple version of the UNIX find program for xv6: find all the files in a directory tree with a specific name. Your solution should be in the file user/find.c. 题目要求:实现find ,即在某个路径中,找出某…

Seaborn 回归(Regression)及矩阵(Matrix)绘图

Seaborn中的回归包括回归拟合曲线图以及回归误差图。Matrix图主要是热度图。 1. 回归及矩阵绘图API概述 seaborn中“回归”绘图函数共3个: lmplot(回归统计绘图):figure级regplot函数,绘图同regplot完全相同。(lm指lin…

动态sql行转列

动态sql行转列 介绍案例转之前转之后 注意 介绍 本篇介绍 根据 时间格式化后行转列的案例讲解动态sql案例的初学 案例 --设置一个动态变量 赋予初始值 SET sql NULL;--获取规范化后需要用到的行头列表 SELECT GROUP_CONCAT(CONCAT(--注意1MAX(IF(date ", date, "…

Prometheus+Grafana环境搭建(window)

PrometheusGrafana环境搭建 1:配置Prometheus 1.1: 下载Prometheus安装包 官方下载地址 找到对应的win版本进行下载并解压 1.2 下载Window数据采集 官方下载地址 下载以管理员运行,安装成功后在服务里会出现一个"windows_exporter"采集…

数据库Communications link failure

1.出现错误查询 Error querying , Communications link failure #Error querying database.Cause:com.mysql.cj.jdbc.exceptions.CommunicationsException:Communications link failure The last packet successfully received from the server was 10,016 milliseconds ago. …

LangChain 实现给动物取名字

mkdir langchain-llm-appcd langchain-llm-app # 用vscode 打开当前目录 code .在macOS上通过终端打开Visual Studio Code(VS Code),您可以按照以下步骤操作: 安装VS Code:首先,确保您已经在Mac上安装了Vis…

vulnhub靶场—matrix-breakout-2-morpheus靶机

一,实验环境 靶机ip:192.168.150.131攻击机ip:192.168.150.130 二,信息收集 arp-scan -l 扫描网段,寻找靶机ip 使用工具nmap进行端口扫描 nmap -A -T4 -p- 192.168.150.131 通过信息收集发现了靶机有80和81这两个…

23111709[含文档+PPT+源码等]计算机毕业设计基于Spring Boot智能无人仓库管理-进销存储

文章目录 **软件开发环境及开发工具:****功能介绍:****论文截图:****数据库:****实现:****代码片段:** 编程技术交流、源码分享、模板分享、网课教程 🐧裙:776871563 软件开发环境及…

主播职业发展指南

一、明确职业目标 1.确定长期目标:主播是一项充满挑战和机遇的工作,需要明确自己的长期职业目标。长期目标可以是成为一名知名的直播平台主播、成为一名电视节目主持人、成为一名网络红人等。2.制定短期目标:为了实现长期目标,需要制定短期目标。短期目…

基于协作mimo系统的RM编译码误码率matlab仿真,对比硬判决译码和软判决译码

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..................................................................... while(Err < TL…