回归算法优化过程推导

news2025/2/28 18:42:54

假设存在一个数据集,包含工资、年龄及贷款额度三个维度的数据。我们需要根据这个数据集进行建模,从而在给定工资和年龄的情况下,实现对贷款额度的预测。其中,工资和年龄是模型构建时的两个特征,额度是模型输出的目标值。

工资年龄额度
40002520000
80003070000
50002835000
75003350000
120004085000

我们可以根据数据集和相关需求进行公式建模:
y = θ 0 + θ 1 x 1 + θ 2 x 2 + ε = θ T x + ε y = {\theta }_{0} + {\theta }_{1}x_1 + {\theta }_{2}x_2 + \varepsilon = {\theta }^{T}x + \varepsilon y=θ0+θ1x1+θ2x2+ε=θTx+ε
其中, θ 0 \theta _0 θ0 为偏置项, θ 1 \theta _1 θ1 θ 2 \theta _2 θ2 为两个特征 x 1 x_1 x1 x 2 x_2 x2 的权重项, ε \varepsilon ε 为误差项; θ T \theta ^T θT 为一个行向量, x x x 为包含特征 x 1 x_1 x1 x 2 x_2 x2 的矩阵。

θ 1 x 1 + θ 2 x 2 {\theta }_{1}x_1 + {\theta }_{2}x_2 θ1x1+θ2x2 在三维空间中表示的平面会尽可能去拟合所有数据点(目标值),但是这个平面并不一定是拟合度最高的,也许该平面沿着 y y y 维度向上或向下平移一点距离所得到的新平面才是拟合度最高的,因此我们会在该拟合表达式中加上一个偏置项 θ 0 \theta _0 θ0

θ 0 + θ 1 x 1 + θ 2 x 2 {\theta }_{0} + {\theta }_{1}x_1 + {\theta }_{2}x_2 θ0+θ1x1+θ2x2 是给定 x 1 x_1 x1 x 2 x_2 x2 值时,对目标值的预测,预测值与真实值之间必然会存在一个误差,因此我们在该表达式中还需加上一个误差项 ε \varepsilon ε

在这里插入图片描述

对于一个样本而言,公式可以写成如下形式:
y ( i ) = θ T x ( i ) + ε ( i ) ⇒ ε ( i ) = y ( i ) − θ T x ( i ) y^{(i)} = {\theta }^{T}x^{(i)} + \varepsilon ^{(i)} \Rightarrow \varepsilon ^{(i)} = y^{(i)} - {\theta }^{T}x^{(i)} y(i)=θTx(i)+ε(i)ε(i)=y(i)θTx(i)
其中,每个样本的误差 ε ( i ) \varepsilon ^{(i)} ε(i) 都是独立同分布的,服从均值为 0 0 0 的高斯分布。

高斯分布的概率密度函数如下所示:
f ( x ) = 1 2 π σ ⋅ e − ( x − μ ) 2 2 σ 2 f(x) = \frac{1}{\sqrt{2\pi }\sigma }·{e}^{-\frac{{(x-\mu )}^{2}}{2{\sigma }^{2}}} f(x)=2π σ1e2σ2(xμ)2
把误差带入进去,可得到公式:
f ( ε ( i ) ) = 1 2 π σ ⋅ e − ( ε ( i ) ) 2 2 σ 2 = 1 2 π σ ⋅ e − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 f({\varepsilon }^{(i)}) = \frac{1}{\sqrt{2\pi }\sigma }·{e}^{-\frac{{({\varepsilon }^{(i)})}^{2}}{2{\sigma }^{2}}} = \frac{1}{\sqrt{2\pi }\sigma }·{e}^{-\frac{{(y^{(i)} - {\theta }^{T}x^{(i)})}^{2}}{2{\sigma }^{2}}} f(ε(i))=2π σ1e2σ2(ε(i))2=2π σ1e2σ2(y(i)θTx(i))2
该公式表示误差趋于 0 0 0 的概率,或者说预测值 θ T x ( i ) {\theta }^{T}x^{(i)} θTx(i) 趋近于真实值的概率,这个概率自然是越大越好。

在这里插入图片描述

我们的最终目的是要求出最合适的 θ 0 \theta _0 θ0 θ 1 \theta _1 θ1 θ 2 \theta _2 θ2,而似然函数是统计学中用于估计参数的一个函数。因此在给出观测数据的前提下,我们可以利用似然函数来推断出未知的参数值。

构建的似然函数如下所示:
L ( θ ) = ∏ i = 1 m 1 2 π σ ⋅ e − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 L(\theta ) = \displaystyle\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi }\sigma }·{e}^{-\frac{{(y^{(i)} - {\theta }^{T}x^{(i)})}^{2}}{2{\sigma }^{2}}} L(θ)=i=1m2π σ1e2σ2(y(i)θTx(i))2
其中,在各个样本都符合独立同分布的情况下,联合概率密度就等于各样本概率密度的乘积,因此这里用了累乘。

想在乘法中求解出参数 θ \theta θ,也许是一个比较难的事,但如果能把乘法转换成加法,对于参数的求解可能就容易了许多。鉴于此,我们可以使用对数似然函数来进行参数的求解。

构建的对数似然函数如下所示:
l o g L ( θ ) = l o g ∏ i = 1 m 1 2 π σ ⋅ e − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 logL(\theta ) = log\displaystyle\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi }\sigma }·{e}^{-\frac{{(y^{(i)} - {\theta }^{T}x^{(i)})}^{2}}{2{\sigma }^{2}}} logL(θ)=logi=1m2π σ1e2σ2(y(i)θTx(i))2
将上述公式进行展开化简:
l o g L ( θ ) = ∑ i = 1 m l o g 1 2 π σ ⋅ e − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 = m l o g 1 2 π σ + ∑ i = 1 m l o g e − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 = m l o g 1 2 π σ − 1 σ 2 ⋅ 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 logL(\theta ) = \displaystyle\sum_{i=1}^{m}log\frac{1}{\sqrt{2\pi }\sigma }·{e}^{-\frac{{(y^{(i)} - {\theta }^{T}x^{(i)})}^{2}}{2{\sigma }^{2}}} \\= mlog\frac{1}{\sqrt{2\pi }\sigma } + \displaystyle\sum_{i=1}^{m}log{e}^{-\frac{{(y^{(i)} - {\theta }^{T}x^{(i)})}^{2}}{2{\sigma }^{2}}} \\= mlog\frac{1}{\sqrt{2\pi }\sigma } - \frac{1}{{\sigma }^{2}}·\frac{1}{2}\displaystyle\sum_{i=1}^{m}{(y^{(i)} - {\theta }^{T}x^{(i)})}^{2} logL(θ)=i=1mlog2π σ1e2σ2(y(i)θTx(i))2=mlog2π σ1+i=1mloge2σ2(y(i)θTx(i))2=mlog2π σ1σ2121i=1m(y(i)θTx(i))2
我们要让似然函数越大越好,因此上述公式等价于让下述目标函数的目标值越小越好:
J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 J(\theta ) = \frac{1}{2}\displaystyle\sum_{i=1}^{m}{(y^{(i)} - {\theta }^{T}x^{(i)})}^{2} J(θ)=21i=1m(y(i)θTx(i))2
我们首先对上述目标函数进行展开:
J ( θ ) = 1 2 ( X θ − y ) T ( X θ − y ) = 1 2 ( θ T X T − y T ) ( X θ − y ) = 1 2 ( θ T X T X θ − θ T X T y − y T X θ + y T y ) = 1 2 ( 2 X T X θ − X T y − ( y T X ) T ) = X T X θ − X T y J(\theta ) = \frac{1}{2}{(X\theta - y)}^{T}(X\theta - y) \\ = \frac{1}{2}{(\theta ^TX^T - y^T)}(X\theta - y) \\ = \frac{1}{2}(\theta ^TX^TX\theta - \theta ^TX^Ty - y^TX\theta + y^Ty) \\ = \frac{1}{2}(2X^TX\theta - X^Ty - (y^TX)^T) \\ = X^TX\theta - X^Ty J(θ)=21(y)T(y)=21(θTXTyT)(y)=21(θTXTθTXTyyT+yTy)=21(2XTXTy(yTX)T)=XTXTy
根据展开的公式推出参数值:
θ = ( X T X ) − 1 X T y \theta = (X^TX)^{-1}X^Ty θ=(XTX)1XTy
通过这种方法可以进行参数值 θ \theta θ 的求解,但是在上式中, X T X X^TX XTX 不一定是可逆的,也就是说不一定能求解出参数值 θ \theta θ

鉴于上述问题,我们需要考虑使用其他方法来求解合适的 θ \theta θ,而机器学习就是非常好的方法。一个常规的思路是,我们喂给机器一堆数据,然后告诉它该用什么样的方式学习,并让它朝着这个方向去做(目标/损失函数),每一次学习一点,经过多次迭代优化后,最终收敛至一个稳定的状态。

在对目标函数进行求解时,通常会用到梯度下降法来进行优化。梯度下降是一种常用的优化算法,用于求解目标函数的最小值或最大值。它的基本思想是通过迭代的方式,沿着目标函数的负梯度方向逐步更新参数,以逐渐接近最优解。具体来说,对于一个可微的目标函数,我们希望找到使其取得最小值的参数。梯度下降通过以下步骤进行迭代更新:

  1. 初始化参数:选择初始参数值作为起点
  2. 计算梯度:计算目标函数关于参数的梯度(导数)
  3. 更新参数:将当前参数值沿着负梯度方向移动一小步,更新参数值
  4. 重复步骤 2 和步骤 3,直到满足停止条件(如达到最大迭代次数或梯度变化很小)

梯度方向指示了函数上升最快的方向,而负梯度方向则指示了函数下降最快的方向。因此,通过不断更新参数,梯度下降算法可以朝着函数取得最小值的方向逐渐迭代,最终接近或达到最优解。

梯度下降算法有多种变体,如批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent)和小批量梯度下降(Mini-Batch Gradient Descent),它们在每次更新参数时所使用的样本数量不同。这些变体具有不同的优缺点,适用于不同的问题和数据集规模。

回到上面的问题,此时的目标/损失函数如下所示:
J ( θ ) = 1 2 m ∑ i = 1 m ( y i − θ T x i ) 2 J(\theta ) = \frac{1}{2m}\displaystyle\sum_{i=1}^{m}(y^i - \theta ^Tx^i)^2 J(θ)=2m1i=1m(yiθTxi)2
当使用批量梯度下降时,目标函数关于第 j j j 个参数的梯度可以写成如下形式:
δ J ( θ ) δ θ j = − 1 m ∑ i = 1 m ( y i − θ T x i ) x j i \frac{\delta J(\theta)}{\delta \theta _j} = -\frac{1}{m}\displaystyle\sum_{i=1}^{m}(y^i - \theta ^Tx^i){x}_{j}^{i} δθjδJ(θ)=m1i=1m(yiθTxi)xji
更新参数后,新的参数可以表示成如下形式:
θ j ′ = θ j + α ⋅ 1 m ∑ i = 1 m ( y i − θ T x i ) x j i {\theta }_{j}^{'} = \theta _j + \alpha · \frac{1}{m}\displaystyle\sum_{i=1}^{m}(y^i - \theta ^Tx^i){x}_{j}^{i} θj=θj+αm1i=1m(yiθTxi)xji
当使用随机梯度下降时,目标函数关于第 j j j 个参数的梯度可以写成如下形式:
δ J ( θ ) δ θ j = − ( y i − θ T x i ) x j i \frac{\delta J(\theta)}{\delta \theta _j} = -(y^i - \theta ^Tx^i){x}_{j}^{i} δθjδJ(θ)=(yiθTxi)xji
更新参数后,新的参数可以表示成如下形式:
θ j ′ = θ j + α ⋅ ( y i − θ T x i ) x j i {\theta }_{j}^{'} = \theta _j + \alpha · (y^i - \theta ^Tx^i){x}_{j}^{i} θj=θj+α(yiθTxi)xji
当使用小批量梯度下降时,目标函数关于第 j j j 个参数的梯度可以写成如下形式:
δ J ( θ ) δ θ j = 1 10 ∑ k = i i + 9 ( θ T x k − y k ) x j k \frac{\delta J(\theta)}{\delta \theta _j} = \frac{1}{10}\displaystyle\sum_{k=i}^{i+9}(\theta ^Tx^k - y^k){x}_{j}^{k} δθjδJ(θ)=101k=ii+9(θTxkyk)xjk
更新参数后,新的参数可以表示成如下形式:
θ j ′ = θ j − α ⋅ 1 10 ∑ k = i i + 9 ( θ T x k − y k ) x j k {\theta }_{j}^{'} = \theta _j - \alpha · \frac{1}{10}\displaystyle\sum_{k=i}^{i+9}(\theta ^Tx^k - y^k){x}_{j}^{k} θj=θjα101k=ii+9(θTxkyk)xjk
批量梯度下降容易得到最优解,但是由于每次都要考虑所有样本,因此速度很慢;随机梯度下降每次找一个样本,迭代速度快,但不一定每次都朝着收敛的方向前进(存在离群点、噪声点等干扰);小批量梯度下降比较实用,用的也比较多。

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

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

相关文章

Axios使用方式

ajax是JQUERY封装的XMLHttprequest用来发送http请求 Axios简单点说它就是一个js库,支持ajax请求,发送axios请求功能更加丰富,丰富在哪不知道 1.npm使用方式 vue项目中 npm install axios 2.cdn方式 <script src"https://unpkg.com/axios/dist/axios.min.js">…

【蓝桥杯省赛真题45】Scratch九宫格游戏 蓝桥杯scratch图形化编程 中小学生蓝桥杯省赛真题讲解

目录 scratch九宫格游戏 一、题目要求 编程实现 二、案例分析 1、角色分析

Nginx高级

Nginx高级 第一部分&#xff1a;扩容 通过扩容提升整体吞吐量 1.单机垂直扩容&#xff1a;硬件资源增加 云服务资源增加 整机&#xff1a;IBM、浪潮、DELL、HP等 CPU/主板&#xff1a;更新到主流 网卡&#xff1a;10G/40G网卡 磁盘&#xff1a;SAS(SCSI) HDD&#xff08;机械…

Redis—跳跃表

跳跃表简介 跳跃表&#xff08;skiplist&#xff09;是一种随机化的数据结构&#xff0c;由 William Pugh 在论文《Skip lists: a probabilistic alternative to balanced trees》中提出&#xff0c;是一种可以与平衡树媲美的层次化链表结构——查找、删除、添加等操作都可以在…

Day38力扣打卡

打卡记录 网格中的最小路径代价&#xff08;动态规划&#xff09; 链接 class Solution:def minPathCost(self, grid: List[List[int]], moveCost: List[List[int]]) -> int:m, n len(grid), len(grid[0])f [[0x3f3f3f3f3f] * n for _ in range(m)]f[0] grid[0]for i i…

探秘开发app与小程序:一场技术与创新的博弈

app与小程序&#xff1a;一场技术与创新的博弈随着科技的飞速发展&#xff0c;移动应用程序已经成为我们日常生活中不可或缺的一部分。在这个充满竞争的时代&#xff0c;企业纷纷投身于开发各类移动应用&#xff0c;以期在市场中占据一席之地。然而&#xff0c;面对多样化的应用…

YOLOv5结合华为诺亚VanillaNet Block模块

🗝️YOLOv5实战宝典--星级指南:从入门到精通,您不可错过的技巧   -- 聚焦于YOLO的 最新版本, 对颈部网络改进、添加局部注意力、增加检测头部,实测涨点 💡 深入浅出YOLOv5:我的专业笔记与技术总结   -- YOLOv5轻松上手, 适用技术小白,文章代码齐全,仅需 …

VMware 系列:ESXI6.7升级7.0

ESXI6.7升级7.0 一、下载补丁二、上传文件三 启用Shell四、登录Shell后台五、删除不兼容驱动六、正常升级最近,将一台使用ESXI6.7的虚拟机升级到了7.0版本,下面记录一下自己的升级过程。 升级条件 首先确保硬件是否能升级到7.0版本,物理网卡驱动为e1000e不能升级,如果是ig…

基于单片机直流电机调速(proteus仿真+源程序)

一、系统方案 1、本设计采用这51单片机作为主控器。 2、转速值送到液晶1602显示。 3、按键设加减速&#xff0c;开始暂停、正反转。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 en0; rw0; write_com(0x01); //lcd初始化 write_com(0x38)…

基于Haclon的Blob分析

任务要求&#xff1a; 请用BLOB分析的方法计算图中所有灰度值在120和255之间的像素构成的8连通区域的面积与中心点坐标。 Blob基础&#xff1a; 分析过程&#xff1a;首先获取图像&#xff0c;然后根据特征对原始图像进行阈值分割&#xff08;区分背景像素和前景像素&#xf…

python爬虫HMAC加密案例:某企业信息查询网站

声明&#xff1a; 该文章为学习使用&#xff0c;严禁用于商业用途和非法用途&#xff0c;违者后果自负&#xff0c;由此产生的一切后果均与作者无关 一、找出需要加密的参数 js运行 atob(‘aHR0cHM6Ly93d3cucWNjLmNvbS93ZWIvc2VhcmNoP2tleT0lRTQlQjglODclRTglQkUlQkUlRTklOUI…

Django 集成 Celery 实现高效的异步任务处理

概要 在复杂的 Web 应用中&#xff0c;处理长时间运行的任务或定期任务是一项挑战。Django 作为一个强大的 Python Web 框架&#xff0c;可以通过集成 Celery 这一异步任务队列来优化这些任务的处理。Celery 不仅能提高应用性能&#xff0c;还能改善用户体验。本文将深入探讨如…

专业pdf编辑工具PDF Expert mac中文版特点介绍

PDF Expert mac是一款专业的PDF编辑和阅读工具。它可以帮助用户在Mac、iPad和iPhone等设备上查看、注释、编辑、填写和签署PDF文档。 PDF Expert mac软件特点 PDF编辑&#xff1a;PDF Expert提供了丰富的PDF编辑功能&#xff0c;包括添加、删除、移动、旋转、缩放、裁剪等操作…

CSM32RV003:国产高精度16位ADC低功耗RISC-V内核MCU

目录 高精度ADC工业应用工业数据采集应用CSM32RV003简介主要特性 高精度ADC工业应用 高精度ADC即高精度模数转换器&#xff0c;是一种能够将输入模拟信号转换为数字信号的芯片&#xff0c;在多种消费电子、工业、医疗和科研领域都有广泛应用。高精度ADC的主要特点是能够提供高…

《QT从基础到进阶·三十八》QWidget实现炫酷log日志打印界面

QWidget实现了log日志的打印功能&#xff0c;不仅可以在界面显示&#xff0c;还可以生成打印日志。先来看下效果&#xff0c;源码放在文章末尾&#xff1a; LogPlugin插件类管理log所有功能&#xff0c;它可以获取Log界面并能打印正常信息&#xff0c;警告信息和错误信息&…

贪心算法及相关例题

目录 什么是贪心算法&#xff1f; leetcode455题.分发饼干 leetcode376题.摆动序列 leetcode55题.跳跃游戏I leetcode45题.跳跃游戏II leetcode621题.任务调度器 leetcode435题.无重叠空间 leetcode135题.分发糖果 什么是贪心算法&#xff1f; 贪心算法更多的是一种思…

济南数字孪生赋能工业制造,加速推进制造业数字化转型

济南数字孪生赋能工业制造&#xff0c;加速推进制造业数字化转型。数字孪生是指通过数字模型对现实世界进行模拟和描述&#xff0c;从而实现数字化转型的技术。数字孪生技术通过利用先进传感与测量技术、实时数据融合及分析技术、虚拟现实技术和仿真技术&#xff0c;在数字空间…

HQL刷题 50道

HQL刷题 50道 尚硅谷HQL刷题网站 答案 1.查询累积销量排名第二的商品 select sku_id from (select sku_id, dense_rank() over (order by total desc) rnfrom (select sku_id, sum(sku_num) totalfrom order_detailgroup by sku_id) t1) t2 where rn 2;2.查询至少连续三天下…

分类预测 | Matlab实现基于DBN-SVM深度置信网络-支持向量机的数据分类预测

分类预测 | Matlab实现基于DBN-SVM深度置信网络-支持向量机的数据分类预测 目录 分类预测 | Matlab实现基于DBN-SVM深度置信网络-支持向量机的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.利用DBN进行特征提取&#xff0c;将提取后的特征放入SVM进行分类…

【Delphi】开发IOS 程序,TLabel 中英文字对齐(水平),一行代码解决显示对齐问题!

目录 一、问题现象&#xff1a; 二、解决方案&#xff08;一行代码解决ios对齐问题&#xff09;&#xff1a; 三、解决后效果&#xff1a; 四、后记&#xff1a; 一、问题现象&#xff1a; 在用 Delphi 开发ios程序时&#xff0c;使用TLabel控件显示&#xff0c;会出现中英…