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

🚀个人主页:为梦而生~ 关注我一起学习吧!
💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~
💡往期推荐
【机器学习基础】机器学习入门(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
下面是以四个特征为例,利用正规方程的求解:
在这里插入图片描述

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

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

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

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

相关文章

BI智能财务分析真的神,财务人都来用

不用等,真的不用等!这边接入数据,那边就能把利润表、资产负债表、现金流量表等财务数据分析报表送到眼前,不用开发,直接就看分析结果。 奥威BI财务方案真能把我要的指标、分析都做出来? 能,可…

在win10环境下安装python,配置python环境,执行python脚本

1.安装python 去python官网下载: https://www.python.org/ 这里采用 Python 3.10.8 版本 选择windows 64位 双击安装: 安装这里有两个选项: 1.默认安装直接选Install Now 2.勾选install launcher for all users(recommend&a…

Github小彩蛋显示自己的README,git 个人首页的 README,readme基本语法

先上效果👇 代码在下面,流程我放最下面了,思路就是创建一个和自己同名的仓库,要公开,创建的时候会提示小彩蛋你的reademe会展示在你的首页,或许你在这个readme里面的修改都会在你的主页上看到了&#x1f44…

TEMU平台要求电子产品提供的UL测试报告如何办理?

平台销售的电子产品,要符合指定的标准,如果不合格很容易发生起火,等危及消费者生命财产的安全,因此很多客户因为缺少UL报告,导致产品被下架。 带电的产品上架亚马逊或相关的跨境电商平台都需要相关的UL报告/UL标准&…

vue-router配置

1、路由安装 npm install vue-router4 2、创建router目录 3、编辑文件且引入router包 4、main.js引入

申明式管理方式与配置清单文件

目录 申明式管理方式 1、使用申明式管理方式相关操作 1)获取资源配置清单 2)更改获取的yaml配置清单,并进行修改然后创建或更新资源 3)在线修改或编辑资源配置 4)删除资源 2、如何获取资源配置清单文件模板&…

spark性能调优 | 默认并行度

Spark Sql默认并行度 看官网,默认并行度200 https://spark.apache.org/docs/2.4.5/sql-performance-tuning.html#other-configuration-options 优化 在数仓中 task最好是cpu的两倍或者3倍(最好是倍数,不要使基数) 拓展 在本地 task需要自己设置&a…

客户管理系统升级,助力企业快速增长——API线索对接功能

在数字化时代,企业需要迅速适应不断变化的市场需求,实现高效的客户管理,以便迅速发现商机并提供更好的客户体验。为了助力企业取得成功,客户管理系统的API线索对接功能应运而生,带来更多机会、更高效率以及更全面的客户…

怎么把ogg转mp3格式?

音频声音小怎么增强?现在对于音频文件的使用越来越频繁,自媒体从业者会使用到音频素材,还有很多人会从网上下载很多的学习音频文件,有时候下载的音频文件播放之后会发现声音很小,此时大家会调大音频播放器的音量或者电…

JavaWeb-CSS

一、什么是CSS CSS(Cascading Style Sheets,层叠样式表)能够对网页中元素的位置排版进行精确的控制,拥有对网页对象和模型样式的编辑能力,简单来说就是页面美化。 CSS样式代码中的注释需要使用/**/。 二、CSS的引入方…

Notion汉化

Notion真无语,汉化版都没有。真的无力吐槽。 2023.11.7汉化经历 教程链接:github Reamd7/notion-zh_CN at 2.4.20-handmade (github.com) 网页版: 油猴下载插件。 Notion中文汉化 浏览器插件下载 windows: github realse 这…

Latex如何消除并自定义算法标识

正常: 修改后: 正常代码: \documentclass{article} \usepackage[ruled]{algorithm2e} \begin{document} \begin{algorithm} \caption{Hi} My name is XXX. \end{algorithm} \end{document}修改后代码: \documentclass{articl…

C++运算符重载详解(日期类实操)

前言&#xff1a;为什么要实现运算符重载&#xff1f; 在C语言中&#xff0c;对于内置类型&#xff0c;我们可以根据符号>、<、等去直接比较大小&#xff0c;但是对于自定义来说&#xff0c;肯定不能直接比较大小&#xff0c;例如下面的日期类&#xff0c;想要比较两个两…

移动机器人路径规划(三)--- 基于采样的路径规划Sample-basedpath finding

目录 1 基于采样的路径规划的优点和一些重要概念 2 概率路图 Probabilistic Road Map 3 快速搜索随机树Rapidly-exploring Random Tree 3.1 RRT 3.2 RRT Connect 4 RRT算法的优化 4.1 RRT* 4.2 Kinodynamic-RRT* 4.3 Anytime-RRT* 5 Advanced Sampling-based Methods…

PCL 点云超体素分割-SupervoxelClustering

一、概述 原始文档与点云 Clustering of Pointclouds into Supervoxels - Theoretical primer — Point Cloud Library 0.0 documentation 超像素 Superpixels Segmentation algorithms aim to group pixels in images into perceptually meaningful regions which conform…

【Linux】文件系统中inode与软硬链接以及读写权限问题

文章目录 前言一、 简单理解文件系统二、文件操作具体步骤1.新建文件2.删除文件3.查找文件 三、目录的重新理解1.目录下没有w权限&#xff0c;无法对其下的文件进行创建与删除2.目录下没有r权限&#xff0c;无法对其下的文件进行查看3.目录下没有x权限&#xff0c;无法进入这个…

空调能量表

数字化应用场景&#xff1a;空调能量监测 定义 空调能量表产品又被称为冷量积算仪、冷量积分仪、能量积分仪、能量积算仪、空调冷热量表、冷量表、能量表等&#xff0c;现阶段行业内没有统一的名称。 作用 用于计量中央空调能耗的仪表&#xff0c;它通过和空调管道流量计和温…

numpy数据库

numpy中的数组 0、导包 import numpy as np 1、创建数组 >>> # 创建数组&#xff0c;得到darray类型 >>> t1 np.array([1, 2, 3]) >>> t2 np.array(range(8)) >>> t3 np.arange(1, 9, 2) 2、数组为 numpy.ndarray 类型 >>…

基于单片机C51全自动洗衣机仿真设计

**单片机设计介绍&#xff0c; 基于单片机C51全自动洗衣机仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机C51的全自动洗衣机仿真设计是一个复杂的项目&#xff0c;它涉及到硬件和软件的设计和实现。以下是对这…

redis常见问题及解决方案

缓存预热 定义 缓存预热是一种优化方案&#xff0c;它可以提高用户的使用体验。 缓存预热是指在系统启动的时候&#xff0c;先把查询结果预存到缓存中&#xff0c;以便用户后面查询时可以直接从缓存中读取&#xff0c;节省用户等待时间 实现思路 把需要缓存的方法写在初始化方…