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

🚀个人主页:为梦而生~ 关注我一起学习吧!
💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~
💡往期推荐
【机器学习基础】机器学习入门(1)
【机器学习基础】机器学习入门(2)
【机器学习基础】机器学习的基本术语
【机器学习基础】机器学习的模型评估(评估方法及性能度量原理及主要公式)
💡本期内容:本篇文章开始机器学习的模型,我们从最简单的开始,所以从线性的开始,而线性模型中一元的最简单,最基础,所以先讲解一下一元线性回归~超级基础的文章,赶紧收藏学习吧!!!


文章目录

  • 1 线性模型
  • 2 一元线性回归
    • 2.1 引例及模型表示
    • 2.2 代价函数(Cost function)
  • 3 一元梯度下降求参数
    • 3.1 代价函数的简化
    • 3.2 二元的代价函数
    • 3.3 梯度下降
      • 3.3.1 理解梯度下降
      • 3.3.2 利用梯度下降求解线性回归


1 线性模型

给定由d个属性描述的示例x,其中xi是x在第i个属性上的取值,线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即
请添加图片描述
一般用向量形式写成请添加图片描述
w和b学得之后,模型就得以确定


2 一元线性回归

一元线性回归是一种统计分析方法,用于建立一个自变量和一个因变量之间的线性关系模型。在一元线性回归中,只有一个自变量(即解释变量)与一个因变量(即被解释变量)相关。

该模型的目标是找到一个最佳拟合直线,使得该直线能够最好地拟合已知的数据点并预测未知的数据点。最常用的评估拟合程度的指标是最小二乘法,它通过最小化观测值与拟合直线的差距的平方和来确定最佳拟合直线。

一元线性回归的模型可以表示为:Y = β₀ + β₁X + ε 其中,Y 是因变量,X 是自变量,β₀ 和 β₁ 是模型的系数,ε
是随机误差项。

通过一元线性回归,我们可以估计自变量和因变量之间的关系,并进行预测和推断。

以上是官方解释,看不懂没事,我们来举一个经典的例子:

2.1 引例及模型表示

这个例子是关于预测房屋价格的,我们已知这样一个数据集:
在这里插入图片描述
横坐标表示房屋的面积,纵坐标表示房屋的价格。我们的目标是预测在给定房屋面积的情况下,房屋的价格是多少。例如,如果你的朋友的房子是1250平方英尺大小,你可以使用上面的数据集来预测其可能售价。那么,我们应该如何进行预测呢?

你可以构建一个模型,比如拟合一条直线,如上图所示。从这个模型来看,也许你可以告诉你的朋友,他可以以大约220000(美元)左右的价格卖掉这个房子。这其实就是一个回归问题的例子!
在这里插入图片描述
Notation:

  • 𝑚:训练集中实例的数量
  • 𝑥 :特征/输入变量
  • 𝑦 :目标变量/输出变量
  • (𝑥, 𝑦) :训练集中的实例
  • (x(i), y(i)):第𝑖 个观察实例
  • ℎ :学习算法的解决方案或函数也称为假设(hypothesis)

ℎ是一个函数,也是模型,代表的是从输入到输出的一个映射。这里输入是房屋尺寸大小,输出是房屋的价格。
在这里插入图片描述
在一元线性回归模型中如何表示h呢?
在这里插入图片描述
这里表示的就是单变量(一元)线性回归,其图像描述如下图所示:
在这里插入图片描述

回到例子中,我们需要借助h来预测房价。实际上 ,我们是要将训练集(已知的部分数据)“喂”给我们的学习算法,进而学习得到一个函数ℎ,然后将我们要预测的房屋的尺寸作为输入变量输入给ℎ,预测出该房屋的交易价格作为输出变量输出为结果。这个过程类似于在中学学到的求解直线方程,只是需要多次迭代。

那这个迭代过程究竟跟我们中学阶段的求解有什么区别呢?这里就要引出下面这个概念:

2.2 代价函数(Cost function)

对于一元线性函数,每一对参数都可以得到一种曲线的画法
在这里插入图片描述
那么哪一种是最适合的呢?我们用假设函数来表示我们预测结果的模型。那么,这个模型好还是不好呢?我们需要有一个判别标准,这个标准就叫作代价函数。其表示形式如下:

在这里插入图片描述
对于代价函数的解释:

  • 通过训练集我们可以得到假设函数h,即我们建立的模型,
  • y是在这个点相应的ground truth
  • 通过输入测试集的自变量向函数h和y,得出预测出来的结果与实际的结果,让两者相减得到误差,通过误差可以看出我们预测的结果好还是不好
  • 求和再平方相当于求他们的方差,即预测值与真实值的差距的波动程度
  • 们的最终目标就是最小化代价函数

在这里插入图片描述
那么我们现在的问题就转化为了如何利用训练集最小化代价函数


3 一元梯度下降求参数

如何求解代价函数呢?我们通常使用梯度下降的方法。

3.1 代价函数的简化

我们先理解含有一个参数的代价函数。
在这里插入图片描述
下面是当 𝜃1 = 1时的代价函数与假设函数
在这里插入图片描述
下面是 𝜃1 = 0.5时的曲线
在这里插入图片描述
下面做出 𝜃1 = 0 时的曲线并把代价函数所有的点连起来
在这里插入图片描述
由图像我们可以知道,当J( θ 1 \theta _{1} θ1)取最小值时的参数所对应的假设函数是拟合数据最好的直线。

3.2 二元的代价函数

上面是之含有一个参数的代价函数,这里我们把另一个参数加上去,看看怎么求解:
在这里插入图片描述
再利用上面的方法,尝试每一个特殊的点,得到代价函数在坐标系中的位置后将他们连起来,我们就得到了一个二元代价函数,它是一个三维图形
在这里插入图片描述
同样利用上面的方法,遍历每一个参数 θ 0 \theta _{0} θ0 θ 1 \theta _{1} θ1,找到使得代价函数最小的参数。
在这里插入图片描述
在这里插入图片描述

多了一个参数相当于多了一个维度,图像也由一开始的二维拓展到了三维。求代价函数的最小值仍然是我们的目标。
可是要遍历的点太多了,我们怎么知道哪里是最小的点呢?下面介绍求代价函数最小值的方法:梯度下降

3.3 梯度下降

梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降是最常采用的方法之一。

3.3.1 理解梯度下降

举个例子,梯度下降法就是从山顶找一条最短的路走到山谷最低的地方。在这个过程中,每次都会沿着当前点的梯度方向(即函数在该点的斜率)走一步,逐步向最低点靠近。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。
在这里插入图片描述
那么具体到一元线性回归的代价函数,我们如何使用梯度下降呢?

3.3.2 利用梯度下降求解线性回归

接下来我们让梯度下降与线性回归相结合(关键在于对代价函数求偏导):

主要思想如下:
在这里插入图片描述
其中𝑎是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向 向下迈出的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。
在这里插入图片描述
偏导 ( φ φ θ j J ( θ ) ) (\frac{\varphi }{\varphi \theta _{j}}J(\theta )) (φθjφJ(θ))的目的是为了确定下山的方向
在这里插入图片描述
当偏导大于0或小于0时代表了函数的不同增长趋势,与导数的意义相同
在这里插入图片描述
每走一步(每一次迭代)我们都需要确定新的参数,因为只有更新了参数才能确定下一步的方向。
每走一步都计算其梯度,经过不断的迭代,最终就可以找到最小值了

公式的推导
在这里插入图片描述

在这里插入图片描述
这样,我们就可以通过迭代,更快的找到最小值了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

CSS 面试题汇总

CSS 面试题汇总 1. 介绍下 BFC 及其应 参考答案: 参考答案: 所谓 BFC,指的是一个独立的布局环境,BFC 内部的元素布局与外部互不影响。 触发 BFC 的方式有很多,常见的有: 设置浮动overflow 设置为 auto、scr…

【LNMP】云导航项目部署及环境搭建(复杂)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、项目介绍1.1项目环境架构LNMP1.2项目代码说明 二、项目环境搭建2.1 Nginx安装2.2 php安装2.3 nginx配置和php配置2.3.1 修改nginx文件2.3.2 修改vim /etc/p…

精品基于SpringBoot的体育馆场地预约赛事管理系统的设计与实现-选座

《[含文档PPT源码等]精品基于SpringBoot的体育馆管理系统的设计与实现[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功! 软件开发环境及开发工具: Java——涉及技术: 前端使用技术&#…

【尚硅谷】MybatisPlus 学习笔记(下)

目录 六、插件 6.1、分页插件 6.1.1、添加配置类 6.1.2、测试 6.2、xml自定义分页 6.2.1、UserMapper中定义接口方法 6.2.2、UserMapper.xml中编写SQL 6.2.3、测试 6.3、乐观锁 6.3.1、场景 6.3.2、乐观锁与悲观锁 6.3.3、模拟修改冲突 数据库中增加商品表 添加数…

LeetCode 第一题: 两数之和

文章目录 第一题: 两数之和题目描述示例 解题思路Go语言实现 - 一遍哈希表法C实现算法分析 排序和双指针法Go语言实现 - 排序和双指针法C算法分析 暴力法Go语言实现 - 暴力法C算法分析 二分搜索法Go语言实现 - 二分搜索法C算法分析 第一题: 两数之和 ‍ 题目描述 给定一个整…

规则持久化(Sentinel)

规则持久化 基于Nacos配置中心实现推送 引入依赖 <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId> </dependency> 流控配置文件 [{"resource":"/order/flow",…

vue+nodejs+uniapp婚纱定制婚庆摄影系统 微信小程序 springboot+python

目前移动互联网大行其道&#xff0c;人人都手中拿着智能机&#xff0c;手机手机&#xff0c;手不离机&#xff0c;如果开发一个用在手机上的程序软件&#xff0c;那是多么的符合潮流&#xff0c;符合管理者和客户的理想。本次就是开发婚庆摄影小程序&#xff0c;有管理员&#…

k8s学习笔记-基础概念

&#xff08;作者&#xff1a;陈玓玏&#xff09; deployment特别的地方在于replica和selector&#xff0c;docker根据镜像起容器&#xff0c;pod控制容器&#xff0c;job、cronjob、deployment控制pod&#xff0c;job做离线任务&#xff0c;pod大多一次性的&#xff0c;cronj…

【蓝桥杯】拓扑排序

一.拓扑排序 1.定义&#xff1a; 设G&#xff08;V&#xff0c;E&#xff09;是一个具有n个顶点的有向图&#xff0c;V中的顶点序列称为一个拓扑序列&#xff0c;当且仅当满足下列条件&#xff1a;若从顶点到有一条路径&#xff0c;则在顶点序列中顶点必在之前。 2.基本思想…

Vue+SpringBoot打造音乐偏好度推荐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 音乐档案模块2.1.2 我的喜好模块2.1.3 每日推荐模块2.1.4 通知公告模块 2.2 用例图设计2.3 实体类设计2.4 数据库设计 三、系统展示3.1 登录注册3.2 音乐档案模块3.3 音乐每日推荐模块3.4 通知公告模…

【安装】CentOS 7 使用 OUI 图形界面安装 Oracle Database 19.3

需安装使用 X Server 协议的软件&#xff08;如 Xorg&#xff09;和如桌面图形软件&#xff08;Gnome 或 KDE&#xff09;。 使用 root 用户执行&#xff1a; # curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/l…

istio系列教程

istio学习记录——安装https://suxueit.com/article_detail/otVbfI0BWZdDRfKqvP3Gistio学习记录——体验bookinfo及可视化观测https://suxueit.com/article_detail/o9VdfI0BWZdDRfKqlv0r istio学习记录——kiali介绍https://suxueit.com/article_detail/pNVbfY0BWZdDRfKqX_0K …

在Node.js中如何实现用户身份验证和授权

当涉及到构建安全的应用程序时&#xff0c;用户身份验证和授权是至关重要的一环。在Node.js中&#xff0c;我们可以利用一些流行的库和技术来实现这些功能&#xff0c;确保我们的应用程序具有所需的安全性。本篇博客将介绍如何在Node.js中实现用户身份验证和授权。 用户身份验…

“激发无限创意:在线图片制作,点亮你的视觉灵感!“

在数字时代&#xff0c;图片已经成为我们表达创意、分享故事和展示个性的重要方式。然而&#xff0c;你是否曾因为缺乏专业的设计技能或繁琐的制作流程而感到困扰&#xff1f;现在&#xff0c;有了在线图片制作平台&#xff0c;释放你的创意灵感变得前所未有的简单和方便&#…

福特锐界2021plus 汽车保养手册

福特锐界2021plus汽车保养手册两页&#xff0c;零部件保养要求&#xff0c;电子版放这里方便查询&#xff1a;

8-pytorch-损失函数与反向传播

b站小土堆pytorch教程学习笔记 根据loss更新模型参数 1.计算实际输出与目标之间的差距 2.为我们更新输出提供一定的依据&#xff08;反向传播&#xff09; 1 MSEloss import torch from torch.nn import L1Loss from torch import nninputstorch.tensor([1,2,3],dtypetorch.fl…

MySQL——基础内容

目录 第01章_数据库概述 关系型数据库(RDBMS)——表、关系模型 非关系型数据库(非RDBMS) 表、记录、字段 表的关联关系 一对一关联 一对多关系 多对多 自我引用 第02章_MySQL环境搭建 登录命令 常用命令 show databases; create database use 数据库名 show tables 第03章…

五种多目标优化算法(MOCS、MOFA、NSWOA、MOAHA、MOPSO)性能对比(提供MATLAB代码)

一、5种多目标优化算法简介 多目标优化算法是用于解决具有多个目标函数的优化问题的一类算法。其求解流程通常包括以下几个步骤&#xff1a; 1. 定义问题&#xff1a;首先需要明确问题的目标函数和约束条件。多目标优化问题通常涉及多个目标函数&#xff0c;这些目标函数可能…

云原生之容器编排实践-kubectl get pod -A没有coredns

背景 前面搭建的3节点 Kubernetes 集群&#xff0c;其实少了一个组件&#xff1a; CoreDNS &#xff0c;这也是我后面拿 ruoyi-cloud 项目练手时&#xff0c;部署了 MySQL 和 Nacos 服务后才意识到的&#xff1a;发现Nacos无法通过服务名连接MySQL&#xff0c;这里 Nacos 选择…