【机器学习】线性回归模型(Linear Regression)

news2024/11/18 13:38:37
  • 🌸博主主页:@釉色清风
  • 🌸文章专栏:机器学习
  • 🌸今日语录:温柔的一半是知识,没有知识的涵养撑不起你想要的风骨。

☘️0文章预览

本系列文章主要是根据吴恩达老师的机器学习课程以及自己的理解整合而成,是对知识的回顾,也方便之后的复习。
本篇文章主要内容是机器学习中最基础目前世界上使用也最广泛的模型——线性回归模型,同时,你也可以从本篇文章了解到机器学习中监督学习的整个过程。

☘️1举例(Linear Regression Example)

在理解线性回归模型时,我们要举一个可以用线性回归模型解决的问题。
回看前几篇文章,讲到监督学习和无监督学习并举了其中的一些例子,我们此时采用我们在监督学习中学习理解回归问题时举的例子——根据房屋大小预测房价(House sizes and prices)。
我们使用的数据集是波特兰的当地数据,根据波特兰当地的房屋大小和对应价格树首先现在表格中绘制点。

现在,假如你是一名房地产经纪人,若有一位客户想要卖掉她的房子,根据她的房屋的大小,你能预测出相对应的合理的价格吗?
为了合理的估计,我们肯定需要采用以往的真实的数据,也就是现在画在图表中的每一个红色的小叉来进行合理的预估。
首先,最直观且最容易理解的,你一定首先想到了线性回归,即根据你的数据画出一条直线来尽可能更好地拟合这些数据。
如下图所示。

此时,若你的客户的房屋的大小是1250平方英尺,则可以根据我们的模型,而预估出房屋的价格。
如下图所示。

所以,我们来简单总结一下这个例子。这是一个典型的监督学习中的回归问题的预测问题,即输入一个x,需要根据模型输出一个相对应的y。(因为一个输入,就会有一个输出,所以属于监督学习;因为价格是连续的数字,所以是回归问题。)对于回归问题的预测,我们需要根据源数据集确定一个模型,使得我们随机给出一个合理的输入房屋的大小,就会有一个输出。而在上面这个例题中我们采用的是监督学习中的一类特殊简单的模型——线性回归模型。(当然还有一些其他的模型,我们在后面会讲到。)

☘️2监督学习的过程

  • 🌾首先,我们需要读入数据(训练集)[Training Set]。

我们根据我们得到的每一组数据(包括房屋的大小和房屋的价格)读入,在这里,为了更快了解监督学习的过程,我们用图表在直观理解。

我们将每一组数据相对应的画入图表中。此时,每一个小叉就代表一组数据。
我们假设我们原来的数据表有47行,即原来有47组数据,依次画入表中。
如下图所示。

  • 🌾了解训练集及相关符号表示

上面我们用来训练预测模型的原始数据,对应这个例子,就是波兰特的47组房屋大小-价格的数据,就被称为训练集。

🍃输入变量:在机器学习中,表示输入的数据称为输入变量,标准符号是小写的 x x x,也称为特征和输入特征。
即:
x = " i n p u t " v a r i a b l e ( f e a t u r e ) x="input"variable(feature) x="input"variable(feature)
🍃输出变量:在机器学习中,表示我们试图预测的输出,称为输出变量,标准符号是小写的 y y y,有时也称为目标变量。
即:
y = " o u t p u t " v a r i a b l e ( " t a r g e t " v a r i a b l e ) y="output"variable("target"variable) y="output"variable("target"variable)

🍃训练样本的总数:在本例子中,数据集有47行,每一行代表不同的训练示例,我们使用小写的 m m m来表示训练样本的总数。所以,在这个训练集中, m = 47 m=47 m=47

🍃单个训练示例:为了表示单个训练示例,我们使用 ( x , y ) (x,y) (x,y)来表示。例如,对于第一个训练示例而言,它的表示为 ( x , y ) = ( 2104 , 400 ) (x,y)=(2104,400) (x,y)=(2104,400)
对于整个训练而言,我们有47个训练示例,为了表示方便,我们进行编号,在x以及y上加入右坐标,例如,对于第i个示例,表示为 ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i))。那么此时,我们可以将第一组数据更准确地表示为 ( x ( 1 ) , y ( 1 ) ) = ( 2104 , 400 ) (x^{(1)} ,y^{(1)})=(2104,400) (x(1),y(1))=(2104,400)

  • 🌾训练模型

训练模型时,我们需要将训练集(包括输入特征[features]和输出目标[targets])提供给学习算法。
然后,学习算法通过不断地训练数据,产生函数f。(至于学习算法是如何学习且不断达到最优模型时,这与后面的损失函数有关,以及采用不同的算法会达到不同的效果,例如常用的随机梯度下降法等。在这时,我们就可以先跳过学习算法调优这一步骤。此时的函数f即是调优后的模型最终表示。)

🍃 f的作用:就是采用新输入的x,产生一个新的预测并输出y,但此时的y只是预测值,我们写作 y ^ \hat y y^

此时,我们要特别强调 y y y y ^ \hat y y^的区别。 y y y是训练集中的真实值,而 y ^ \hat y y^只是一个估计值,它可能是可能不是真实价格,它只是我们当下预测的房子的价格,具体价格需要等到房子出售之后才能知道。

  • 🌾确定模型(f)——How to represent f?

首先,在前面讲到,我们将采用线性回归模型来进行房屋价格的预测,在这个例子中,更准确地说是一个一元线性回归线性模型,因为我们的输入只有一个输入特征 x x x,所以称之为一元,也可以说是单变量。那么我们可以根据我们定的模型写出其具体表达式。
即如下图所示:

只是刚开始我们还不知道参 w w w b b b的值。
确定参数 w w w b b b的最优值,需要学习算法从数据中大量学习,并生成最优效果。(参数值的确定更取决了我们算法的选择。)

今天的学习就到这里了!下一篇总结成本函数,成本函数是机器学习中最普遍和最重要的思想之一,明天继续加油💪!

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

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

相关文章

【GO开发工程师】grpc进阶#golang

【GO开发工程师】grpc进阶#golang 推荐个人主页:席万里的个人空间 文章目录 【GO开发工程师】grpc进阶#golang1、protobuf2、grpc2.1、gRPC 的 Metadata机制2.2、grpc拦截器 1、protobuf syntax "proto3"; // 指定使用的 protobuf 版本为 proto3 import…

react-JSX基本使用

1.目标 能够知道什么是JSX 能够使用JSX创建React元素 能够在JSX中使用JS表达式 能够使用JSX的条件渲染和列表渲染 能够给JSX添加样式 2.目录 JSX的基本使用 JSX中使用JS表达式 JSX的条件渲染 JSX的列表渲染 JSX的样式处理 3.JSX的基本使用 3.1 createElement()的问题 A. …

基于Springboot的计算机知识竞赛网站(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的计算机知识竞赛网站(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结…

Python学习 day05(异常、模块导入、包)

异常 为什么要捕获异常 当程序遇到了BUG,如果不对BUG进行手动捕获,那么整个程序就会因为一个BUG而停止运行,这在有些情况下是会造成很大的损失,但是如果我们进行了手动捕获,那么整个程序会继续运行捕获异常的作用在于&…

ubantu与windows文件传输(filezilla)

ubantu与windows文件传输(filezilla) windowsubantu20.04Fliezilla windows 到官网下载filezilla:https://www.filezilla.cn/,并安装。 ubantu20.04 1、安装vim sudo apt-get install vim2、安装FTP服务 sudo apt-get instal…

【机器人最短路径规划问题(栅格地图)】基于遗传算法求解

基于遗传算法求解机器人最短路径规划问题(栅格地图)的仿真结果 仿真结果: 路径长度的变化曲线: 遗传算法优化后的机器人避障路径:

Python入门学习:if语句与条件控制--and、or、in、not in详解与实践

Python入门学习:if语句与条件控制–and、or、in、not in详解与实践 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1…

[AIGC] JDK17中的Record类介绍

文章目录 什么是Record类Record类的特点Record类实践 我们都知道,从Java 14开始, JEP 359 推出了一个新的类型声明Record,Record 类型用来模拟不可变的数据结构,它能产生一个类包含一定数量的只读字段。 什么是Record类 在JDK14中引入了一…

jetson nano——编译安装PySide2

目录 1.打开我提供的文件or官网自己下载(需对应PyQt5的版本)2.解压文件3.进入目录4.安装clang5. 编译安装6.报错: error: ‘NPY_ARRAY_UPDATEIFCOPY’ was not declared in this scope7.又报错:error: ‘NPY_ARRAY_UPDATEIFCOPY’ was not de…

Yapi部署

【GO开发工程师】Yapi部署 推荐个人主页:席万里的个人空间 文章目录 【GO开发工程师】Yapi部署1、Yapi部署 1、Yapi部署 初始化yapi: git clone https://github.com/Ryan-Miao/docker-yapi.git cd docker-yapi docker-compose upyapi启动失败 1.cd进入…

MySQL里的两个“二次”

文章中所有图片均来自网络 一、double write 第一个二次是mysql一个崩溃恢复很重要的特性-重复写入。 doublewrite缓冲区是位于系统表空间中的存储区域,在该区域中,InnoDB会在将页面写入数据文件中的适当位置之前,从InnoDB缓冲池中刷新这些页…

海量物理刚体 高性能物理引擎Unity Physics和Havok Physics的简单性能对比

之前的博客中我们为了绕过ECS架构,相当于单独用Batch Renderer Group实现了一个精简版的Entities Graphics,又使用Jobs版RVO2实现了10w人同屏避障移动。 万人同屏对抗割草 性能测试 PC 手机端 性能表现 弹幕游戏 海量单位同屏渲染 锁敌 避障 非ECS 那么有…

dolphinscheduler海豚调度(三)SQL任务

在之前的博文中,我们已经介绍了DolphinScheduler海豚调度的基本概念和模块,安装部署和元数据切换,以及Shell任务的实践。今天,让我们来深入探讨DolphinScheduler中另一种常见的任务类型:SQL任务。 SQL任务是DolphinSc…

嵌入式学习 Day 26

数组指针和指针数组 (题外话) 数组指针:数组指针是一种指针,它指向一个数组的首地址。在C语言中,数组名本身就是一个指向数组首地址的指针,因此数组名可以被赋值给指针变量&#xff0c…

07 Qt自绘组件:图片预览小组件ImageViewer

系列文章目录 01 Qt自定义风格控件的基本原则-CSDN博客 02 从QLabel聊起:自定义控件扩展-图片控件-CSDN博客 03 从QLabel聊起:自定义控件扩展-文本控件-CSDN博客 04 自定义Button组件:令人抓狂的QToolButton文本图标居中问题-CSDN博客 0…

使用Jenkins部署前端Vue项目和后端Java服务

Jenkins安装相关插件,供后续使用(Dashboard - Manage Jenkins - Plugins) Maven Integration plugin https://plugins.jenkins.io/maven-plugin CloudBees Docker Build and Publish pluginhttps://plugins.jenkins.io/docker-build-publish…

Unity中的UI系统之GUI

目录 概述工作原理和主要作用基础控件重要参数及文本和按钮多选框和单选框输入框和拖动条图片绘制和框 复合控件工具栏和选择网络滚动视图和分组窗口 自定义整体样式自定义皮肤样式 概述 什么是UI系统 UI是User Interface(用户界面)的简称,用…

【pytorch】函数记录

你好你好! 以下内容仅为当前认识,可能有不足之处,欢迎讨论! 文章目录 torch.sum()torch.argmax()torch.nn.Parametertorch.unbindtorch.optim.Adam()[^adam]torch.cattorch.unsqueeze()torch.normalize()[^l2]torch.eyetorch.mmto…

网站https证书申请方式

网站HTTPS证书,也称为SSL证书或TLS证书,是一种数字证书,用于在用户浏览器与网站服务器之间建立安全的加密连接。当网站安装了HTTPS证书后,用户访问该网站时,浏览器地址栏会显示为"https://"开头,…

NoSQL--虚拟机网络配置

目录 1.初识NoSQL 1.1 NoSQL之虚拟机网络配置 1.1.1 首先,导入预先配置好的NoSQL版本到VMware Workstation中 1.1.2 开启虚拟机操作: 1.1.2.1 点击开启虚拟机: 1.1.2.2 默认选择回车CentOS Linux(3.10.0-1127.e17.x86_64) 7 …