机器学习(1)线性回归

前言
  线性回归算法是机器学习深度学习入门的必学的算法,其算法原理虽然简单,但是却蕴含着机器学习中的一些重要的基本思想。许多功能更为强大的非线性模型可在线性模型的基础上通过引入层级结构或高维映射而得。同时机器学习深度学习的核心思想就是优化求解,不断寻找最合适的参数,特别是理解了怎么利用梯度下降法去求解参数,对后续的神经网络的学习有着很大的帮助。

线性回归是一种基本且常用的回归算法,用于预测连续数值。它的核心思想是找到一个线性函数,使得输入特征和输出结果之间的关系能够被较好地描述。下面是线性回归的详细介绍。

1. 线性回归的基本概念

  • 线性回归的目标是找到一个线性方程,使得自变量 X和因变量 Y 之间的关系能够以直线的形式表示。

2. 假设函数与损失函数

  •  

3. 模型训练——最小化损失函数

  • 目标:训练的目的是通过调整模型参数(权重 w 和截距 b)来最小化损失函数。
  • 优化方法:常用的方法是梯度下降法(★),通过反复调整参数,使得损失函数逐渐减小,直到达到一个较小的误差。
梯度下降法步骤

4. 线性回归的实现方法

5. 线性回归的假设

线性回归模型有一些基本假设:

  • 线性关系:特征和目标变量之间的关系是线性的。
  • 同方差性:所有特征的误差方差相同。
  • 独立性:观测之间的误差不相关。
  • 正态性:误差呈正态分布,适用于小数据集。

6. 模型评估

  • 均方误差(MSE):用于衡量预测值与真实值的平方误差。
  • 平均绝对误差(MAE):预测误差的绝对值平均,减小对异常值的敏感性。
  • 决定系数(R^2):表示模型拟合优度。R^2 值在0到1之间,1表示完美拟合,0表示无关性。

7. 优缺点

  • 优点
    • 简单易用,可解释性强,特别适合线性关系数据。
    • 训练速度快,适合快速验证数据。
  • 缺点
    • 对异常值敏感,受线性假设限制,难以捕捉复杂的非线性关系。
    • 仅在满足线性关系、同方差性和正态性假设的数据中表现较好。

8. 线性回归的改进

  • 岭回归:引入正则化项,减少模型对多重共线性的敏感性。
  • Lasso回归:使用L1正则化,能够将不重要的特征权重缩小为零,达到特征选择的效果。
  • 弹性网络回归:结合岭回归和Lasso回归,适用于复杂数据集和特征之间存在强相关的情况。

线性回归因其简单、高效和可解释性广泛应用于各种预测任务,是许多更复杂回归模型的基础。

通常是第二个,2n分之一,因为梯度好计算。

随机梯度下降(SGD,Stochastic Gradient Descent)是梯度下降法的一种变体,它通过对单个样本或小批量样本计算梯度来更新参数,而不是计算所有样本的梯度。这使得它比传统的批量梯度下降(Batch Gradient Descent)更快,尤其在处理大规模数据集时。

1. **基本概念:**

在传统的**批量梯度下降法**中,我们使用所有训练数据来计算梯度并更新参数。对于一个损失函数 更新公式如上
但是,批量梯度下降计算成本高,尤其是在数据集非常大的时候,因为每次都需要计算所有样本的梯度。

随机梯度下降(SGD)的核心思想是:
- 每次迭代只使用一个样本来计算梯度,并立即更新参数。
- 因为每次迭代更新的方向是基于一个样本的梯度,所以参数的更新会比较“噪声”且跳跃,但这样做的优点是每次迭代可以非常快速,适用于大数据集。

2. 随机梯度下降的更新公式:

3. 随机梯度下降的步骤:

1. **初始化参数**:初始化模型参数(例如,权重 \( w \) 和偏置 \( b \))。
2. **随机选择样本**:从训练数据中随机选择一个样本 \( (x_i, y_i) \)。
3. **计算梯度**:计算该样本的损失函数的梯度。
4. **更新参数**:根据计算得到的梯度更新参数 \( w \) 和 \( b \)。
5. **重复步骤2到步骤4**:直到达到最大迭代次数或者损失函数收敛。

梯度下降算法伪代码:

输入:- X: 输入数据集(特征矩阵)- Y: 目标值(标签)- α: 学习率 (learning rate)- max_iterations: 最大迭代次数- 初始化 w 和 b (例如,w = 0, b = 0)步骤:
1. 初始化 w 和 b 为 0 或随机值
2. repeat until convergence {a. 计算预测值:y_pred = w * X + bb. 计算损失函数 L(w, b) 对 w 和 b 的梯度:- 对 w 的梯度: ∂L/∂w = (1/n) * Σ (x_i * (y_i - y_pred_i))- 对 b 的梯度: ∂L/∂b = (1/n) * Σ (y_i - y_pred_i)c. 更新参数:w = w - α * ∂L/∂wb = b - α * ∂L/∂bd. 如果损失值不再变化 (或者达到最大迭代次数), 退出循环
}
3. 返回最终的 w 和 b

随机梯度下降伪代码:

输入:- X: 输入数据集(特征矩阵)- Y: 目标值(标签)- α: 学习率 (learning rate)- max_iterations: 最大迭代次数- 初始化 w 和 b (例如,w = 0, b = 0)步骤:
1. 初始化 w 和 b 为 0 或随机值
2. repeat until convergence {a. 随机选择一个数据点 (x_i, y_i) 从 X 和 Y 中b. 计算预测值:y_pred_i = w * x_i + bc. 计算损失函数 L(w, b) 对 w 和 b 的梯度:- 对 w 的梯度: ∂L/∂w = -x_i * (y_i - y_pred_i)- 对 b 的梯度: ∂L/∂b = -(y_i - y_pred_i)d. 更新参数:w = w - α * ∂L/∂wb = b - α * ∂L/∂be. 如果损失函数变化小于某个阈值,退出循环
}
3. 返回最终的 w 和 b
或者
shuffle(xi,yi);打乱所有输入信息的顺序
repeat until convergence{}

总结
  最后来总结一下梯度下降法和最小二乘法的特点:
  梯度下降法的适用范围比较广泛,在后续的深度学习神经网络的参数求解的时候就是利用梯度下降法对其求解,并且神经网络的参数往往都是几千上万的参数;但是梯度下降法对于较小的数据量来说它的速度并没有优势。
  最小二乘法在数据比较少同时特征比较少的情况下速度往往更快,但是当数量级达到一定的时候,还是梯度下降法更快,因为正规方程中需要对矩阵求逆,而求逆的时间复杂的是n的3次方。
  最后再重申一遍,线性回归是一个很具有代表性的算法,将其学好对于后续的深度学习的学习有着很大的帮助,特别是梯度下降法是后续深度学习的核心所在。

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

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

相关文章

CSS:导航栏三角箭头

用CSS实现导航流程图的样式。可根据自己的需求进行修改,代码精略的写了一下。 注:场景一和场景二在分辨率比较低的情况下会有一个1px的缝隙不太优雅,自行处理。有个方法是直接在每个外面包一个DIV,用动态样式设置底色。 场景一、…

Redis设计与实现 学习笔记 第十七章 集群

Redis集群是Redis提供的分布式数据库方案,集群通过分片(sharding,水平切分)来进行数据共享,并提供复制和故障转移功能。 17.1 节点 一个Redis集群通常由多个节点(node)组成,在刚开…

(11)(2.1.7) FETtec OneWire ESCs(二)

文章目录 前言 3 组态 4 可选功能 5 SITL模拟 6 故障排除 前言 !Note 此功能在固件版本4.1.1及更高版本上可用。 3 组态 FTW掩码 SERVO_FTW_MASK 参数选择将哪些伺服输出(如果有的话)路由到 FETtec ESC。更改此参数后需要重新启动。…

Python Bokeh 数据可视化教程

Python Bokeh 数据可视化教程 引言 在数据科学和分析的过程中,数据可视化是一个至关重要的环节。它不仅能帮助我们更好地理解数据,还能在报告和展示中提升数据的可读性和吸引力。Python 作为数据科学的主要工具之一,提供了多种数据可视化库…

(免费领源码)java#SSM#mysql高校就业数据可视化管理系统的设计与实现81461-计算机毕设 原创

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对高校就业管理等问题,对高校就业…

wordcloud库基本介绍

文章目录 wordcloud库概述wordcloud库的安装 wordcloud库使用说明配置对象参数 wordcloud应用实例实例: 政府工作报告词云 wordcloud库概述 wordcloud是优秀的词云展示第三方库 词云以词语为基本单位,更加直观和艺术地展示文本 wordcloud库的安装 (cmd命令行) pip install …

替换OpenTSDB和HBase,宝武集团使用IoTDB助力钢铁设备智能运维

时序数据库 IoTDB 应用于宝武集团全基地钢铁时序数据管理,激活数据资产,赋能大型设备智能运维。 1. 背景概述 宝武装备智能科技有限公司(以下简称:宝武智维)是中国宝武设备智能运维专业化平台公司,30 余年始…

面试_ABtest原理简介

01 什么是ABtest ABtest来源于假设检验,现有两个随机均匀的有样本组A、B,对其中一个组A做出某种改动,实验结束后分析两组用户行为数据,通过显著性检验,判断这个改动对于我们所关注的核心指标是否有显著的影响&#xf…

Anolis8.2系统中搭建python环境

文章目录 安装依赖项依赖项介绍 下载python源码包安装python源码包 安装依赖项 [rootPython ~]# dnf install -y gcc make zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel xz-devel libffi-devel uuid-devel libnsl2-d…

Gurobi学术版+Anaconda安装步骤

注意:在anaconda虚拟环境中安装gurobi库是不需要在本地下载gurobi这个软件的,只需要conda install gurobi即可,或者指定版本的安装conda install -c gurobi gurobi11.0.3。 step0:安装ananconda step1:获得学术许可&a…

OBOO鸥柏:旗下户外景区自助触摸查询一体机已布局智慧城市便民

OBOO鸥柏作为户外自助查询一体机制造商品牌源头工厂一体化,鸥柏室外液晶广告屏凭借其独特的展览展示交互式查询互动优势,OBOO鸥柏正逐渐成为城市公共服务与商业信息查询的商用及工业液晶显示终端机新标杆。基于智慧城市便民化布局主要体现于以下几点&…

Mysql每日一题(分组+select嵌套查询)

本题我通过自己的努力,利用多个知识点,完成了本题,目前还没有查看题解,一会会给出别人题解的方法,自己写的代码就很很繁琐很麻烦,如果是大佬,可能知道这一题就直接这个窗口函数加这个窗口函数就…

Java并发篇--线程池

线程池 为什么要创建线程池 因为CPU核心数量有限,如果每来一个任务就创建一个线程,就会使线程数远远多于CPU核心数,使线程上下文切换过于频繁,会导致系统性能降低。而且每创建一个线程都会占用一定的内存,如果每来一个任务就创建一个线程,内存消耗太大了。 ThreadPoolExecuto…

ubontu--cuDNN安装

1. 下载 cuDNN https://developer.nvidia.com/cudnn 2. 拷贝到服务器/home/<username>文件夹下 解压缩到当前文件夹&#xff1a; tar -xvf cudnn-linux-x86_64-9.5.1.17_cuda11-archive.tar.xz复制头文件和库文件到cuda安装目录/usr/local/cuda/ sudo cp /home/usern…

Mac终端使用brew命令报错:zsh: command not found: brew

当在终端中出现 zsh: command not found: brew 这个错误时&#xff0c;可能是因为 Homebrew 没有被正确安装&#xff0c;或者它的路径没有被添加到环境变量中。 1. 检查 Homebrew 是否已安装&#xff1a; 打开终端&#xff0c;运行以下命令来检查 Homebrew 是否已安装&#xf…

斯坦福iDP3——改进3D扩散策略以赋能人形机器人的训练:不再依赖相机校准和点云分割(含源码解析)

前言 今天10.23日&#xff0c;明天1024则将作为长沙程序员代表&#xff0c;在CSDN和长沙相关部门举办的1024程序员节开幕式上发言&#xff0c;欢迎广大开发者来长工作 生活 考察 创业&#xff0c;​包括我司七月也一直在招聘大模型与机器人开发人员 后天&#xff0c;则将和相关…

Vue3 -- 项目配置之eslint【企业级项目配置保姆级教程1】

下面是项目级完整配置1➡eslint:【吐血分享,博主踩过的坑你跳过去!!跳不过去?太过分了给博主打钱】 浏览器自动打开项目: 你想释放双手吗?你想每天早上打开电脑运行完项目自动在浏览器打开吗?不要9998,不要998,只要你在我们爱的 package.json 中配置一下即可显示。如…

DataWorks on EMR StarRocks,打造标准湖仓新范式

在大数据领域&#xff0c;数据仓库和实时分析系统扮演着至关重要的角色。DataWorks 基于大数据引擎&#xff0c;为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台&#xff0c;为用户带来智能化的数据开发和分析体验。而阿里云提供的 EMR Serverless St…

谷歌浏览器的实验性功能介绍

谷歌浏览器&#xff08;Google Chrome&#xff09;作为全球最受欢迎的网络浏览器之一&#xff0c;以其快速、稳定和丰富的扩展功能而闻名。除了常见的功能外&#xff0c;Chrome还提供了许多实验性功能&#xff0c;这些功能可以通过启用一些隐藏的标志来访问。本文将详细介绍如何…

Acrobat Pro DC 2023(pdf免费转化word)

所在位置 通过网盘分享的文件&#xff1a;Acrobat Pro DC 2023(64bit).tar 链接: https://pan.baidu.com/s/1_m8TT1rHTtp5YnU8F0QGXQ 提取码: 1234 --来自百度网盘超级会员v4的分享 安装流程 打开安装所在位置 进入安装程序 找到安装程序 进入后点击自定义安装&#xff0c;这里…