机器学习算法(1)——简单线性回归

一、说明

        在在这篇文章中,我们将学习我们的第一个机器学习算法,称为简单线性回归。这是一个重要的算法,因为当您可能正在学习第一个神经网络(称为人工神经网络)时,在此算法中学习的技术也适用于深度学习我会尝试将其分解为单独的模块,以便您可以更好地理解它(所以这是机器学习系列的第 1 部分)。线性回归,顾名思义,在监督机器学习中,回归问题陈述肯定可以借助类似的线性回归来解决。现在简单的线性回归算法到底是什么,假设我有一个数据集,并且这个特定的数据集具有体重和高度等特征。

        假设体重在74 公斤左右,我的身高可能是170 厘米,如果体重在80 公斤左右,我的身高可能是180 厘米,如果体重在75 公斤左右,我的身高可能是175.5 厘米。假设在这种数据集中,我们的主要目标是每当我们给出新的权重时训练一个模型,该模型应该能够预测高度,现在你看到这个特征基本上是我们的独立特征(权重)并且这个特征特别是关于输出或依赖特征。这就是我们计划做的,我们将在简单线性回归的帮助下进行训练。那么为什么我们把它说成简单的线性回归,这样通过查看这个你就可以了解这里有多少输入特征呢?我们有一个输入特征和一个输出特征。每当我们有这一输入特征时,我们就说它是简单线性回归。如果我们有多个输入特征,那么我们可以将其称为多元线性回归。因此,在本教程中,我们尝试指定一个模型,并使用特定数据对其进行训练,稍后该模型应该能够预测高度。

        因此,关于这个特定的数据集,让我绘制一些点。假设有一些点是这样绘制的,因此在回归的帮助下,我们要做的是创建一条最佳拟合线,而这条最佳拟合线实际上有助于预测权重。因此,让我们说一下,一旦我们获得这条最佳拟合线,预测将如何发生,并且应该以您知道真实点之间的距离的方式创建这条最佳拟合线。

        真实点是指我的数据的输出,即 170 厘米、180 厘米和 175.5 厘米。这些预测点之间的距离基本上就是误差

        所以这些是我的真实点(蓝色点),蓝色线是使用这些点的预测线。我们只是创建一条预测线,每当我们获得新的数据点时,它都是最佳拟合线,假设特定的重量为 72.5 公斤,我们如何预测我们的输出,这意味着高度应该是多少?我们只是从 x 轴到预测线画一条线,这是我的最佳拟合线,从最佳拟合线我将画另一条线到我的 y 轴所以这条线符合我在 y 的高度轴是我给定输入的输出。

        这就是我们在简单线性回归中所做的。让我们尝试了解该特定最佳拟合线的数学方程是什么以及最佳拟合线的具体误差是什么。在此之前,我们需要了解我在解释整个机器学习算法时实际上将使用的一些符号。所以我要画另一张图,假设这是 x 轴,我的体重x 轴上身高y 轴上,我刚刚随机创建了一些点,这些点基本上提到了我们的数据集。

        我将训练我们的特定模型。我们再次计划在这里创建一条最适合的生产线。为了创建这条最佳拟合线,我们只需要一些方程,即:

y = mx + c

        如果您看过一些研究论文,他们也可能会使用类似的内容,

Y = β 0 + β 1 x

        您可能还见过这样的方程,

hθ(x)=θ0+θ1x

        我将使用特定的符号,只不过是hθ(x)=θ0+θ1x。该方程称为假设,用h(x)=θ0 +θ1x 的形式表示(基本上与 y = mx + c 相同),其中 θ0(或 c)和 θ1 是(或 m)参数。我们希望找到使我们的假设与数据最佳匹配的参数值。现在这里的 X 表示我的独立特征,即重量。请尝试理解什么是θ0和什么是θ1。首先,θ0到底是什么,我们说它是一个截距。为什么我们说它是拦截?这是通过简单的数学计算得出的。假设我的X为零,那么会发生hθ(x)=θ0。正如您在我的图表中看到的,最佳拟合线在某处与 y 轴相交。所以我的最佳拟合线与 y 轴相交的点并将其作为拦截。这意味着当 x 轴为零时,即θ0的值。现在我们知道θ0的含义是什么了。它只不过是一个拦截器。当我们谈论斜率或系数时,它表示 x 轴上的唯一运动以及有关 y 轴的运动。

        这由等式中的θ1表示。假设如果我有许多独立的特征,那么这个方程就变成了

h_{\theta }(x)= \theta _0 + \theta _1 x_1 + \theta _2 x_2 + .. + \theta _n x_n

        所以最后我们知道我们可以使用这个方程预测给定 x 值y 值。我们将此预测点表示为ŷ。你知道 y 是我们的实际输出值。现在我们可以使用这两个值得到误差方程。

Error = y - ŷ

        现在我们将提出一条最佳拟合线,其中当我尝试计算或求所有这些误差的总和时,它应该是最小的。假设存在多条具有不同误差总和值的最佳拟合线。您必须选择误差总和值最小的最佳拟合线。

二、回归成本函数

        在这里,我们将找到选择最佳拟合线的优化方法。为此,我们将使用成本函数。该成本函数以符号形式给出。

        我们必须创建最佳拟合线,以便我们可以获得所有特定误差的总和,并且它应该是最小的。这就是为什么我们以这种特定的方式采用这个成本函数。hθ(x)^i是我的预测点。y ^i是我的真值点/真实输出。当我们进行减法时,我们可以在这里得到误差值。

        我们进行平方的原因是因为我们使用的成本函数技术是均方误差。是否存在不同类型的成本函数?是的,有平均绝对误差(MAE)和均方根误差(RMSE)

        θ0表示截距θ1表示斜率您只需要不断更改 θ0 和 θ1 值,并尝试找出误差最小的最佳拟合线。

        那么直线方程是什么呢

hθ(x)=θ0+θ1x

        由此,我将在二维图中解释所有这些,以便更好地理解这个理论。所以我假设我的θ0 = 0。那么我的截距将为零,最佳拟合线将穿过原点。现在我可以像这样创建我的方程。

hθ(x)= θ1x  : because my θ0 = 0

        我将使用这个方程来获取 hθ(x) 的值。让我们考虑这是我的整个数据集,我正在尝试创建一条最佳拟合线并找到该线的最小误差。

        示例数据集

        让我们绘制这些数据的图表。现在我将使用上面的方程来绘制我的最佳拟合线。

        与实际值的图表

        现在我的斜率是 θ1 ,我们假设θ1= 1。稍后,我们将改变斜率以获得不同的最佳拟合线以最小化误差。

hθ(x)= θ1x
Let θ1 = 1 (This is my slope value. Assumption this value equals to 1)
Now according to the x values in the data hθ(x) values should be like this,
x =  1 -> hθ(x) =  1 
x =  2->  hθ(x) =  2
x =  3->  hθ(x) =  3

现在我们可以用这些值绘制最佳拟合线,这条线将穿过原点(x = 0,y = 0)。

具有实际值和最佳拟合线的图表

现在你可以看到我的预测点和真实点是重叠的。现在让我们应用这个成本函数。

Here we assume like θ0 = 0 and the J(θ0, θ1) will be J(θ1) 
Now in the dataset I have 3 points. So that m will be 3. m=3
Now the summation of i =1 to 3 means the entire summation of 1,2 and 3 value.
So I will get the value by expanding this values like this,J(θ1) =  1/2*3 [All 3 dataset Sum (predicted value - actual true value)^2]
J(θ1) =  1/2*3 [ (1 -1)^2 + (2 - 2)^2 + (3 - 3)^2}
J(θ1) = 0

现在您知道 J(θ1) = 0,这意味着没有错误。这是正确的,因为显然没有错误,因为最佳拟合线通过了所有真实点。

让我们将斜率值更改为 0.5。

hθ(x)= θ1x
Let θ1 = 0.5(This is my slope value. Assumption this value equals to 0.5)
Now according to the x values in the data hθ(x) values should be like this,
x =  1 -> hθ(x) =  0.5
x =  2->  hθ(x) =  1
x =  3->  hθ(x) =  1.5

现在我们可以用这些值绘制最佳拟合线,这条线将穿过原点(x = 0,y = 0)。

所以这里红点是我的预测点,蓝点是我的实际点。现在让我们使用 J(θ1) 计算误差值。

Here we assume like θ0 = 0 and the J(θ0, θ1) will be J(θ1) 
Now in the dataset I have 3 points. So that m will be 3. m=3
Now the summation of i =1 to 3 means the entire summation of 1,2 and 3 value.
So I will get the value by expanding this values like this,J(θ1) =  1/2*3 [All 3 dataset Sum (predicted value - actual true value)^2]
J(θ1) =  1/2*3 [ (0.5 -1)^2 + (1 - 2)^2 + (1.5 - 3)^2}
J(θ1) = 1/2*3 [ (-0.5)^2 + (-1)^2 + (-1.5)^2}
J(θ1) = 0.58

现在我的 J(θ1) 值(误差)是 0.58。与之前的值相比,这是一个更大的值。

让我们将斜率值更改为0

hθ(x)= θ1x
Let θ1 = 0(This is my slope value. Assumption this value equals to 0)
Now according to the x values in the data hθ(x) values should be like this,
x =  1 -> hθ(x) =  0
x =  2->  hθ(x) =  0
x =  3->  hθ(x) =  0

现在我们可以用这些值绘制最佳拟合线,这条线将穿过原点(x = 0,y = 0)。

现在我的预测点为黄色,实际点为蓝色。现在让我们使用 J(θ1) 计算误差值。

Here we assume like θ0 = 0 and the J(θ0, θ1) will be J(θ1) 
Now in the dataset I have 3 points. So that m will be 3. m=3
Now the summation of i =1 to 3 means the entire summation of 1,2 and 3 value.
So I will get the value by expanding this values like this,J(θ1) =  1/2*3 [All 3 dataset Sum (predicted value - actual true value)^2]
J(θ1) =  1/2*3 [ (0 -1)^2 + (0 - 2)^2 + (0 - 3)^2}
J(θ1) = 1/2*3 [ (-1)^2 + (-2)^2 + (-3)^2}
J(θ1) = 2.3

现在让我们在图表中绘制这些 J(θ1) 值。看起来像这样,

        所以这里我们使用了 3 个点,当我们使用更多的 J(θ1) 和 θ1 点来绘制时,你会得到这样的图。你知道,在 θ1 =1 点,我的误差非常低。事实上,它是。所以我们可以说,当我们找到这个θ1θ1= 1时,我的误差最小化了。我们将此值称为全局最小值。总体目标是通过迭代不同的θ值来最小化成本函数。成本函数的最低可能值也称为全局最小值。最终的线性回归模型将保留产生最低成本函数的 θ 值。在全局最小值中,我现在将获得最佳拟合线。

        所以这整条曲线称为梯度下降。这对于深度学习技术来说非常重要。

        所以我希望您能更好地理解简单线性回归和回归成本函数。您将在下一篇文章中了解有关收敛算法的更多信息。

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

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

相关文章

阿里云经济型e实例云服务器怎么样?性能测评

阿里云服务器ECS推出经济型e系列,经济型e实例是阿里云面向个人开发者、学生、小微企业,在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器,CPU采用Intel Xeon Platinum架构处理器,支持1:1、1:2、1:4多种处理…

弄懂Rust编程中的Trait

1.定义 trait trait 定义了某个特定类型拥有可能与其他类型共享的功能。可以通过 trait 以一种抽象的方式定义共享的行为。可以使用 trait bounds 指定泛型是任何拥有特定行为的类型。 一个类型的行为由其可供调用的方法构成。如果可以对不同类型调用相同的方法的话&#xff…

微服务 Spring Cloud 8,开源RPC框架如何选型?

目录 一、开源RPC框架有哪些?1、跟语言平台绑定的开源RPC框架2、跨语言平台的开源RPC框架 二、跟语言平台绑定的开源RPC框架 -- Dubbo1、Dubbo的架构主要包含四个角色2、Dubbo的调用框架是如何实现的? 三、如何选择?四、跨语言平台的开源RPC框…

Java --- JVM之垃圾回收相关知识概念

目录 一、System.gc() 二、内存溢出与内存泄漏 2.1、内存溢出 2.2、内存泄漏 三、Stop the world 四、垃圾回收的并行与并发 4.1、并发 4.2、并行 4.3、并行 vs 并发 4.4、垃圾回收的并发与并行 五、安全点与安全区域 5.1、安全点 5.2、安全区域 六、引用 6.1…

QTableWidget——编辑单元格

文章目录 前言熟悉QTableWiget,通过实现单元格的合并、拆分、通过编辑界面实现表格内容及属性的配置、实现表格的粘贴复制功能熟悉QTableWiget的属性 一、[单元格的合并、拆分](https://blog.csdn.net/qq_15672897/article/details/134476530?spm1001.2014.3001.55…

c语言-操作符详解(含优先级与结合性)

文章目录 了解什么是操作数、操作符操作数&#xff1a;操作符 操作符详解&#xff1a;1.算术操作符&#xff1a; 、- 、* 、/ 、%2.移位操作符: << >>3.位操作符: & | ^4. 赋值操作符: 、 、 - 、 * 、 / 、% 、<< 、>> 、& 、| 、^5. 单⽬操…

MySQL用户与权限管理

快捷查看指令 ctrlf 进行搜索会直接定位到需要的知识点和命令讲解&#xff08;如有不正确的地方欢迎各位小伙伴在评论区提意见&#xff0c;博主会及时修改&#xff09; MySQL用户与权限管理 登录 #本地登录 mysql -uroot -p123456#远程登录 #客户端语法&#xff1a;mysql -…

Springboot_文件下载功能(前端后端)

遇到的问题&#xff1a; 文件下载后文件一直被破坏&#xff0c;无法正常打开文件名乱码&#xff0c;如图 刚开始一直在纠结&#xff0c;是不是后端没有写对&#xff0c;然后导致下载不能使用 后来搜索了一些资料&#xff0c;发现后端没什么问题 然后就开始找到其他项目对比…

Polygon Miden VM架构总览

1. 计算类型 Programs程序有2种类型&#xff1a; 1&#xff09;Circuit电路&#xff1a;即&#xff0c;程序即电路。将程序转换为电路。2&#xff09;Virtual machine虚拟机&#xff1a;即&#xff0c;程序为电路的输入。【Miden VM属于此类型】 2. 何为ZK virtual machine…

C++:继承

一、继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保 持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承呈现了面向对象 程序设计的层次结构&#xff0c…

万宾科技智能井盖传感器,预防城市道路安全

随着城市交通的不断发展和城市化进程的加速推进&#xff0c;城市道路安全问题日益凸显。市政井盖作为城市道路的一部分&#xff0c;承担着重要的交通安全保障职责。然而传统的市政井盖管理方式存在许多不足。针对这些问题政府需要采取适当的措施&#xff0c;补足传统管理方式的…

oracle “ORA-25153:临时表空间为空”

从生产上面备份出来了一个数据库&#xff0c;应用在使用时显示ORA-25153临时表空间为空的报错&#xff0c;原因一般是数据库迁移时&#xff0c;没有迁移完整造成的 解决方法 1.创建新的临时表空间temp2 create temporary tablespace temp2 tempfile DATA size 100M autoexten…

杭电oj 2064 汉诺塔III

#include <stdio.h>void main() {int n, i;long long sum[35] { 2,8,26 };for (i 3; i < 35; i)sum[i] 3 * sum[i - 1] 2;while (~scanf_s("%d", &n))printf("%lld\n", sum[n - 1]); }

python实现调和反距离空间插值法AIDW

1 简介 AIDW 主要是针对 IDW 的缺点进行了改进&#xff0c;考虑了样本点与预测点的位置&#xff0c;即方向和距离&#xff0c;具体见下图&#xff1a; 2 改进 IDW 公式&#xff1a; 从IDW算法可看出&#xff0c;插值点的估算值仅与插值样本距插值点的远近相关&#xff0c;并未…

@PropertySource适配通配符加载到Environment的一种方案

PropertySource可将配置文件加载到内存&#xff0c;时间有限说干的&#xff0c;PropertySource注解有4个参数&#xff0c;其中value表示要加载文件的路径&#xff0c;这个参数不支持通配符。还有一个参数PropertySourceFactory是加载配置文件的工厂&#xff0c;这两个参数配合使…

Sqli-lab教程-史上最全详解(1-22通关)

目录 Less-1 联合注入 Less-2 Less-3 Less-4 Less-5 报错注入/布尔盲注/时间盲注 Less-6 报错注入/布尔盲注/时间盲注 Less-7 文件导出 Less-8 布尔盲注/时间盲注 Less-9 时间盲注 Less-10 时间盲注 Less-11 post注入 Less-12 post注入 Less-13 post盲注 Less-14 post盲注 Less…

部署jekins遇到的问题

jdk问题 我用的jdk版本是21的结果版本太新了&#xff0c;启动jekins服务的时候总是报错最后在jekins的安装目录下面的jekinsErr.log查看日志发现是jdk问题最后换了一个17版本的就解决了。 unity和jekins jekins和Git源码管理 jekins和Git联动使用 我想让jekins每次打包的时…

【Java 进阶篇】Redis:打开缓存之门

介绍 Redis&#xff08;Remote Dictionary Server&#xff09;是一个高性能的键值对存储系统&#xff0c;被广泛用作缓存、消息中间件和数据库。它以其快速的读写能力、支持多种数据结构和丰富的功能而闻名。在这篇博客中&#xff0c;我们将深入了解Redis的概念、安装以及基本…

八、ffmpeg录制视频为yuv文件

前言 测试环境&#xff1a; ffmpeg的4.3.2自行编译版本windows环境qt5.12 图片的一些重要知识&#xff1a; RGB图片 位深度&#xff1a;每一个像素都会使用n个二进制位来存储颜色信息。每一个像素的颜色都是由红&#xff08;Red&#xff09;、绿&#xff08;Green&#xff0…

Linux学习笔记-Ubuntu下使用Crontab设置定时任务

文章目录 一、概述二、基于crontab的设置2.1 基本命令说明2.2 使用-e指令编辑命令2.2.1 进入编辑模式2.2.2 指令信息格式2.2.4 开启日志1) 修改rsyslog配置文件2) 重启rsyslog3) 查看日志 2.2.3 设置后之后重启服务 三、示例3.1 每隔一分钟往文件中日期3.2 使用-l查看任务列表3…