机器学习算法(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.hqwc.cn/news/209403.html

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

相关文章

【网络】数据链路层协议

数据链路层协议 一、链路层解决的问题二、以太网协议1、局域网技术2、令牌环网(了解)3、以太网通信原理4、 MAC地址5、以太网帧格式6、碰撞避免7、最大传输单元MTU 二、ARP协议1、ARP数据的格式2、ARP协议的工作流程3、ARP缓存表4、ARP协议中的一些问题7…

YOLOV5标注训练自己的数据全流程教程

概述 yolo在目标检测领域是非常有代表性的模型,它速度快识别效果也很精准,是实时检测模型中应用最广泛的。yolo的原理和代码是很容易获得的,且有各式各样的教程,但是模型怎么使用的教程相对比较少。本文讲解如何使用yolov5模型训…

PCL 最小二乘拟合圆柱(C++详细过程版)

目录 一、算法原理1、算法简介2、参考文献二、代码实现三、结果展示四、测试数据本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、算法简介 圆柱拟合步骤主要包括两步: 一是确定柱面模型参数初始值…

9.2 Windows驱动开发:内核解析PE结构导出表

在笔者的上一篇文章《内核特征码扫描PE代码段》中LyShark带大家通过封装好的LySharkToolsUtilKernelBase函数实现了动态获取内核模块基址,并通过ntimage.h头文件中提供的系列函数解析了指定内核模块的PE节表参数,本章将继续延申这个话题,实现…

【追求卓越11】算法--二叉树

引导 接下来的几节我们开始介绍非线性的数据结构--树。树的内容比较多也比较复杂。本节,我们只需要了解关于树的一些基本概念。以及再进一步了解树的相关内容--搜索二叉树。该类型二叉树在工作中,是我们常接触的。该节我们介绍关于搜索二叉树的相关操作&…

【2021集创赛】基于ARM-M3的双目立体视觉避障系统 SOC设计

本作品参与极术社区组织的有奖征集|秀出你的集创赛作品风采,免费电子产品等你拿~活动。 团队介绍 参赛单位:上海电力大学 队伍名称:骇行队 总决赛奖项:二等奖 1.摘要 随着信息技术的发展,AGV(Automated Guided Vehic…

快慢指针判断环形链表

我们在前面文章中写过用快慢指针判断链表是否带环: leetcode:环形链表-CSDN博客 我们用的是slow指针一次走一步,fast指针一次走两步,当slow入环后开始了追击,每走一次距离缩短1,最终就会相遇 思考问题 …

FastAPI通过SSE进行流式输出

服务端推送 在服务器推送技术中,服务器在消息可用后立即主动向客户端发送消息。其中,有两种类型的服务器推送:SSE和 WebSocket。 SSE(Server-Send Events) SSE 是一种在基于浏览器的 Web 应用程序中仅从服务器向客户…

Arcgis中通过函数实现字符串截取

效果 从字符串中提取最右侧的符号,如“/”后面的字符串 步骤 1、VB dim bbindexinstrrev( [WGCJ] ,"/")bbright( [WGCJ] ,len( [WGCJ] )- index )2、python def bb(aa):index(aa.rfind("/"))bbaa[index1:]return bb

Linux 磁盘/分区/修复 命令

目录 1. lsblk(list block devices) 2. fdisk(fragment disk) 3. gdisk 4. mkfs(make filesystem) 5. df(display file-system disk space usage) 6. du 7. fsck(file-sy…

手把手教你通过CODESYS V3进行PLC编程(二)

教程背景 在上一期教程中,我们已经完成了控制器设备的连接和配置。接下来的教程将继续以宏集MC-Prime为例,假设控制器已经配置并连接到开发者的PC上,为您演示如何为控制器安装合适的CODESYS V3版本并创建第一个程序。 一、安装CODESYS &…

HarmonyOS ArkTS 保存应用数据(十)

1 概述 在移动互联网蓬勃发展的今天,移动应用给我们生活带来了极大的便利,这些便利的本质在于数据的互联互通。因此在应用的开发中数据存储占据了非常重要的位置,HarmonyOS应用开发也不例外。 2 什么是首选项 首选项为应用提供Key-Value键…