4_回归算法(算法原理推导+实践)

news2024/10/7 12:17:52

文章目录

  • 1 线性回归
    • 1.1 定义
    • 1.2 题目分析
    • 1.3 误差项分析
    • 1.4 目标函数推导
    • 1.5 线性回归求解
    • 1.6 最小二乘法的参数最优解
  • 2 目标函数(loss/cost function)
  • 3 模型效果判断
  • 4 机器学习调参
  • 5 梯度下降算法
    • 5.1 梯度方向
    • 5.2 批量梯度下降算法(BGD)
    • 5.3 随机梯度下降算法(SGD)
    • 5.4 BGD和SGD算法比较
    • 5.5 小批量梯度下降法(MBGD)
    • 5.6 梯度下降法—调优策略
    • 5.7 BGD,SGD,MBGD的区别
  • 6 梯度下降与最小二乘(正规方程)的区别
  • 7 用法(梯度下降、坐标轴下降法)
  • 8 线性回归的扩展
  • 9 线性回归总结
  • 10 局部加权回归—直观理解
    • 10.1 局部加权回归—权重值设置

1 线性回归

Logistic回归:线性回归分析模型
Softmax回归:逻辑回归
梯度下降
特征抽取
线性回归案例

1.1 定义

定义:线性回归通过一个或者多个自变量与因变量之间之间进行建模的回归分析。其中特点为一个或多个称为回归系数的模型参数的线性组合

  • 从机器学习的角度来讲,用于构建一个算法模型(函数)来做属性(X)与标签(Y)之间的映射关系,在算法的学习过程中,试图寻找一个函数h:Rn->R使得参数之间的关系拟合性最好。
  • 回归算法中算法(函数)的最终结果是一个连续的数据值,输入值(属性值)是一个d维度的属性/数值向量

优点:结果易于理解,计算不复杂

缺点:对非线性的数据拟合不好

适用数据类型:数值型和标称型

一元线性回归:涉及到的变量只有一个

多元线性回归:涉及到的变量两个或两个以上

1.2 题目分析

  • 数据:工资和年龄(2个特征)
  • 目标:预测银行会贷款给我多少钱(标签)
  • 考虑:工资和年龄都会影响最终银行贷款的结果那么它们各自有多大的影响呢?(参数)
工资(X1年龄(X2额度(y)
40002520000
80003070000
50002835000
75003350000
120004085000

解释:

  • 假设X1,X2就是我们的两个特征(工资,年龄),Y是银行最终会借给我们多少钱
  • 线性回归呢就是找到最合适的一条线(想象一个高维)来最好的拟合我们的数据点,那么这个地方因为自变量涉及两个,所以最终目的就是找出一个拟合平面。
    在这里插入图片描述

求解:

  • 假设θ1是工资的参数, θ2是年龄的参数。
  • 拟合的平面:(θ0是偏置项,θ1,θ2为权重)
    在这里插入图片描述
  • 整理得:
    在这里插入图片描述

1.3 误差项分析

  • y(i)为第i个训练样本的真实值

  • hθ(xi)为第i个训练样本特征值组合预测函数

  • 真实值和预测值之间肯定是要存在差异的(用 ε 来表示该误差)

  • 对于每个样本来说,真实值等于预测值加上误差值

在这里插入图片描述

  • 误差ε(i)是独立并且具有相同的分布,并且服从均值为0方差为θ2的高斯分布(正态分布)。(独立同分布)注意是假设。(原因:中心极限定理)
  • 独立:张三和李四一起来贷款,他俩没关系。
  • 同分布:他俩都来得是我们假定的这家银行(比如中华银行)。
  • 高斯分布:银行可能会多给,也可能会少给,但是绝大多数情况下这个浮动不会太大,极小情况下浮动会比较大,符合正常情况。

在这里插入图片描述

1.4 目标函数推导

最小二乘法是用似然函数一步步估计得来的。
在这里插入图片描述

1.5 线性回归求解

在这里插入图片描述
在这里插入图片描述

1.6 最小二乘法的参数最优解

在这里插入图片描述
在这里插入图片描述

X为特征值矩阵,y为目标值矩阵

缺点:当特征过于复杂,求解速度太慢

对于复杂的算法,不能使用正规方程求解(逻辑回归等)

2 目标函数(loss/cost function)

目标函数或者损失函数越小越好。

在这里插入图片描述

3 模型效果判断

  • MSE:误差平方和,越趋近于0表示模型越拟合训练数据。

在这里插入图片描述

  • RMSE:MSE的平方根,作用同MSE

在这里插入图片描述

  • R2:取值范围(—∞,1],值越大表示模型越拟合训练数据;最优解是1;当模型预测为随机值的时候,有可能为负;若预测值恒为样本期望,R2为0

在这里插入图片描述

  • TSS:总平方和TSS(Total Sum of Squares),表示样本之间的差异情况,是伪方差的m倍
  • RSS:残差平方和RSS(Residual Sum of Squares),表示预测值和样本值之间的差异情况,是MSE的m倍

4 机器学习调参

  • 在实际工作中,对于各种算法模型(线性回归)来讲,我们需要获取θ、λ、p的值;θ的求解其实就是算法模型的求解,一般不需要开发人员参与(算法已经实现),主要需要求解的是λ和p的值,这个过程就叫做调参(超参)
  • 交叉验证:将训练数据分为多份,其中一份进行数据验证并获取最优的超参:λ和p;比如:十折交叉验证、五折交叉验证(scikit-learn中默认)等。

5 梯度下降算法

在这里插入图片描述

5.1 梯度方向

在这里插入图片描述

5.2 批量梯度下降算法(BGD)

一次性对m条数据进行操作,m条数据更新一次θ值。
在这里插入图片描述

5.3 随机梯度下降算法(SGD)

m条数据更新m次 ,相对来讲,迭代次数更快

在这里插入图片描述

5.4 BGD和SGD算法比较

  • SGD速度比BGD快(迭代次数少);
  • SGD在某些情况下(全局存在多个相对最优解 / J(θ)不是一个二次),SGD有可能跳出某些小的局部最优解,所以不会比BGD坏;
  • BGD一定能够得到一个局部最优解(在线性回归模型中一定是得到一个全局最优解),SGD由于随机性的存在可能导致最终结果比BGD的差;
  • 注意:优先选择SGD

5.5 小批量梯度下降法(MBGD)

如果即需要保证算法的训练过程比较快,又需要保证最终参数训练的准确率,而这正是小批量梯度下降法(Mini-batch Gradient Descent,简称MBGD)的初衷。MBGD中不是每拿一个样本就更新一次梯度,而且拿b个样本(b一般为10)的平均梯度作为更新方向。
在这里插入图片描述

5.6 梯度下降法—调优策略

由于梯度下降法中负梯度方向作为变量的变化方向,所以有可能导致最终求解的值是局部最优解,所以在使用梯度下降的时候,一般需调优策略:

  • 学习率的选择:学习率过大,表示每次迭代更新的时候变化比较大,有可能会跳过最优解;学习率过小,表示每次迭代更新的时候变化比较小,就会导致迭代速度过慢,很长时间都不能结束;

  • 算法初始参数值的选择:初始值不同,最终获得的最小值也有可能不同,因为梯度下降法求解的是局部最优解,所以一般情况下,选择多次不同初始值运行算法,并最终返回损失函数最小情况下的结果值;

  • 标准化:由于样本不同特征的取值范围不同,可能会导致在各个不同参数上送代速度不同,为了减少特征取值的影响,可以将特征进行标准化操作。

5.7 BGD,SGD,MBGD的区别

  • 当样本量为m的时候,每次迭代BGD算法中对于参数值更新一次,SGD算法中对于参数值更新m次,MBGD算法中对于参数值更新m/n次,相对来讲SGD算法的更新速度最快;
  • SGD算法中对于每个样本都需要更新参数值,当样本值不太正常的时候,就有可能会导致本次的参数更新会产生相反的影响,也就是说SGD算法的结果并不是完全收敛的,而是在收敛结果处波动的;
  • SGD算法是每个样本都更新一次参数值,所以SGD算法特别适合样本数据量大的情况以及在线机器学习(Online ML)

6 梯度下降与最小二乘(正规方程)的区别

在这里插入图片描述

7 用法(梯度下降、坐标轴下降法)

  • 只要且标函数是凸函数,就使用梯度下降—>普通的线性回归和L2-norm线性回归
  • 坐标轴下降法—>L1-norm

8 线性回归的扩展

  • 线性回归针对的是θ而言,对于样本本身而言,样本可以是非线性的
  • 也就是说最终得到的函数f:x->y;函数f(x)可以是非线性的,比如:曲线等

在这里插入图片描述

9 线性回归总结

在这里插入图片描述

10 局部加权回归—直观理解

在这里插入图片描述

10.1 局部加权回归—权重值设置

  • w(i)是权重,它根据要预测的点与数据集中的点的距离来为数据集中的点赋权值。当某点离要预测的点越远,其权重越小,否则越大。常用值选择公式为:
    在这里插入图片描述
  • 该函数称为指数衰减函数,其中k为波长参数,它控制了权值随距离下降的速率
  • 注意:使用该方式主要应用到样本之间的相似性考虑,主要内容在SVM中再考虑(核函数)

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

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

相关文章

Spring IOC容器及DI相关概念

文章目录 一、组件、框架、容器的相关概念1.组件2.框架3.容器4.总结 二、IOC与DI简介1.IOC入门案例2.DI入门案例 一、组件、框架、容器的相关概念 1.组件 组件是为了代码的重用而对代码进行隔离封装,组件的呈现方式是单个或多个.class文件,或者打包的.…

Flutter的手势识别功能实现GestureDetector

GestureDetector简介 GestureDetector 是 Flutter 中一个非常常用的小部件,它提供了许多手势识别的功能,包括点击、双击、长按、拖动、缩放等等。 使用方法 GestureDetector 可以包裹其他部件,当用户在这些部件上进行手势操作时&#xff0…

基于SSM的网辩平台的设计与实现

摘 要 线上作为当前信息的重要传播形式之一,线上辩论系统具有显著的方便性,是人类快捷了解辩论信息、资讯等相关途径。但在新时期特殊背景下,随着网辩的进一步优化,辩论赛结合网络平台融合创新强度也随之增强。本文就网辩平台进…

尧泰汉海五城联动,“益”起圆梦!用爱守护成长,助力502名孩子实现心愿

公益的力量让孩子们的梦想被看见。 文具套装、书包、篮球 、益智积木、生日蛋糕......一个个看似小小的心愿,对于城市里的孩子来说是平常不过的礼物,但却成了许多正处于困境孩子的期待。 本次活动由重庆市慈善总会指导,Home尧泰汉海慈善专项…

【项目】ROS下使用乐视深度相机LeTMC-520

本文主要记录如何在ros下使用乐视深度相机。乐视三合一体感摄像头LeTMC-520其实就是奥比中光摄像头(Orbbec Astra Pro) 系统:Ubuntu20.04 这款相机使用uvc输入彩色信息,需要使用libuvc、libuvc_ros才能在ROS上正常使用彩色功能。…

k8s实战2-用minikube发布本地应用

官网的教程中,hello-minikube其镜像都在网上(dockerhub)上,如何把本地打包的docker镜像发布到minikube中 1 终端上运行eval $(minikube docker-env) 此命令的作用是使用Minikube Docker守护进程,跟原来docker desktop的docker进程区别开来 …

FPGA深层解析

概览 高端设计工具为少有甚是没有硬件设计技术的工程师和科学家提供现场可 编程门阵列(FPGA)。无论你使用图形化设计程序,ANSI C语言还是VHDL语言, 如此复杂的合成工艺会不禁让人去想FPGA真实的运作情况。在这个芯片中的程 序在这些可设置硅片间到底是如何工作的。本书会使…

腾讯云2核4G5M服务器性能如何?来说说CPU内存带宽系统盘

腾讯云轻量应用服务器2核4G5M配置一年168元,三年628元,100%CPU性能,5M带宽下载速度640KB/秒,60GB SSD系统盘,月流量500GB,折合每天16.6GB流量,超出月流量包的流量按照0.8元每GB的支付流量费&…

SKY13330-397LF国产替代ATR5330 SUB-1G SPDT开关芯片

1.1 芯片简介 ATR5330是一款采用CMOS SOI工艺制作的单刀双掷开关单芯片,该芯片的推荐工作频率20MHz-4GHz, 开关芯片采用单电源供电控制,有非常低的电流功耗。开关开启工作时有非常低的插入损耗以及非常高的线性度。 1.2主要特征 频率范围: 0.…

项目管理:如何利用工具做好工作汇报?

我们公司曾经经历了一次惨痛的教训。我们为一家重要的大客户提供咨询服务,但在项目结束时,我们的项目负责人在电梯间遇见了客户的总经理,被问及项目结果时,却无法在短时间内清晰地表达出来。这一失误导致我们失去了这位重要客户。…

什么是跳表

什么是跳表 跳表全称为跳跃列表,它允许快速查询,插入和删除一个有序连续元素的数据链表。跳跃列表的平均查找和插入时间复杂度都是O(logn)。快速查询是通过维护一个多层次的链表,且每一层链表中的元素是前一层链表元素的子集(见右…

【Redis】Redis 内存回收

文章目录 1. 过期key处理1.1 惰性删除1.2 周期删除 2. 内存淘汰策略 Redis 中数据过期策略采用定期删除惰性删除策略结合起来,以及采用淘汰策略来兜底。 定期删除策略:Redis 启用一个定时器定时监视所有的 key,判断key是否过期,过…

大语言模型技术原理

在今天这个时代,人们的工作和生活已经离不开数据访问,而几乎所有平台背后的数据存储和查询都离不开数据库。SQL作为一种数据库的查询和处理语言历史悠久,最早由IBM于上世纪70年代初研究关系数据模型时提出,后续发展为一种广泛使用…

Python实战基础15-匿名函数,高阶函数

1、匿名函数 用lambda关键词能创建小型匿名函数,这种函数得名于省略了用def声明函数的标准步骤。 lambda函数的语法只包含一个语句,如下: lambda 参数列表: 运算表达式 如下实例: sum lambda arg1,arg2:arg1 arg2…

Coursera—Andrew Ng机器学习—课程笔记 Lecture 5 Octave Tutorial

未完待续。。。。。 5.1 基本操作 参考视频: 5 - 1 - Basic Operations (14 控制输出格式的长短 min).mkv 5.1.1 简单运算 不等于符号的写法是这个波浪线加上等于符号 ( ~ ),而不是等于感叹号加等号( ! ) 1 1 1   % 判断相等 2 1 ~ 2   % 判断不等 3 …

【AUTOSAR】Com通讯栈配置说明(一)---- Can模块

通讯栈 模块 项目通讯栈 主要包含如下几个模块: 各模块详细配置说明 Can模块 这部分最终会导入到EB 中,通过EB 生成CanDriver 代码, 具体参数的介绍已经在EB 配置说明中介绍过。 CanController ​​​​​​​CanHaredWareObject 以其中一…

Unity3D:2D/3D 项目

推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 2D 还是 3D 项目 无论是创建 2D 还是 3D 游戏,Unity 都很拿手。在 Unity 中创建新项目时,可以选择以 2D 或 3D 模式启动。您可能已经知道要构建什么&#x…

1-网络初识——网络发展史

目录 1.独立模式 2.网络互联 2.1.局域网(Local Area Network,简称LAN) ①基于网线直连 ②基于集线器组建 ③基于交换机组建 ④基于交换机(网口很多)和路由器组建 2.2.广域网(Wide Area Network&…

MySQL新身份验证插件caching_sha2_password

同事反馈了一个问题,MySQL客户端连接数据库的时候,提示这个错误, ERROR 2059 (HY000): Plugin caching_sha2_password could not be loaded: /usr/lib64/mariadb/plugin/caching_sha2_password.so: cannot open shared object file: No suc…

中国码农生存现状调查

传说中的码农到底是一种什么样的存在。 程序员一直都是一个备受人们关注的群体。据IDC统计,全球约有1850万名程序员,中国占10%。随着近年全国互联网创业热潮的兴起,“互联网”、“云计算”以及“智能硬件”等领域发展迅速,市场对…