首页 > 其他分享 >动手学机器学习入门之Day2-梯度下降和多元线性回归

动手学机器学习入门之Day2-梯度下降和多元线性回归

时间:2024-06-02 16:57:42浏览次数:25  
标签:入门 梯度 模型 Day2 多元 学习 线性 回归

前言

前面我们已经学习的最小二乘法属于多元线性回归的主要概念,所以在看这篇文章之前,请确保你已经了解了最小二乘法,详情请见我的博客动手学机器学习入门之Day1。

在机器学习领域,梯度下降和多元线性回归是两个至关重要的概念,它们为我们理解和构建复杂模型提供了基础。梯度下降作为一种优化算法,帮助我们调整模型参数以最小化损失函数,从而使模型更好地拟合数据。而多元线性回归则是一种经典的回归分析方法,用于建立因变量与多个自变量之间的线性关系。

在本文中,我们将深入探讨梯度下降算法的工作原理,以及如何应用它来优化模型参数。我们还将探讨多元线性回归模型的基本概念,包括如何建立模型、估计回归系数以及评估模型性能。

最后,我会用skicit-learn中SGDRegressor模型来搭建一个可以进行二元回归的模型,并且使用plotly库来对数据进行一个可视化。

通过学习梯度下降和多元线性回归,您将能够更好地理解机器学习模型的训练过程,并掌握构建和优化模型的关键技能。让我们一起深入探讨梯度下降和多元线性回归,为您的机器学习之旅增添新的知识和技能。

原理

梯度下降(Gradient Descent)

直观解释

想象你站在一座大山的某个位置,你的目标是走到山脚。但是你眼睛被蒙上了,你只能通过脚下的感觉来判断前进的方向。梯度下降就好比你在尝试走下山的过程。

  1. 起点选择:你从某个位置开始下山,这个位置对应于初始的模型参数。

  2. 下山步骤:你每向前迈出一步,都会感受到脚下坡度的陡峭程度,这个坡度就好比函数在当前位置的梯度(斜率)。

  3. 调整方向:如果你感觉坡度变陡了,你就朝着坡度最陡的方向走;如果坡度变缓了,你就朝着坡度变陡的方向走。这样,你会逐渐朝着山脚走去。

  4. 调整步长:你可以控制每一步的大小,这就是学习率。步子太大可能会导致你跨过山脚,步子太小可能会让你走的太慢。

  5. 收敛:最终,当你走到山脚时,你就找到了函数的最小值,也就是模型的最佳参数。

梯度下降就是通过不断调整模型参数,沿着损失函数梯度的反方向,逐步优化模型,使其更好地拟合数据。这个过程就像是在找到函数的最低点,从而使模型的预测能力达到最优。

主要概念:

梯度下降是一种优化算法,用于最小化函数的值。在机器学习中,它通常用于调整模型参数以最小化损失函数。

  1. 学习率(Learning Rate):控制每次参数更新的步长,过大可能导致震荡,过小可能导致收敛速度慢。

  2. 损失函数(Loss Function):衡量模型预测值与真实值之间的差异,常见的损失函数包括均方误差(MSE)和交叉熵损失等。

梯度下降公式:

梯度下降的更新规则通常如下所示:

其中:

  • θ 是要更新的参数向量。
  • α 是学习率。
  • J(θ) 是损失函数。
  • ∇J(θ) 是损失函数关于参数向量的梯度。

多元线性回归(Multiple Linear Regression)

多元线性回归是一种回归分析方法,用于预测因变量与一个或多个自变量之间的关系。

主要概念:
  1. 多元线性回归模型:用于描述因变量与多个自变量之间线性关系的模型

其中:

相关文章

  • WinDbg 调试实战入门 - 调试第三方程序(记事本)
       专栏  ┇ 『Debug』『Debug』 上一篇  ┇ 《WinDbg源码级调试C++程序》WinDbg源码级调试C++程序_c++windbg调试经典项目解析-CSDN博客https://blog.csdn.net/weixin_41863029/article/details/138963604        在上一篇 《WinDbg源码级调......
  • Docker —— 从入门到实践 (yeasy)高清电子版pdf百度云
    书:pan.baidu.com/s/1-uwg0rd__HXJJvc9Gj7C8w?pwd=xrgo提取码:xrgoDocker概述:介绍Docker是什么,它的历史、特点以及为什么需要Docker。Docker安装与配置:指导读者如何在不同的操作系统上安装和配置Docker。Docker基础:讲解Docker的基本概念,如镜像、容器、Docker引擎等。Dockerfile......
  • 线段树入门(Segment Tree)
    线段树入门(SegmentTree)基本线段树与树状数组功能类似,实现了点的修改与区间的查询:首先实现基本的线段树的构建:#include<iostream>#include<vector>usingnamespacestd;classsegmentTree{public:segmentTree(intn,vector<int>nums){size=4*n;......
  • 机器学习笔记(1): 梯度下降算法
    本文作为我看过#吴恩达机器学习系列课程的产物,并不适用于一无所知的学习者。在机器学习中,有三个很重要的函数:\(h_\theta(x)\)表示预测数据\(J(\theta)\)代价函数,表示预测和实际的差距,\(J(\theta)\ge0\),且\(J(\theta)\)值越小,差距越小。\(\frac{\delta}{\delta\t......
  • 感觉是通俗易懂的大模型入门(一)
    最近人工智能非常火爆,大家可能经常听到AI、深度学习、大语言模型等名词。但真正能够将它们拆开来细致讲解的内容并不多。我大学就是学这个的,毕业后一直从事这个领域的工作。所以我打算今年陆续做一些这方面的科普,也借此机会复习巩固一下自己的知识体系。今天就算是第一期,......
  • Unity2D游戏制作入门 | 02
    上期链接:Unity2D游戏制作入门|01我们先整理我们的场景素材并调整一些参数,选中我们的Forest1,就是如下图所示了:选择:multiple(多个),16像素,不过滤,不压缩(compression),记得保存设置。开始编辑我们的场景:接下使用Size的模式进行切割:注意锚点我们设置在中心,不然等下放入图片......
  • Unity2D游戏制作入门 | 03
    ​上期链接:Unity2D游戏制作入门|02这节的规则瓦片其实是上一节用Tile去绘制地图的补充吧,假设你有大量而且面积还挺大的地图工程量,我想画的时间还是很久的,规则瓦片就是为了解决这种问题。所以所谓规则瓦片就是有一部分地方是固定绘制的,然后有一些地方是随机出现的素材(比......
  • Unity2D游戏制作入门 | 04
    上期连接:Unity2D游戏制作入门|03(主要介绍了快速绘图的瓦片调色盘功能)本节主要介绍物体的组件功能。如果我们点击我们的物体,然后你可以在最右侧的下部分看到英文:AddComponent,中其实是添加组件的意思。AI是这么回答组件的:组件(Components)是构建游戏对象(GameObjects)的核......
  • ctfshow-web入门-信息搜集(web11-web20)
    目录1、web112、web123、web134、web145、web156、web167、web178、web189、web1910、web201、web11域名其实也可以隐藏信息,比如flag.ctfshow.com就隐藏了一条信息 查询域名的DNS记录,类型为TXT(域名的说明)但是这里无论是用命令还是网站都没有查到命令:n......
  • 数据库(入门)
    文章目录          一、数据库(DB)二、数据库管理系统(DBMS)三、SQL(结构化查询语言)四、三者的关系五、端口号(portnumber)一、数据库(DB)定义:按照一定格式存储数据的一些文件的组合。简单来说:存储数据的仓库,实际上就是一堆文件,这些文件中存储了具有......