线性回归正则化 regularized linear regression

article/2025/10/1 17:50:19

线性回归正则化regularized linear regression


在前几篇博客中介绍了一元线性回归http://blog.csdn.net/u012328159/article/details/50994095和多元线性回归http://blog.csdn.net/u012328159/article/details/51029695等线性回归的知识,具体请参见本人其他博客。但是线性回归存在一个很重要的问题就是过拟合(overfitting)问题,所谓过拟合简单直白的说就是模型的训练误差极小,而检验误差很大。一个好的学习器不仅能够很好的拟合训练数据,而且能够对未知样本有很强的泛化能力,即低泛化误差。先来看看线性回归中的过拟合现象(自己不想画图了,直接盗用Andrew Ng大神的图吧):

图中左边的图表示的线性回归模型存在欠拟合现象(underfitting),欠拟合顾名思义就是对训练数据的拟合程度不够好,训练误差大。中间的线性回归模型是个拟合程度很好的模型。右边图表示的就是过拟合现象,能够看出它对训练数据拟合的非常好,但是预测能力很差,泛化能力很差。

因此,处理过拟合问题常用的方法有:
  • 减少特征数量  主要方法有:人工的挑选重要的特征,去除不重要的特征。采用特征选择算法(在后面的博客中会介绍,在这不细说了)  但是这个方法在去除特征的同时,也去除了这部分特征所提供的信息。
  • 正则化(regularization) 保留所有特征,但是减少参数的值。
线性回归正则化通过缩小参数的值,可以使多项式模型更加简单,直接举个例子吧(图片来源:ng machine learning课)



上图左边的二次曲线是我们希望的,右边的更高次的线性回归模型显然是过拟合的,但是如果在它的代价函数后面添加两项 ,如果想让最小,那么的值几乎要接近0,因此,右边的多项式几乎等价于左边的,又能够得到一个正确的线性回归模型。
先来说说为什么增加正则项就能够有效避免过拟合(或者说是引入正则项的动机): 假如对于一个多项式函数,

我们来看看随着多项式阶数的增加系数M是如何剧增的,见下表(来自PRML):

看完这个表应该一目了然,正则项为什么能够惩罚系数了。
因此,正则化线性回归(regularized linear regression)的代价函数(cost function)为:

其中为正则项,为正则系数。如果设置的非常大,会使 ,将会产生欠拟合问题。因此应该选择合适的正则系数
我们的目标是即求得使最小的参数。因此对正则化线性回归使用梯度下降(gradient descent),为:

之所以把单独写出来,是因为我们正则化的时候,不对 进行惩罚。如果上面的的公式中的同类项合并下,则为:

因为  始终为正,因此  一般来说其值比1小一点点,因此相当于把缩小了一点点。

对于线性回归来说,除了通过梯度下降来求解参数,还可以通过正规方程(normal equation)用矩阵运算来直接求解参数。对于样本X和label Y而言,可以如下表达:

那么正则化线性回归的正规方程为:



其中,上式中的对角矩阵维度是(n+1)*(n+1)。在以前的博客讲正规方程的时候讲过当 时, 不存在,幸运的是正规化帮助我们解决了这个问题,即在正则化线性回归中,如果 ,则  

是存在的,也即里面的矩阵是可逆的。

http://chatgpt.dhexx.cn/article/A5qcCjny.shtml

相关文章

# Logistics Regression

目录 一 logistics regression 1 一点介绍 2 评价 3 一点应用 4 代码流程 5 上代码!!! 一 logistics regression 1 一点介绍 逻辑回归是一个分类模型,其突出特点即 模型简单、可解释性强 2 评价 优点 实现简单&#xff0…

Python-Regression

本文归纳整理了线性回归(LinearRegression)、岭回归(Ridge)、Lasso回归(Lasso)、弹性网(ElasticNet)、K近邻、SVM等10多种机器学习模块sklearn中回归算法调用及实现过程,…

大数据挖掘永恒的定律?符号回归(Symbolic Regressor)

大数据挖掘永恒的定律?符号回归(Symbolic Regressor) 符号回归简介 符号回归是一种机器学习技术,旨在识别一个潜在的数学表达式。它首先建立一个朴素随机公式的总体来表示已知自变量和它们的因变量目标之间的关系,以预测新数据。每一个连续的…

Regression

//李宏毅视频官网:http://speech.ee.ntu.edu.tw/~tlkagk/courses.html 点击此处返回总目录 //邱锡鹏《神经网络与深度学习》官网:https://nndl.github.io 今天主要讲的是Regression。会通过一…

从零接入微信公众号(Java实现 附源码)

目录 从零接入微信公众号 一、微信测试号的申请与关注 1.申请 2.访问域名配置 3.关注 二、测试号快速生成底部导航栏 1.获取 access_token 2.自定义菜单 三、微信公众号网页授权 1.网页授权原理 2.代码实现 1)NetUtil.java 2)Oauth2Token.java 3)WxUserDO.java…

前后端分别部署教程 ---- 第三部分项目部署和挂载到微信公众号

3. 前端 这里介绍的是idea开发工具下的项目打包 3.1 项目打包 一定要在指定项目路径下打开 Terminal,不然会打错项目的包. 右击项目名称,然后点击 Open in Terminal: 在下面的 Terminal窗口中, 输入打包命令: npm …

springboot+h5页面+微信公众号获取微信用户信息

springboot项目,h5页面通过微信公众号获取微信用户信息 最近本人有一个项目需求,微信公众号里点击一个菜单进入一个商城购物系统。 对于在微信公众号还是小白的我来说难度有点大,但是做完后发现也就这样,用多了就熟悉了。下面记录…

【公众号】微信进入公众号链接自动获取授权登陆

文章目录 前言一、准备二、开发2.1 搭建项目2.2 WeixinUtil 工具2.3 回调接口与登陆接口2.4 过滤器自动登陆2.4 其他类2.5 测试 三、总结 前言 最近项目上有一个需求,用户反映每次从微信打开链接都需要手动登陆,比较繁琐,想点开微信连接后自…

java向微信公众号---发送模板和图文消息

微信公众号初次开发 其他操作 项目搭建mavenapplication.ymlyml参数配置微信客户端配置 搭建完成 实现业务模板消息推送准备工作模板消息填写要求图文消息填写要求 推送模板消息推送模板消息结果——效果 推送图文消息推送图文消息工具类问题和结果 获取关注的用户openId既然有…

微信公众号接入天行机器人案例和方法

首先使用的是天行机器人: 1、接入基本原理: https://www.tianapi.com/apiview/47 申请完成后的结果如下 调用对应的接口的参数如下: http://api.tianapi.com/txapi/robot/index?keyae5e9a72c8d4cb1f5e096f7bb4daf1f3&questionrobot…

微信公众号的端口映射及服务开发

一. 开发准备 微信公众号申请---->实名认证---->服务器开发---->绑定服务器 PS: 这里有一点需要注意的就是, 微信开发必须是80端口或者443端口, 如果我们有云服务器主机一切都好办. 但是如果没有我们还有几个备选方案: 1. 花生壳 , net123 : 这两个都需要实名认证(…

[JAVA实现]微信公众号网页授权登录,java开发面试笔试题

我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。 扫描二维码或搜索下图红色VX号,加VX好友,拉你进【程序员面试学习交流群】免费领取。也欢迎各位一起在群里探讨技术。 推荐文章:Java 面试知识点解析;Mysql优化技巧…

后端操作微信公众号

一、功能说明 员工端使用微信公众号完成审批操作,涉及到的功能包含:自定义菜单、授权登录、消息 1、微信公众号一级菜单为:审批列表、审批中心、我的 2、员工关注公众号,员工第一次登录微信公众号,通过微信授权登录进行…

Java基于微信公众号接口实现授权登录源码及原理分析

微信公众号授权登录操作前提必须注册微信公众平台账号,注意的是订阅号不支持授权登录操作,因此对于个人开发者注册的订阅号是无法实现的,必须注册企业号的微信平台账号而具体注册流程就不详细介绍了,有什么疑问可去微信公众号平台…

微信公众号多域名回调系统1.0发布

这是一款基于ThinkPHP6.0框架的微信公众号多域名回调系统。 微信公众号后台默认只能授权2个网页域名,用本系统可突破这个限制,用同一个公众号对接无限多个网站。网站后台支持回调域名白名单的管理,以及登录记录的查看。 本系统还有微信access…

PHP微信扫码关注公众号并授权登录源码

PHP微信扫码登录看起来简单,但做起来有点麻烦,开发起来就会浪费很多的时间。 PHP判断是否首次关注公众号,扫码关注公众号获取微信用户头像、openid和省市等信息源码。 演示体验地址: https://www.skpan.cn/user/login.html 网盘下载地址:…

2023最新微信公众号无限回调系统源码/已修复BUG亲测可用

正文: 测试环境: Nginx 1.20.2 MySQL 5.6.50 PHP-7.2 1.创建站点 2.到根目录上传源码 3.创建数据库并导入 4.修改数据库信息 根目录/config.php 第5,6,7行 5.后台地址域名/admin 账号admin 密码123456 6.修改域名 根目录下 api.php 第…

Java微信公众号开发登录

MySQL基础开发篇 这部分的内容应该更合适那些刚入坑的朋友们或者是对于基础部分掌握不牢固的朋友,因此有一定经验的或者基础不错的可以自动跳至下一章内容阅读,这部分我仅把目录内容截图展示。 MySQL的优化以及管理维护 MySQL作为一款关系型数据库,SQL语句的优化是尤其重要的…

mysql 推送微信公众号_10分钟完成微信公众号第三方平台全网发布

背景:在微信公众平台配置服务器URL时,使用了新浪云SAE自带的二级域名,提交时出现一个安全风险的警告,网上查了下,许多服务平台和团队也遇到同样的问题。 经过一番研究 … 为什么会有安全风险的警告? 微信公…

springboot微信公众号管理系统vue内容文章文件上传jsp源码mysql

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当做编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 这是一个基于springbootvue的微信公众号管理系统 二…