【机器学习基础】多元线性回归(适合初学者的保姆级文章)

🚀个人主页:为梦而生~ 关注我一起学习吧!
💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~
💡往期推荐
【机器学习基础】机器学习入门(1)
【机器学习基础】机器学习入门(2)
【机器学习基础】机器学习的基本术语
【机器学习基础】机器学习的模型评估(评估方法及性能度量原理及主要公式)
【机器学习基础】一元线性回归(适合初学者的保姆级文章)
💡本期内容:本篇文章紧接着上篇文章的回归模型,讲一下多元的线性回归~超级基础的文章,赶紧收藏学习吧!!!


文章目录

  • 1 多元线性回归
    • 1.1 什么是多元线性回归
    • 1.2 多元的梯度下降
  • 2 梯度下降需要注意的问题
    • 2.1 学习率
    • 2.2 特征缩放
    • 2.3 特征与多项式回归
    • 2.4 正规方程


1 多元线性回归

1.1 什么是多元线性回归

多元线性回归是一种统计分析方法,它涉及到两个或更多的自变量,并且因变量和自变量之间是线性关系。这种方法用于确定两个或更多个变量之间的定量关系。多元线性回归模型表示因变量(Y)与自变量(X1,X2,X3等)之间的线性关系。

  • 承接我们上一篇文章预测房价的例子

目前为止,我们探讨了单变量线性回归模型,现在我们对房价模型增加更多的特征,例如房间的数量,楼层数和房屋的年龄等,构成一个含有多变量的模型,模型中的特征为(x1,x2,…,xn)。
在这里插入图片描述

增添更多特征后,看一下各个变量名

  • n 代表特征的数量

  • x ( i ) x^{(i)} x(i)代表第i个训练实例,表示特征矩阵中的第i行,是一个向量,比如说,上图的
    x ( 2 ) = ( 1416 3 2 40 232 ) x^{(2)}=\begin{pmatrix} 1416\\ 3\\ 2\\ 40\\ 232 \end{pmatrix} x(2)= 14163240232

  • x j ( i ) x_{j}^{(i)} xj(i)代表特征矩阵中第 𝑖 行的第 𝑗 个特征,也就是第 𝑖 个训练实例的第 𝑗 个特征。

假设函数
在这里插入图片描述
这个公式中有n+1个参数和n个变量,为了能够使公式简化一些,引入 x 0 = 1 x_{0}=1 x0=1,则公式转化为: h θ ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h_{\theta }(x)=\theta _{0}x_{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+...+\theta _{n}x_{n} hθ(x)=θ0x0+θ1x1+θ2x2+...+θnxn

在这里插入图片描述
与单变量线性回归类似,在多变量线性回归中,我们也构建一个代价函数,和单变量代价函数类似,这个代价函数也是所有建模误差的平方和,即
在这里插入图片描述

1.2 多元的梯度下降

我们的目标和单变量线性回归问题中一样,是要找出使得代价函数最小的一系列参数。
多变量线性回归的批量梯度下降算法为:

在这里插入图片描述
下面是一元与多元的区别:
在这里插入图片描述


2 梯度下降需要注意的问题

2.1 学习率

在梯度下降的公式中,𝑎是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向
向下迈出的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。

  • 学习率与偏导的共同作用

α \alpha α 虽然决定了我们迈出的步子的大小,但是,步子的大小却不仅仅是由 α \alpha α 决定的,还与它后面的偏导数有关。 φ φ ϑ j J ( θ ) \frac{\varphi }{\varphi \vartheta _{j}}J(\theta ) φϑjφJ(θ)就是我们前面提到的“梯度”,梯度的本质是一个向量,(有大小,有方向),其大小和 α \alpha α 一同决定了迈出步子的大小,其方向决定了“下山”最快的方向。

  • 学习率过大或者过小的影响
  1. 学习率过小
    在这里插入图片描述

如果 α \alpha α太小,即我们下山的步子迈的很小,每次我们只能一点一点的移动,这样导致我们走的很慢,需要很多步才能走到最低点。

  1. 学习率过大
    在这里插入图片描述

如果 α \alpha α太大,那么梯度下降法可能会越过最低点,甚至可能无法收敛,下一次迭代又移动了一大步,越过一次,又越过一次,一次次越过最低点,直到你发现实际上离最低点越来远。

2.2 特征缩放

在我们面对多维特征问题的时候,我们要保证这些特征都具有相近的尺度,这将帮助梯度下降算法更快地收敛。

来看下面这个例子:
假设我们使用两个特征,房屋的尺寸和房间的数量,尺寸的值为 0- 2000 平方英尺,而房间数量的值则是 0-5 ,以两个参数分别为横纵坐标,绘制代价函数的等高线图能,看出图像会显得很扁,梯度下降算法需要非常多次的迭代才能收敛。
在这里插入图片描述
解决的方法是尝试将所有特征的尺度都尽量缩放到一个固定的范围内
在这里插入图片描述
我们只需要使用以下方法就可以做到这一点:
在这里插入图片描述
在这里插入图片描述

2.3 特征与多项式回归

对于这么多特征以及训练集,如何选择才会使得训练出来的函数预测效果更好呢?

在这里插入图片描述
如果需要更多的特征,我们的多项式会显得特别的冗长,我们可以将某些特征用另外的少数特征来代替,通过平方等方式表示:
在这里插入图片描述
同时,为了减小计算量,前面的特征缩放的工作是十分有必要的

2.4 正规方程

多元线性回归的正规方程是通过矩阵形式来求解线性回归参数的方法。其目的是通过求解导数为0来得到参数的最小二乘估计值。简单来说,正规方程是通过数学方法快速计算出线性回归模型的最优解。

在这里插入图片描述
由前面我们知道代价函数: J ( θ ) = 1 2 m Σ i = 1 m h θ ( ( x ( i ) ) − y i ) 2 J(\theta )=\frac{1}{2m}\Sigma _{i=1}^{m}h_{\theta }((x^{(i)})-y^{i})^{2} J(θ)=2m1Σi=1mhθ((x(i))yi)2,我们也可以把它改写成下面的形式

在这里插入图片描述
这里我们的目标仍然是求代价函数的最小值,使用下面的方法就可以求出:对于每一个 θ \theta θ,都让它对应的偏导等于0
在这里插入图片描述
假设我们的训练集特征矩阵为 𝑋 (包含了 𝑥 0 = 1 )并且我们的训练集结果为向量 𝑦,则利用正规方程解出向量: θ = ( X T X ) − 1 X T y \theta =(X^{T}X)^{-1}X^{T}y θ=(XTX)1XTy
下面是以四个特征为例,利用正规方程的求解:
在这里插入图片描述

  • 最后,这则方程和梯度下降法的比较
    在这里插入图片描述
  • 另外

梯度下降适用于各种模型,正则方程只适用于线性模型,不适用逻辑回归等其他模型

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FreeSWITCH案例跟踪之一,sip bye发不出去

报故障的说&#xff0c;网关呼叫fs&#xff0c;网关收不到fs的sip bye Wireshark看call-flow, 是这样的&#xff1a; INVITE里面的contact是<sip:172.23.4.109:5060;transporttcp> 于是Wireshark设置过滤条件为ip.addr 172.23.4.109 and tcp.port 5060 fs tcp连网关被…

【前端】使用json-server报错

当我们使用json-server模仿后端接口时需要运行json-server --watch index.json这个命令生成增删改查接口但是可能会报这个错误&#xff0c;如图 这时我们运行 npm i json-server -g命令即可&#xff0c;然后再重新运行json-server --watch index.json就行了

基于SSM的校园家教兼职信息交流平台设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

深入探索 Django Channels

概要 随着 Web 应用的发展&#xff0c;实时功能如即时消息、实时通知等变得越来越重要。Django Channels 是 Django 的一个扩展&#xff0c;它使得在 Django 中构建实时功能变得可能。本文将深入探讨 Django Channels 的核心概念、架构以及如何实现一个实时应用。 1. Django C…

2023亚太杯数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米&#xff0c;宽为12米&…

基于纵横交叉算法优化概率神经网络PNN的分类预测 - 附代码

基于纵横交叉算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于纵横交叉算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于纵横交叉优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

2760. 最长奇偶子数组 : 抽丝剥茧,图解双指针做法正确性

题目描述 这是 LeetCode 上的 「2698. 求一个整数的惩罚数」 &#xff0c;难度为 「简单」。 Tag : 「双指针」、「滑动窗口」 给你一个下标从 开始的整数数组 nums 和一个整数 threshold。 请你从 nums 的子数组中找出以下标 l 开头、下标 r 结尾 ( ) 且满足以下条件的 最长子…

ssd202d-logo-cmd_bootlogo分析

cmd_bootlogo.c运行过程 common/autoboot.c:593: disp_logo(0); sprintf(cmd_str, "bootlogo %d 1 0 0 0", logo_id); do_display函数 获取对应结构体,里面有各种参数

ARM 自动资源管理

Java 7 增加了一个新特性&#xff0c;该特性提供了另外一种管理资源的方式&#xff0c;这种方式能自动关闭文件。这个特性有时被称为自动资源管理(Automatic Resource Management, ARM)&#xff0c; 该特性以 try 语句的扩展版为基础。自动资源管理主要用于当不再需要文件&…

Android R.fraction

来源 我是在看Android10原生代码&#xff0c;绘制状态栏蓝牙电量相关类中第一次看到R.fraction的&#xff0c;如类BatteryMeterDrawable <fraction name"battery_button_height_fraction">10%</fraction> mButtonHeightFraction context.getResources(…

虹科方案 | 从概念到生产的自动驾驶软件在环(SiL)测试解决方案

来源&#xff1a;雅名特自动驾驶 虹科方案 | 从概念到生产的自动驾驶软件在环&#xff08;SiL&#xff09;测试解决方案 自动驾驶软件在环&#xff08;SiL&#xff09;测试解决方案 自动驾驶软件在环&#xff08;SiL&#xff09;测试解决方案能够研究和验证高历程实验和恶劣驾…

未来服务器操作系统的趋势与展望

摘要&#xff1a; 随着云计算、大数据和人工智能不断的发展&#xff0c;服务器操作系统也需要随之进行新一轮的升级。本文通过分析当前服务器操作系统的现状&#xff0c;探讨了未来服务器操作系统的趋势和展望&#xff0c;并针对一些关键问题提出了解决方案。 一、引言 服务器…

Oracle OCP / MySQL OCP认证容易通过吗

诸多学员在首次考OCP时&#xff0c;不清楚要如何选择。在本文中&#xff0c;我会为大家进行讲解&#xff01; 选择OCP认证时需要考虑的几大项目&#xff1a; 授课老师师资经验 课程大纲 试听课程 考试通过率 业界口碑 服务质量 郭一军老师的OCP培训在业界培训的学员中已…

[Jenkins] Docker 安装Jenkins及迁移流程

系统要求 最低推荐配置: 256MB可用内存1GB可用磁盘空间(作为一个Docker容器运行jenkins的话推荐10GB) 为小团队推荐的硬件配置: 1GB可用内存50 GB 可用磁盘空间 软件配置: Java 8—无论是Java运行时环境&#xff08;JRE&#xff09;还是Java开发工具包&#xff08;JDK&#xff…

Ubuntu 安装VMware Tools选项显示灰色,如何安装VMware Tools

只要你的网络没问题&#xff0c;你直接执行这几个命令&#xff0c;重启ubuntu虚拟机即可、 sudo dpkg --configure -a sudo apt-get autoremove open-vm-tools sudo apt-get install open-vm-tools sudo apt-get install open-vm-tools-desktop

【Spring】超详细讲解AOP(面向切面编程)

文章目录 1. 前言2. 什么是AOP3. AOP快速入门4. AOP的核心概念5. 切点表达式6. 切点函数7. 通知8. 总结 1. 前言 本文围绕AOP进行讲解,AOP可以做什么,涉及到了哪些注解,以及各个注解运行的时机,以及Around相较于其它注解有什么不同,并且如果要执行目标方法需要怎么做 2. 什么…

分布式锁~

分布式锁 分布式锁是在分布式系统中用于协调多个节点之间对共享资源的访问的一种机制。个人认为实现分布式锁&#xff0c;需要一个中间件例如数据库&#xff0c;redis等等这样的存储锁即可实现分布式锁。 分布式锁实现方案 基于数据库(唯一索引) 基于内存(redis&#xff0c;…

【QT系列教程】之二创建项目和helloworld案例

文章目录 一、QT创建项目1.1、创建项目1.2、选择创建项目属性1.3、选择路径和项目名称1.4、选择构建项目类型1.5、布局方式1.6、翻译文件&#xff0c;根据自己需求选择1.7、选择套件1.8、项目管理&#xff0c;自行配置1.9、配置完成&#xff0c;系统自动更新配置 二、QT界面介绍…

wpf devexpress 自定义统计

总计统计和分组统计包含预定义总计函数。这些函数允许你计算如下&#xff1a; 数据列的数量&#xff08;Count&#xff09; 最大和最小值(Max和Min) 总计和平均值&#xff08;Sum和Average&#xff09; 处理GridControl.CustomSummary 事件或者使用 GridControl.CustomSumm…

51单片机+DS1302设计一个电子钟(LCD1602显示时间)

一、前言 电子钟是一种能够准确显示时间的设备&#xff0c;广泛应用于家庭、办公场所和公共场所&#xff0c;为人们提供了方便和准确的时间信息。本项目设计一个基于51单片机的电子钟&#xff0c;使用DS1302作为RTC时钟芯片&#xff0c;LCD1602作为显示屏&#xff0c;并通过串…