从零讲解线性回归(Linear Regression)

Linear Regression 

线性回归

        线性回归是一种简单且常用的技术,用来预测连续变量,假设预测变量(自变量, x_i )和结果变量(因变量, y_i )之间存在线性关系。线性回归公式(其实就是一次方程):

        那么当我们有一组数据后,如何构造线性回归模型,如何确定线性回归线呢?这个问题成为了贲节重点需要解决的问题。

SSE 

        首先我们要明白,当我们建模一个线性回归去模拟数据的时候,那我们新建立的模型肯定是要最贴近真实值的,那我们就可以问题转化为求预测值和真实值最小。

        所以接下来我们需要引入一个概念**最小化误差平方和(SSE, Sum of Squared Errors)**,下图看不懂没关系,实际意义就是引入了SSE这个公式,这个公式代表着就是预测值和真实值之间的差值,至于为什么要是平方呢,因为有的真实值大于预测值,有的预测值大于真实值。而我们希望通过正数来记录差值,所以加上了平方。图中的图只是方便于大家理解,红色的线就是这个差值(residuals),如果大家学过残差网络就会很熟悉这个单词。

 Minimize SSE

        我们观察可以发现SSE这个公式是一个关于贝塔0、1的一个凸函数,凸函数怎么求最小值,是我们高中经常解决的问题,那就是求导且设导数为0啦(这部分要是不懂就复习一下高中数学嘻嘻)。下列为对贝塔0、1分别偏导的结果。

        接下来我们重写原函数(最开始那个一元一次方程)且化简:

        再重写式子(2)代入方程,同时替换贝塔0: 

        最后化简结果:

        这样我们有了一个数据集之后,带入x和y就可以算出贝塔1和贝塔0了,从而我们就可以得到新建模的线性回归方程了。

        (这里讲一句,作为计算机专业学生,我觉得我们应该强调应用,原理理解不了可以暂且搁置,不要因为这个打击了自己的学习兴趣是最重要的!!!!!) 

SST、SSR 

        除了SSE这个指标以外,我们还需要其他指标来观测模型。

        • SST (总平方和):数据与其均值的总差异,表示所有数据的总波动性。

        • SSR (回归平方和):模型解释的数据部分,表示模型的解释能力。

        • SSE (残差平方和):模型未能解释的数据部分,表示模型的误差。

        这里请注意指标之间的关系是:SST = SSR + SSE

R^2 

        那我们知道了如何构造一个预测模型,接下来就需要有指标来检测模型的表现是否达到要求。决定系数(R^2)就是这个指标。

 决定系数 R^2 是衡量回归模型拟合优度的重要指标,定义为:

R^2 = \frac{SSR}{SST} = 1 - \frac{SSE}{SST} = \frac{SST - SSE}{SST}

         

        • R^2 的值范围在 0 到 1 之间,表示模型解释因变量的变异比例。

        • 如果 R^2 越接近 1,表示模型的解释力越强,模型能够解释大部分的变异。

        • 如果 R^2 = 0 ,表示模型完全无法解释数据中的变异。

Adjusted R^2

标准 R^2 的缺陷

        • 标准的 R^2 有一个已知的缺陷,即它总是随着模型中预测变量(自变量)数量的增加而增大。即使新增加的变量并不能显著提高模型的解释能力, R^2 也会增大。

        • 这样可能会导致误导性的结果,使得模型看起来拟合得更好,尽管增加的新变量实际上并不有用。

调整后的 R^2 解决了这个问题

        • 调整后的 R^2 在计算时考虑了模型中的预测变量的数量,并对其进行了修正。如果新加入的变量没有提供更多的信息或者不能显著提高模型的拟合效果,那么调整后的 R^2 可能会减少。

        • 调整后的 R^2 不仅考虑了模型对数据的拟合度,还考虑了引入额外自变量带来的“惩罚”,从而使得它对无用变量更加敏感。

调整后的 R^2 解释了模型的拟合优度

        • 调整后的 R^2 可以更准确地反映回归模型的真实拟合情况。它既衡量了模型的拟合优度,也考虑了自变量数量的影响。

        • 如果你向模型中添加一些无关的变量,调整后的 R^2 会减少。这表明该模型并没有因为添加这些变量而变得更好。

调整后的R^2公式如下

        其中:

        • R^2 :标准的决定系数,它反映了回归模型解释数据变异的能力。

        • n :样本数量(数据点的数量)。

        • p :自变量(回归模型中的独立变量)的数量。

RMSE

        均方根误差(RMSE)是用于衡量模型预测误差的标准指标。它表示模型预测值和实际值之间的平均差异,计算的是预测误差的平方和的均值的平方根。简而言之,RMSE 表示的是模型预测值与真实值之间的平均偏差。这些公式没什么好说的,把数据代入进去算出结果就行了,公式如下:

\text{RMSE} = \sqrt{\frac{\sum_{i=1}^{n}(y_i - \hat{y_i})^2}{n}} = \sqrt{\frac{\text{SSE}}{n}}

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

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

相关文章

Qt自定义一个圆角对话框

如何得到一个圆角对话框? 步骤: 1、继承自QDiaglog 2、去掉系统自带的边框 3、设置背景透明,不设置4个角会有多余的部分出现颜色 4、对话框内部添加1个QWidget,给这个widget设置圆角,并添加到布局中让他充满对话框 5、后续对…

智慧校园打架斗殴检测预警系统 异常奔跑检测系统 Python 和 OpenCV 实现简单

在当今数字化时代,智慧校园建设已成为教育领域的重要发展方向。校园安全作为学校管理的重中之重,如何借助先进的技术手段实现高效、精准的安全监控,成为了教育工作者和技术专家共同关注的焦点。其中,智慧校园打架斗殴检测预警系统…

linux线程 | 线程的控制(上)

前言:本节内容为线程的控制。在本篇文章中, 博主不仅将会带友友们认识接口, 使用接口。 而且也会剖析底层,带领友友们理解线程的底层原理。 相信友友们学完本节内容, 一定会对线程的控制有一个很好的把握。 那么&#…

Spring AI 整体介绍_关键组件快速入门_prompt_embedding等

Spring AI:Java开发者的AI集成新利器 在过去,Java开发者在构建AI应用时面临着缺乏统一框架的问题,导致不同AI服务的集成过程复杂且耗时。Spring AI应运而生,旨在为基于Java的应用程序提供一个标准化、高效且易于使用的AI开发平台…

用PHP爬虫API数据获取商品SKU信息实战指南

在电子商务的精细化运营中,SKU(Stock Keeping Unit,库存单位)信息是商品管理的核心。它不仅包含了商品的规格、价格、库存等关键数据,还直接影响到库存管理、价格策略和市场分析等多个方面。本文将介绍如何使用PHP爬虫…

Java程序设计:spring boot(3)——spring boot核心配置

目录 1 设置 Banner 图标 1.1 Banner 图标⾃定义 1.2 Banner 图标关闭 2 Spring Boot 配置⽂件 3 Starter 坐标 & ⾃动化配置 3.1 Starter坐标配置 3.1.1 Web starter 3.1.2 Freemarker Starter & Thymeleaf starter 3.1.3 JavaMail邮件发送 Starter 3.1.4 引…

mysql--表的约束

目录 理解表的约束和操作 如何理解? 1、空属性null 2、默认值default 3、列描述comment 4、自动填充zorefill 5、主键primary key (1)创建表时指定可以 (2)创建表后指定key (3)删除主…

注册函数和回调函数使用讲解

1.概念 注册和回调函数在C语言编程中非常常见,也经常用到。注册和回调的机制也大量使用在Linux内核中。学会使用注册和回调函数是C语言开发者应当掌握的一项编程技能。 函数的本质在内存上体现的是地址。我们知道函数的地址后,就能够调用这个函数。 …

ESP32移植Openharmony外设篇(1)MQ-2烟雾传感器

外设篇 实验箱介绍 旗舰版实验箱由2部分组成:鸿蒙外设模块(支持同时8个工作)、鸿蒙平板。 其中,鸿蒙平板默认采用RK3566方案。 OpenHarmony外设模块采用底板传感器拓展板方式,底板默认采用ESP32方案,也…

部署Qwen2.5-7b大模型详解

部署Qwen2.5-7b大模型详解 本文参考教程:https://qwen.readthedocs.io/en/latest/getting_started/quickstart.html 下载模型 https://modelscope.cn/organization/qwen 搜索 qwen2.5-7b 可以看到它提供了六个模型,以满足不同的需求,从下…

HBuilder X中搭建Vue-cli项目组件和路由以及UI库使用(二)

一、创建组件 &#xff08;1&#xff09;在vj1项目src|右键|vue文件 &#xff08;2&#xff09;组件常用模版 <!--该标签用于写HTML代码,必须有一个根标签,如下<div>是根标签--> <template> <div>首页</div> </template><!--该标签用…

c++算法第3天

本篇文章包含三道算法题&#xff0c;难度由浅入深&#xff0c;适合新手练习哟 目录 第一题 题目链接 题目解析 代码原理 代码编写 本题总结 第二题 题目链接 题目解析 代码原理 代码编写 第三题 题目链接 题目解析 代码原理 代码编写 第一题 题目链接 [NOIP2…

【word】页眉横线无法取消

小伙伴们日常想在页眉里加横线&#xff0c;直接双击页眉&#xff0c;然后在页眉横线里选择自己喜欢的横线样式就可以了。 但今天我遇到的这个比较奇特&#xff0c;有些页有这个横线&#xff0c;有些页没有&#xff0c;就很奇怪。 最后排查完&#xff0c;发现是只有标题2的页…

拓数派创始人冯雷出席联合国人居署《未来城市顾问展望2024》 报告结题专家会

近日&#xff0c;联合国人居署中国未来城市顾问委员会在内蒙古鄂尔多斯市国际会展中心召开《未来城市顾问展望2024&#xff1a;数字城市治理》报告结题会暨走进鄂尔多斯市活动。拓数派创始人、董事长兼首席执行官冯雷&#xff08;Ray Von&#xff09;应邀出席本次活动&#xff…

《计算机视觉》—— 疲劳检测

文章目录 一、疲劳检测实现的思想二、代码实现 一、疲劳检测实现的思想 了解以下几篇文章有助于了解疲劳检测的方法 基于dlib库的人脸检测 https://blog.csdn.net/weixin_73504499/article/details/142977202?spm1001.2014.3001.5501 基于dlib库的人脸关键点定位 https://blo…

个人博客搭建 | Hexo框架

文章目录 1.Hexo安装2.创建博客3.将博客通过GitHub来部署4.更换主题 1.Hexo安装 Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown&#xff08;或其他标记语言&#xff09;解析文章&#xff0c;在几秒内&#xff0c;即可利用靓丽的主题生成静态网页。搭建Hexo首先要…

基于vue框架的的大连金州红星社区物业管理系统dg6co(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;楼栋信息,住户,社区投诉,设备报修,报修完成,车位信息,缴费信息,房屋信息,维修工,保安,来访人员,缴费申诉,公共设备,设备类型,消防设备,公共场地 开题报告内容 基于Vue框架的大连金州红星社区物业管理系统的设计与实现开题报告 一、研究…

如果使用 Iptables 配置端口转发 ?

现实生活中&#xff0c;港口转发就像在一个大型公寓大楼里告诉送货司机该去哪里。通常情况下&#xff0c;该建筑群的正门是不对外开放的。但如果里面有人想要快递&#xff0c;他们可以告诉保安让司机进来&#xff0c;并指引他们到特定的公寓。 类似地&#xff0c;在计算机网络…

Android复杂问题分析工具bugreportz详解

文章目录 bugreportz详细介绍功能与作用使用方法生成详细报告检查进度bugreportz 的优势分析报告 如何分析1. 解压 ZIP 文件2. 分析主要文件2.1 bugreport.txt2.2 logcat.txt2.3 kernel.log / last_kmsg2.4 events.log2.5 traces.txt2.6 dumpstate_board.txt 3. 工具支持4. 重点…

Axure重要元件三——中继器添加数据

亲爱的小伙伴&#xff0c;在您浏览之前&#xff0c;烦请关注一下&#xff0c;在此深表感谢&#xff01; 本节课&#xff1a;中继器添加数据 课程内容&#xff1a;添加数据项、自动添加序号、自动添加数据汇总 应用场景&#xff1a;表单数据的添加 案例展示&#xff1a; 步骤…