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

news2024/11/15 22:29:02

一、说明

        在在这篇文章中,我们将学习我们的第一个机器学习算法,称为简单线性回归。这是一个重要的算法,因为当您可能正在学习第一个神经网络(称为人工神经网络)时,在此算法中学习的技术也适用于深度学习我会尝试将其分解为单独的模块,以便您可以更好地理解它(所以这是机器学习系列的第 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.coloradmin.cn/o/1247914.html

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

相关文章

OpenStack云计算平台

目录 一、OpenStack 1、简介 2、硬件需求 3、网络 二、环境搭建 1、安全 2、主机网络 3、网络时间协议(NTP) 4、OpenStack包 5、SQL数据库 6、消息队列 7、Memcached 一、OpenStack 1、简介 官网:https://docs.openstack.org/2023.2/ OpenStack系统由…

简单使用YOLOv5自己训练模型

使用YOLOv5自己训练模型 前言:本文基于我的另一篇文章作为基础,文章戳这里,主要还是实操为主,让大家能快速上手使用。 数据集构建 1.准备工作 数据收集: 图片类型数据 视频类型数据(使用opencv进行视频…

矩阵论(Matrix)

​ 大纲 矩阵微积分:多元微积分的一种特殊表达,尤其是在矩阵空间上进行讨论的时候逆矩阵(inverse matrix)矩阵分解:特征分解(Eigendecomposition),又称谱分解(Spectral decomposition&#xf…

【MATLAB源码-第88期】基于matlab的灰狼优化算法(GWO)的栅格路径规划,输出做短路径图和适应度曲线

操作环境: MATLAB 2022a 1、算法描述 灰狼优化算法(Grey Wolf Optimizer, GWO)是一种模仿灰狼捕食行为的优化算法。灰狼是群居动物,有着严格的社会等级结构。在灰狼群体中,通常有三个等级:首领&#xff…

java中 自动装箱与拆箱,基本数据类型,java堆与栈,面向对象与面向过程

文章目录 自动装箱与拆箱基本数据类型与包装类的区别(int 和 Integer 有什么区别)应用场景的区别: 堆和栈的区别重点来说一下堆和栈:那么堆和栈是怎么联系起来的呢? 堆与栈的区别 很明显:延伸:关于Integer…

python opencv 边缘检测(sobel、沙尔算子、拉普拉斯算子、Canny)

python opencv 边缘检测(sobel、沙尔算子、拉普拉斯算子、Canny) 这次实验,我们分别使用opencv 的 sobel算子、沙尔算子、拉普拉斯算子三种算子取进行边缘检测,然后后面又使用了Canny算法进行边缘检测。 直接看代码,代…

【腾讯云云上实验室-向量数据库】基于向量数据的客户价值体系推荐系统设计

【腾讯云云上实验室-向量数据库】深入浅出-基于向量分析的客户价值体系推荐系统设计 前言 很早之前就有过想写推荐系统系列文章了,本人曾任职高级大数据工程师全程参与过推荐系统的搭建,故在搭建推荐系统算得上是有一定的经验。推荐系统搭建有相当多的…

UI自动化(selenium+python)之元素定位的三种等待方式!

前言 在UI自动化过程中,常遇到元素未找到,代码报错的情况。这种情况下,需要用等待wait。 在selenium中可以用到三种等待方式即sleep,implicitly_wait,WebDriverWait 一、固定等待(sleep) 导入time模块,设定固定的等待时间 缺…

【点云surface】无序点云快速三角化

1 介绍 GreedyProjectionTriangulation 是一种基于局部二维投影的三维点贪婪三角剖分算法的实现。它假定局部表面光滑,不同点密度区域之间的过渡相对平滑。 GreedyProjectionTriangulation算法的基本思想是通过逐步投影点云数据到一个三角化网格上来进行重建。它首…

Pycharm创建项目新环境,安装Pytorch

在python项目中,很多项目使用的各类包的版本是不一致的。所以我们可以对每个项目有专属于它的环境。所以这个文章就是教你如何创建新环境。 一、创建新环境 二、下载安装包 在下载安装包时,可以加入清华源,这样下载更快!不然有时…

消息推送到微信,快速实现WxPusher

文章目录 前言一、平台二、代码总结 前言 我的博客里也有其他方法,测试了下感觉这个方法还是比较实用。 一、平台 先仔细阅读下平台的使用方法。 平台地址请点击 二、代码 import requests text 孪生网络模型已经训练完成,请注意查阅相关信息。 req…

学习Pandas 二(Pandas缺失值处理、数据离散化、合并、交叉表与透视表、分组与聚合)

文章目录 六、高级处理-缺失值处理6.1 检查是否有缺失值6.2 缺失值处理6.3 不是缺失值NaN,有默认标记的 七、高级处理-数据离散化7.1 什么是数据的离散化7.2 为什么要离散化7.3 如何实现数据的离散化 八、高级处理-合并8.1 pc.concat实现合并,按方向进行…

Linux文件基础(文件查看及vim)

文件查看命令: (1)cat 1)查看文件内容(内容较少时使用):cat 文件名 2)合并文件:cat 文件名1 文件名2> 文件名3 3)往文件中写入数据,(Ctrld结束输入); (2)more more 文件名 文件内容较多时用more(空格,回车往下翻,b回滚) (3)less less 文件名 看完内容之后不会显示…

最重要的BI测试-适用于任何BI和分析平台

为什么 BI 测试是答案 相信你的数据可视化是成功执行商业智能 (BI) 和分析项目的关键因素。我敢肯定,你遇到过以下情况:业务主管或业务用户反馈说他们的分析看起来不对,他们的 KPI 看起来有问题,或者速度太慢而无法使用。要问自己…

【Spring篇】JDK动态代理

目录 什么是代理? 代理模式 动态代理 Java中常用的代理模式 问题来了,如何动态生成代理类? 动态代理底层实现 什么是代理? 顾名思义,代替某个对象去处理一些问题,谓之代理,那么何为动态&a…

项目环境配置 本地/测试/预发/生产

在本地目录下新建文件 dev测试环境 development 本地开发环境 production 生产环境 uat预发布环境 .env.dev VUE_APP_API_PATH /api # 测试 VUE_APP_API_PATH http:// # 生成dist名称 VUE_APP_DIST dist_dev .env.development # 本地开发环境 VUE_APP_API_PATH…

pat实现基于邻接矩阵表示的深度优先遍历

void DFS(Graph G, int v) {visited[v] 1;printf("%c ", G.vexs[v]);for (int i 0; i < G.vexnum; i) {if (!visited[i] && G.arcs[v][i]) DFS(G, i);} }

qPCR(荧光定量PCR)的Ct值

今天我们要说的问题&#xff0c;也是对qPCR的更高阶的认识。 1、Ct值到底是不是YYDS&#xff1f; 2、Ct值跟哪些因素有关&#xff1f; 3、同样的模板&#xff0c;Ct值大试剂盒就差吗&#xff1f;要不要换试剂盒&#xff1f; 还是从这个盗版来的图说起。你必须明白以下几个概…

政务大数据与资源平台建设解决方案:PPT全文75页,附下载

关键词&#xff1a;智慧政务解决方案&#xff0c;大数据解决方案&#xff0c;数据中心解决方案&#xff0c;数据治理解决方案 一、政务大数据与资源平台建设背景 1、政务大数据已成为智慧城市建设的必要基础 为响应国家不断加快5G基建、大数据、人工智能等新型基础设施建设布…

HTML CSS登录网页设计

一、效果图: 二、HTML代码: <!DOCTYPE html> <!-- 定义HTML5文档 --> <html lang="en"> …