白话机器学习笔记(一)学习回归

news2025/5/17 14:28:51

最小二乘法

定义模型

表达式: f θ ( x ) = θ 0 + θ 1 x f_\theta(x)=\theta_0+\theta_1x fθ(x)=θ0+θ1x

(常用 θ \theta θ表示未知数、 f θ ( x ) f_\theta(x) fθ(x)表示含有参数 θ \theta θ并且和变量 x x x相关的函数)

目标函数

假设有 n n n个训练数据,那么它们的误差之和可以这样表示,这个表达式称为目标函数。

E ( θ ) = 1 2 ∑ i = 1 n ( y ( i ) − f θ ( x ( i ) ) ) 2 E(\theta)=\frac12\sum\limits_{i=1}^n(y^{(i)}-f_\theta(x^{(i)}))^2 E(θ)=21i=1n(y(i)fθ(x(i)))2 ( x ( i ) 和 y ( i ) x^{(i)}和y^{(i)} x(i)y(i)指第 i i i个训练数据)

找到使 E ( θ ) E(\theta) E(θ)值最小的 θ \theta θ,这样的问题称为最优化问题。

为了避免正负数混合运算所以计算平方, 1 2 \frac12 21是为了让表达式值更简单随便加的常数。

θ 0 = 1 、 θ 1 = 3 \theta_0=1、\theta_1=3 θ0=1θ1=3,将四个训练数据带入表达式求误差如下:

image-20230716172903351

修改参数 θ \theta θ的值,让误差变小的做法称为最小二乘法。

最速下降法

比如表达式 g ( x ) = ( x − 1 ) 2 g(x)=(x-1)^2 g(x)=(x1)2,它的最小值 g ( x ) = 0 g(x)=0 g(x)=0出现在 x = 1 x=1 x=1时。

图像如下:

image-20230720210255695

g ( x ) g(x) g(x)展开有 ( x − 1 ) 2 = x 2 − 2 x + 1 (x-1)^2=x^2-2x+1 (x1)2=x22x+1

微分有: d d x g ( x ) = 2 x − 2 \frac{d}{dx}g(x)=2x-2 dxdg(x)=2x2

为了让 g ( x ) g(x) g(x)的值变小,要让 x x x向1移动,可以根据导数符号决定 x x x的移动方向,只要向着导数符号相反的方向移动 x x x g ( x ) g(x) g(x)就会向着最小值移动。

由此得到表达式

x : = x − η d d x g ( x ) x:=x-\eta\frac{d}{dx}g(x) x:=xηdxdg(x) 称为最速下降法或梯度下降法。

(A:=B,意思通过B来定义A,上面表达式指用上一个x来定义新的x)

η \eta η是称为学习率的正常数,大小会影响达到最小值的更新次数,太大会导致来回跳跃无法收敛,一直发散状态。

对于目标函数, E ( θ ) = 1 2 ∑ i = 1 n ( y ( i ) − f θ ( x ( i ) ) ) 2 E(\theta)=\frac12\sum\limits_{i=1}^n(y^{(i)}-f_\theta(x^{(i)}))^2 E(θ)=21i=1n(y(i)fθ(x(i)))2 有两个参数,要用偏微分。

( f θ ( x ) = θ 0 + θ 1 x f_\theta(x)=\theta_0+\theta_1x fθ(x)=θ0+θ1x)

更新表达式如下:

θ 0 : = θ 0 − η ∂ E ∂ θ 0 \theta_0:=\theta_0-\eta\frac{\partial E}{\partial\theta_0} θ0:=θ0ηθ0E

θ 1 : = θ 1 − η ∂ E ∂ θ 1 \theta_1:=\theta_1-\eta\frac{\partial E}{\partial\theta_1} θ1:=θ1ηθ1E

∂ E ∂ θ 0 = ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) \frac{\partial E}{\partial\theta_0}=\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)}) θ0E=i=1n(fθ(x(i))y(i))

∂ E ∂ θ 1 = ∂ E ∂ θ 0 = ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) x ( i ) \frac{\partial E}{\partial\theta_1}=\frac{\partial E}{\partial\theta_0}=\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x^{(i)} θ1E=θ0E=i=1n(fθ(x(i))y(i))x(i)

所以得到参数 θ 1 和 θ 2 \theta_1和\theta_2 θ1θ2的更新表达式如下:

θ 0 : = θ 0 − η ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) \theta_0:=\theta_0-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)}) θ0:=θ0ηi=1n(fθ(x(i))y(i))

θ 1 : = θ 1 − η ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) x ( i ) \theta_1:=\theta_1-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x^{(i)} θ1:=θ1ηi=1n(fθ(x(i))y(i))x(i)

多项式回归

image-20230716181244868

曲线比直线更容易拟合数据

f θ ( x ) f_\theta(x) fθ(x)定义为二次函数:

f θ ( x ) = θ 0 + θ 1 x + θ 2 x 2 f_\theta(x)=\theta_0+\theta_1x+\theta_2x^2 fθ(x)=θ0+θ1x+θ2x2

或者更大次数的表达式:

f θ ( x ) = θ 0 + θ 1 x + θ 2 x 2 + . . . + θ n x n f_\theta(x)=\theta_0+\theta_1x+\theta_2x^2+...+\theta_nx^n fθ(x)=θ0+θ1x+θ2x2+...+θnxn

f θ ( x ) = θ 0 + θ 1 x + θ 2 x 2 f_\theta(x)=\theta_0+\theta_1x+\theta_2x^2 fθ(x)=θ0+θ1x+θ2x2

得到更新表达式为:

θ 0 : = θ 0 − η ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) \theta_0:=\theta_0-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)}) θ0:=θ0ηi=1n(fθ(x(i))y(i))

θ 1 : = θ 1 − η ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) x ( i ) \theta_1:=\theta_1-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x^{(i)} θ1:=θ1ηi=1n(fθ(x(i))y(i))x(i)

θ 2 : = θ 2 − η ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) x ( i ) 2 \theta_2:=\theta_2-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x^{(i)^2} θ2:=θ2ηi=1n(fθ(x(i))y(i))x(i)2

这种增加函数中多项式的次数,再使用函数的分析方法被称为多项式回归。

多重回归

问题:基于广告费预测点击率

考虑广告版面的大小,设 广告费为 x 1 x_1 x1、广告栏的宽为 x 2 x_2 x2、广告栏的高为 x 3 x_3 x3

f θ f_\theta fθ可以表示如下:

f θ ( x 1 , x 2 , x 3 ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 f_\theta(x_1,x_2,x_3)=\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_3 fθ(x1,x2,x3)=θ0+θ1x1+θ2x2+θ3x3

简化表达式,将 θ 和 x \theta和x θx看成向量

θ = [ θ 0 θ 1 θ 2 ⋮ θ n ] \boldsymbol{\theta}=\begin{bmatrix} \theta_0\\\theta_1\\\theta_2\\\vdots\\\theta_n \end{bmatrix} θ= θ0θ1θ2θn x = [ x 0 x 1 x 2 ⋮ x n ] \boldsymbol{x}=\begin{bmatrix}x_0\\x_1\\x_2\\\vdots\\x_n \end{bmatrix} x= x0x1x2xn ( x 0 = 1 x_0=1 x0=1)

θ T x = θ 0 x 0 + θ 1 x 1 + . . . + θ n x n \boldsymbol{\theta}^T\boldsymbol{x}=\theta_0x_0+\theta_1x_1+...+\theta_nx_n θTx=θ0x0+θ1x1+...+θnxn

E ( θ ) = 1 2 ∑ i = 1 n ( f θ ( x ( i ) − y ( i ) ) ) 2 E(\theta)=\frac12\sum\limits_{i=1}^n(f_\theta(x^{(i)}-y^{(i)}))^2 E(θ)=21i=1n(fθ(x(i)y(i)))2

∂ E ∂ θ j = ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) x j ( i ) \frac{\partial E}{\partial\theta_j}=\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x_j^{(i)} θjE=i=1n(fθ(x(i))y(i))xj(i)

θ j : = θ j − η ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_j:=\theta_j-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x_j^{(i)} θj:=θjηi=1n(fθ(x(i))y(i))xj(i)

像这样包含多个变量的回归称为多重回归

随机梯度下降法

最速下降法容易陷入局部最优解

image-20230719104549825

最速下降法更新表达式: θ j : = θ j − η ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_j:=\theta_j-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x_j^{(i)} θj:=θjηi=1n(fθ(x(i))y(i))xj(i)

随机梯度下降法中会随机选择一个训练数据,并使用它来更新参数。这个表达式中的 k k k就是被随机选中的数据索引。

随机梯度下降法更新表达式: θ j : = θ j − η ( f θ ( x ( k ) ) − y ( k ) ) x j ( k ) \theta_j:=\theta_j-\eta(f_\theta(x^{(k)})-y^{(k)})x_j^{(k)} θj:=θjη(fθ(x(k))y(k))xj(k)

最速下降法更新1次参数的时间,随机梯度下降法可以更新n次,这样不容易陷入局部最优解。

小批量梯度下降法

设训练数据索引的集合为 K K K,还可以随机选择m个训练数据来更新参数。

小批量梯度下降法更新表达式: θ j : = θ j − η ∑ k ∈ K ( f θ ( x ( k ) ) − y ( k ) ) x j ( k ) \theta_j:=\theta_j-\eta\sum\limits_{k\in K}(f_\theta(x^{(k)})-y^{(k)})x_j^{(k)} θj:=θjηkK(fθ(x(k))y(k))xj(k)

练数据索引的集合为 K K K,还可以随机选择m个训练数据来更新参数。

小批量梯度下降法更新表达式: θ j : = θ j − η ∑ k ∈ K ( f θ ( x ( k ) ) − y ( k ) ) x j ( k ) \theta_j:=\theta_j-\eta\sum\limits_{k\in K}(f_\theta(x^{(k)})-y^{(k)})x_j^{(k)} θj:=θjηkK(fθ(x(k))y(k))xj(k)

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

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

相关文章

【每日一题】—— D. Prefix Permutation Sums (Codeforces Round 888 (Div. 3))

🌏博客主页:PH_modest的博客主页 🚩当前专栏:每日一题 💌其他专栏: 🔴 每日反刍 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮,缓称…

三自由度PUMA机器人非线性控制研究(Matlab代码、Simulink仿真实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码、Simulink仿真实现 💥1 概述 针对三自由度PUMA560机器人的控制问题,可以使用三种不同的非线性控制算法:计算扭矩控制、滑模控制和反步…

RL 实践(5)—— 二维滚球环境【REINFORCE Actor-Critic】

本文介绍如何用 REINFORCE 和 Actor-Critic 这两个策略梯度方法解二维滚球问题参考:《动手学强化学习》完整代码下载:6_[Gym Custom] RollingBall (REINFORCE and Actor-Critic) 文章目录 1. 二维滚球环境2. 策略梯度方法2.1 策略学习目标2.2 策略梯度定…

石子合并(区间dp模板)

题目描述&#xff1a; dp分析&#xff1a; 解题代码&#xff1a; #include<iostream> using namespace std;const int N1e36;int f[N][N]; int a[N]; int s[N];int main(){int n;cin>>n;for(int i1;i<n;i){scanf("%d",&s[i]);s[i]s[i-1];//前缀和…

使用fastjson错误

说明&#xff1a;使用fastjson时&#xff0c;对象解析不成功&#xff0c;一直报错&#xff0c;但是json格式没有错&#xff1b; 错误信息&#xff1a;Method threw ‘com.alibaba.fastjson.JSONException’ exception. json数据是正确的 分析&#xff1a;注意看&#xff0c;fa…

【用IDEA基于Scala2.12.17开发Spark 3.4.1 项目】

目录 使用IDEA创建Spark项目设置sbt依赖创建Spark 项目结构新建Scala代码 使用IDEA创建Spark项目 打开IDEA后选址新建项目 选址sbt选项 配置JDK debug 解决方案 相关的依赖下载出问题多的话&#xff0c;可以关闭idea&#xff0c;重启再等等即可。 设置sbt依赖 将sbt…

数据安全问题防不胜防?教你使用铁威马的321原则

无论是勒索病毒的袭击&#xff0c;还是硬件损坏、人为误删等原因造成的数据丢失的意外让我们防不胜防。为此&#xff0c;我们时常建议大家尤其是企业通过【3-2-1备份原则】的数据保护策略来备份数据&#xff0c;以便在数据受损失时&#xff0c;能快速地从备份介质中完整地恢复数…

git相关

gerrit用户指南&#xff1a; 资料&#xff1a;Gerrit 用户指南 gerrit-user-guide 上述有介绍如何review&#xff0c;review并非修改代码之后如何重新提交等操作 jenkins介绍 Jenkins详细教程 - 知乎 一、jenkins是什么&#xff1f; Jenkins是一个开源的、提供友好操作界…

vite的介绍

Vite&#xff08;法语意为 "快速的"&#xff0c;发音 /vit/&#xff0c;发音同 "veet")是一种新型前端构建工具 优势 &#x1f4a1; 极速的服务启动&#xff0c;使用原生 ESM 文件&#xff0c;无需打包 ⚡️ 轻量快速的热重载&#xff0c;始终极快的模块…

Centos7.6安装RocketMQ4.9.2并配置开机自启

1、下载RocketMQ 编译后的压缩包 wget https://dlcdn.apache.org/rocketmq/4.9.2/rocketmq-all-4.9.2-bin-release.zip2、解压 unzip rocketmq-all-4.9.2-bin-release.zip3、进入解压文件夹 cd rocketmq-all-4.9.2/4、编辑配置文件/usr/local/rocketmq/rocketmq-all-4.9.4-…

Spring Boot 拦截器实现:登录验证 统一异常处理 返回数据规范化

学习 Spring 和 servlet 初期&#xff0c;我们在判断用户身份时&#xff0c;都是在每个方法中获取会话、获取对象&#xff0c;这种方式冗余度高&#xff0c;增加代码复杂度&#xff0c;维护成本也高&#xff0c;因此想到可以使用 AOP 来实现一个公共的方法&#xff0c;这个公共…

Android 自定义跳转到系统 Settings Fragment 的 Intent

以跳转到蓝牙控制面板为例&#xff0c;控制面板如图所示&#xff1a; 其 Fragment 所在的位置是&#xff1a; packages/apps/Settings/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java 第一步 要在 Settings的主要 Activity 中定义继承同一个父类…

通达信波段王指标公式_通达信公式

使用说明&#xff1a;1、买点&#xff1a;多空分界线变红后出现波段买为做多信号&#xff0c;中间出现波段卖信号为杂波可以不考虑&#xff0c;再结合逃顶信号进行卖出操作&#xff0c;如果没有出现逃顶信号&#xff0c;则可以等多空分界线变绿后结合波段卖信号综合做出判断。2…

基于proteus的纯模拟病房呼叫系统

摘要&#xff1a;无线的病房呼叫系统将病人的呼叫请求迅速传递给医护者&#xff0c;减少了信息传递的过程性&#xff0c;病人无需等待医护巡查才可求助&#xff0c;增加了便捷性与即时性&#xff1b;此外也减轻一定的工作量&#xff0c;加强服务的效率。本文基于proteus软件进行…

selenium 启动常用浏览器驱动方式

一.启动 Chrome 浏览器 方式一&#xff1a; // 驱动路径的 File File file new File("src/main/resources/drivers/chromedriver-win32.exe"); // 设置系统属性&#xff0c;setProperty() 中两个参数分别是驱动名和 file 绝对路径 System.setProperty("webdr…

如何在Mkdocs里自定义字体(霞鹜文楷)

网站目前在用的字体&#xff1a;霞鹜文楷 想必你可以直观的从我的网站&#xff0c;感受到这款字体的美观程度。 以下是摘录的部分字体官方介绍文档 注意事项 添字请在 Issue #33 反馈&#xff0c;字形调整请在 Issue #14 反馈&#xff0c;不要另开议题&#xff0c;以便于整理。…

SpringBoot——持久化技术

简单介绍 在之前我们使用的数据层持久化技术使用的是MyBatis或者是MyBatis-plus&#xff0c;其实都是一样的。在使用之前&#xff0c;我们要导入对应的坐标&#xff0c;然后配置MyBatis特有的配置&#xff0c;比如说Mapper接口&#xff0c;或者XML配置文件&#xff0c;那么除了…

为什么pmp证书只能对标cspm二级证书??

CSPM 认证是新出台的证书&#xff0c;9月才开始第一次考试&#xff0c;前期肯定不会太难的&#xff0c;而 CSPM 有五个等级&#xff0c;综合下来 PMP 对标的是PMP是CSPM-2 级&#xff0c;难度差不多&#xff0c;PgMP对标的是CSPM-3。 CSPM 能力等级划分为五个等级&#xff0c;从…

得物词分发平台技术架构建设与演进

前言 在文章开始前先介绍下导购&#xff0c;导购通常是指帮助消费者在购物过程中做出最佳决策的人或系统。在电商网站中&#xff0c;导购可以引导用户关注热卖商品或促销活动等&#xff0c;帮助用户更好地进行购物。导购的目的是为了提高用户的购物体验&#xff0c;促进销售额…

通过认识在职研究生深入了解人大与加拿大女王大学中外合作办学金融硕士

随着社会经济的不断发展&#xff0c;职场竞争也愈发激烈、工作要求不断提高&#xff0c;许多从业人员既不想放弃工作&#xff0c;又想读研提升专业能力&#xff0c;深化对专业知识的理解&#xff0c;获取优质的证书。那么报考在职研究生就是一个非常不错的方式。若你选择人大与…