吴恩达《机器学习》4-1->4-5:多变量线性回归

一、引入多维特征

在多维特征中,我们考虑的不再是单一的特征,而是一组特征,例如房价模型中可能包括房间数、楼层等多个特征。这些特征将组成一个向量,表示为(𝑥₁, 𝑥₂, . . . , 𝑥ₙ),其中 𝑛 代表特征的数量。每个特征都可以表示数据集中的不同属性。

对于每个训练实例,我们使用向量表示特征,如𝑥(𝑖) = [1416, 3, 2, 40],这里 𝑥ⱼ(𝑖) 代表特征矩阵中第 𝑖 行的第 𝑗 个特征,也就是第 𝑖 个训练实例的第 𝑗 个特征。

支持多变量的假设 ℎ 表示为:

ℎ𝜃(𝑥) = 𝜃₀ + 𝜃₁𝑥₁ + 𝜃₂𝑥₂ + . . . + 𝜃ₙ𝑥ₙ

在这个公式中,有 𝑛 + 1 个参数和 𝑛 个变量。为了简化这个公式,我们引入 𝑥₀ = 1,这将使公式转化为:

ℎ𝜃(𝑥) = 𝜃₀𝑥₀ + 𝜃₁𝑥₁ + 𝜃₂𝑥₂ + . . . + 𝜃ₙ𝑥ₙ

这样,模型中的参数是一个 𝑛 + 1 维的向量,每个训练实例也都是一个 𝑛 + 1 维的向量,特征矩阵 𝑋 的维度是 𝑚 × (𝑛 + 1)。

二、多变量梯度下降

与单变量线性回归类似,多变量线性回归中也需要构建代价函数。代价函数表示为所有建模误差的平方和:

𝐽(𝜃₀, 𝜃₁, . . . 𝜃ₙ) = 1/2𝑚 ∑ (ℎ𝜃(𝑥(𝑖)) - 𝑦(𝑖))², 其中 ℎ𝜃(𝑥) = 𝜃₀ + 𝜃₁𝑥₁ + 𝜃₂𝑥₂ + . . . + 𝜃ₙ𝑥ₙ

我们的目标仍然是找出使代价函数最小化的一系列参数。多变量线性回归的批量梯度下降算法为:

不断迭代,更新参数𝜃₀, 𝜃₁, . . . , 𝜃ₙ,直到收敛。

三、特征缩放

在处理多维特征问题时,确保所有特征具有相近的尺度是非常重要的。如果特征的尺度差异太大,会导致梯度下降算法收敛缓慢。通常,我们将所有特征的尺度缩放到 -1 到 1 之间,这有助于加速梯度下降的收敛。

最简单的方法是将每个特征缩放为:

𝑥ₙ = (𝑥ₙ - 𝜇ₙ) / 𝑠ₙ

其中 𝜇ₙ 是特征的均值,𝑠ₙ 是标准差。这样,所有特征都具有相似的尺度,有助于算法更快地收敛。

四、学习率

梯度下降算法的学习率(learning rate)是一个关键的超参数,对于算法的性能和收敛速度具有重要影响。学习率决定了每次参数更新的步长,过小的学习率可能导致算法收敛得非常慢,而过大的学习率可能使得算法无法收敛。

  • 小学习率(例如 0.01 或 0.03):这些学习率通常使算法非常稳定,但可能需要更多的迭代才能收敛到最佳解。

  • 适中的学习率(例如 0.1 或 0.3):这些学习率通常是一个好的起点,可以使算法在相对较少的迭代次数内收敛到较好的解。

  • 大学习率(例如 1、3 或 10):这些学习率可能使算法在较少的迭代次数内快速收敛,但如果学习率过大,可能会导致算法不收敛,甚至发散。

通常,选择合适的学习率需要进行试验和调整。可以开始尝试中等大小的学习率,然后根据算法的表现逐渐调整。同时,可以使用学习率衰减策略,随着迭代次数的增加逐渐减小学习率,以平衡速度和稳定性。

五、特征与多项式回归

在某些情况下,线性回归模型可能无法很好地拟合数据,因为数据的关系不是线性的。多项式回归是一种技术,用于处理这些情况。它允许引入更高次的特征,以拟合数据的曲线形状。

  • 多项式回归模型:这是线性回归的一种扩展,允许使用多项式函数来拟合数据。模型的形式可以是像这样的方程:ℎ𝜃(𝑥) = 𝜃₀ + 𝜃₁𝑥₁ + 𝜃₂𝑥₂ + . . . + 𝜃ₙ𝑥ₙ,其中 n 是多项式的次数。

  • 特征变换:除了多项式回归,特征变换也是一种方法。通过对原始特征进行变换,例如取对数、开方、指数等,可以使问题更适合线性回归模型。这样的变换可以将非线性关系转化为线性关系。

在实际应用中,选择多项式次数或特征变换的方法需要根据数据的特点进行试验和调整。通常,我们会观察数据的分布和关系,然后根据需要决定是否采用多项式回归或特征变换,以获得更好的拟合结果。

参考资料

[中英字幕]吴恩达机器学习系列课程

黄海广博士 - 吴恩达机器学习个人笔记

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记一次pdjs时安装glob出现,npm ERR! code ETARGET和npm ERR! code ELIFECYCLE

如往常一样,我使用pdjs来编译proto文件,但出现了以下报错: 大致就是pdjs的util在尝试执行npm install glob^7.2.1 escodegen^1.13.0时出错了 尝试手动执行安装,escodegen被正确安装,但glob^7.2.1出错 npm ERR! code E…

陕西某小型水库雨水情测报及大坝安全监测项目案例

项目背景 根据《陕西省小型病险水库除险加固项目管理办法》、《陕西省小型水库雨水情测报和大坝安全监测设施建设与运行管理办法》的要求,为保障水库安全运行,对全省小型病险水库除险加固,建设完善雨水情测报、监测预警、防汛道路、通讯设备、…

安装anaconda时控制台conda-version报错

今天根据站内的一篇博客教程博客在此安装anaconda时&#xff0c;检查conda版本时报错如下&#xff1a; >>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<< Traceback (most recent call last): File “D:\An…

办公套件全家桶 Office2019 mac中文版新功能

office 2019 mac是 Microsoft office 应用程序套件的最新版本。它包括流行的软件&#xff0c;例如 Microsoft Word、Excel、PowerPoint 和 Outlook&#xff0c;office 2019 比其前身有许多新功能和改进&#xff0c;包括增强的协作工具、与 OneDrive 和 SharePoint 等云服务的更…

MTK 拨打紧急电话接通时间过长问题分析

1、问题分析 从Log视频来看&#xff0c;通话接通时间过长&#xff0c;但是Modem Log来看&#xff0c;进行多两次拨号。 查看AP代码确实进行了两次拨号 AP界面查看确实只有一路通话 查看MTK原始代码&#xff0c;发现当紧急拨号失败后&#xff0c;上层换卡重试&#xff0c;界面不…

ActiveMq学习⑨__基于zookeeper和LevelDB搭建ActiveMQ集群

引入消息中间件后如何保证其高可用&#xff1f; 基于zookeeper和LevelDB搭建ActiveMQ集群。集群仅提供主备方式的高可用集群功能&#xff0c;避免单点故障。 http://activemq.apache.org/masterslave LevelDB&#xff0c;5.6版本之后推出了LecelDB的持久化引擎&#xff0c;它使…

【Windows-软件-FFmpeg】(01)通过CMD运行FFmpeg进行操作,快速上手

前言 通过"cmd"运行"ffmpeg"进行操作&#xff0c;快速上手&#xff1b; 实操 【实操一】 说明 使用"ffmpeg"来合并音频文件和视频文件 &#xff1b; 环境 Windows 11 专业版&#xff08;22621.2428&#xff09;&#xff1b; 代码 &#xf…

【入门Flink】- 04Flink部署模式和运行模式【偏概念】

部署模式 在一些应用场景中&#xff0c;对于集群资源分配和占用的方式&#xff0c;可能会有特定的需求。Flink为各种场景提供了不同的部署模式&#xff0c;主要有以下三种&#xff1a;会话模式&#xff08;Session Mode&#xff09;、单作业模式&#xff08;Per-Job Mode&…

ArcGIS for Android 禁止地图旋转

ArcGIS for Android 禁止地图旋转 话不多说&#xff0c;直接上代码&#xff01;&#xff01;&#xff01; public class LoadMap extends AppCompatActivity {// 地图private MapView mapView;private ArcGISMap map;Overrideprotected void onCreate(Bundle savedInstanceSta…

如何搭建低成本亚马逊aws云服务器

0. 环境 win10 火狐浏览器 1. 登录 https://aws.amazon.com/cn/ -> 登录 -> 根用户 -> ********, **** 如果未有&#xff0c;需要注册&#xff0c;去年我注册的&#xff0c;麻烦之处是需要添加信用卡。可以淘宝aws搜索商家帮忙处理。 2. 控制台 在控制台主页&…

ZZ038 物联网应用与服务赛题第I套

2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 &#xff08;I卷&#xff09; 赛位号&#xff1a;______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等; 2.竞赛任务中所使用的各类软件工…

微服务之初始微服务

文章目录 一、服务架构演变1.单体架构2.分布式架构 二、认识微服务三、总结四、微服务技术对比五、SpringCloud注意 一、服务架构演变 1.单体架构 单体架构&#xff1a;将业务的所有功能集中在一个项目中开发&#xff0c;打成一个包部署。 优点&#xff1a; 架构简单部署成本…

Kubernetes Dashboard 用户名密码方式登录

Author&#xff1a;rab 前言 为了 K8s 集群安全&#xff0c;默认情况下 Dashboard 以 Token 的形式登录的&#xff0c;那如果我们想以用户名/密码的方式登录该怎么操作呢&#xff1f;其实只需要我们创建用户并进行 ClusterRoleBinding 绑定即可&#xff0c;接下来是具体的操作…

开源 Wiki 软件 wiki.js

wiki.js简介 最强大、 可扩展的开源Wiki 软件。使用 Wiki.js 美观直观的界面让编写文档成为一种乐趣&#xff01;根据 AGPL-v3 许可证发布。 官方网站&#xff1a;https://js.wiki/ 项目地址&#xff1a;https://github.com/requarks/wiki 主要特性&#xff1a; 随处安装&a…

NVIDIA-SMI has failed because it couldn“t communicate with the NVIDIA driver .

文章目录 报错原因分析解决办法防患于未然 报错 执行nvidia-smi报错 NVIDIA-SMI has failed because it couldn"t communicate with the NVIDIA driver . Make sure that the atest NVIDIA driver is installed and running.运行使用gpu的docker容器时 NVIDIA Docker …

这款AI-3D模型实现了无数人的建模梦

hi&#xff0c;同学们&#xff0c;本期是第25期AI生产力工具教程 别说各位&#xff0c;连我也不敢信&#xff0c;现在制作3D模型比泡杯奶茶的时间还要快&#xff01; 最近发现了一个天花板级的图片生成3D模型的AI工具——Artefacts.Ai&#xff0c;喂1张图片&#xff0c;就能创…

ADS安装问题

1、已有老版本&#xff0c;需要安装新版本&#xff0c;自动跳过证书安装目录设置 解决办法&#xff08;ADS2019-2023版本都适用&#xff09;&#xff1a; ADS2019安装细节以及需要避免的坑 2、安装报错 解决办法&#xff0c;删除C盘里面的隐藏文件Zero G Registry&#xff1…

圣杯布局/双飞翼布局/flex/grid等,实现CSS三栏自适应布局的几种方法

简介 三栏布局是网页设计中常用的布局&#xff0c;即网页中的内容被分为三块&#xff1a;左侧/中间/右侧。其中两侧部分宽度固定&#xff0c;中间部分宽度自适应的根据浏览器宽度撑满剩余空间。而三栏布局也有很多变形&#xff0c;比如两栏或者N栏布局&#xff0c;上中下三栏布…

分布式单元化

一 分布式单元化 1.1 两地三中心 顾名思义&#xff0c;两地指的是两个城市&#xff1a;同城&#xff0c;异地。三中心指的是三个数据中心&#xff1a;生产中心、同城容灾中心、异地容灾中心。 在同一个城市或者临近的城市建设两个相同的系统&#xff0c;双中心具备相当的业…

C++之set/multiset 和 map/multimap的使用

关联式容器 在初阶阶段&#xff0c;我们已经接触过STL中的部分容器: 比如&#xff1a;vector、list、deque、forward_list(C11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。 今天要了解的几个容器称为关联式容器: 关联式容器也是用来…