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

news2024/11/29 20:37:34

一、引入多维特征

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

对于每个训练实例,我们使用向量表示特征,如𝑥(𝑖) = [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.coloradmin.cn/o/1159742.html

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

相关文章

英语教育目标转变:更加注重实际应用能力培养

今年九月份,北京市教委发布了《关于深入推进高中阶段学校考试招生改革的实施意见》。按照该意见,北京市2024年初三年级学生的初中学业水平考试英语科目听力口语考试与笔试将分离,首次计算机考试将于2023年12月17日进行。 根据《意见》规定,听力口语计算机考试共有两次考试机会…

c++ 实现二叉搜索树

二叉搜索树的概念 二叉搜索树 (BST,Binary Search Tree),也称二叉排序树或二叉查找树。它要么是一颗空树,要么是满足以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值。若它的右子树不为…

css图片保持比例and图片占满整个div

一、非背景图 ①保持宽度固定 img { width: 200px; height: auto; } ②保持高度固定 img { height: 300px; width: auto; } ③保持比例 /* 比例不变 */ img { max-width: 100%; height: auto; } /* 垂直居中 */ img { max-width: 100%; height: auto; display: block; margin:…

都2023年了,不会还有人不会设计软件测试用例叭?不会吧不会吧

一、概念 测试用例的基本概念: 测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素 。 主要步骤: 测试环境——测试步骤—…

有关YOLOV5在测试时,图片大小被调整的问题

执行detect.py文件,在运行栏中出现以下: detect: weightsyolov5s.pt, sourcedata\images, datadata\coco128.yaml, imgsz[640, 640], conf_thres0.25, iou_thres0.45, max_det1000, device, view_imgFalse, save_txtFalse, save_confFalse, save_cropFa…

JDK 新特性深度分析,但我用Java 8

官方文档链接:https://openjdk.org/projects/jdk/21/ 下载链接:https://www.oracle.com/cn/java/technologies/downloads/#jdk21-windows 1、介绍 JDK21 是2023.09.19发布的正式版 其他版本的含义: Alpha:软件或系统的内部测试版…

SpringBoot源码透彻解析—自动装配

花点时间找到程序入口: 整个自动装配的流程总结如下: bean工厂后置处理器(ConfigurationClassPostProcessor) 扫描spring.factories和spring-autoconfigure-metadata.properties两个文件,将文件中的自动装配类信息抽象成Con…

Kubernetes-网络插件

目录 一、flannel网络插件 二、calico网络插件 1、部署 2、网络策略 (1)限制pod流量 (2)限制namespace流量 (3)同时限制namespace和pod (4)限制集群外部流量 一、flannel网络…

518抽奖软件,安全稳定,不怕手抖误按键

518抽奖软件简介 518抽奖软件,518我要发,超好用的年会抽奖软件,简约设计风格。 包含文字号码抽奖、照片抽奖两种模式,支持姓名抽奖、号码抽奖、数字抽奖、照片抽奖。(www.518cj.net) 防误按功能 入口: 主界面上点右…

node复制当前目录下的文件夹到另一层目录(包含多层文件夹嵌套)

前段时间在跟进node项目时有个node项目的需求,然后上线流程是把前端build后的文件夹放到后端仓库的静态资源目录下,再把后端代码发布上线。这样做的好处是在前端页面调用接口时,可以直接 /xxx来调用(浏览器会自动把域名补全&#…

Spring系统之IOC与AOP

前言 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 IOC 1.IOC的概念 控制反转(IoCInversion of Control)IoC,用白话来讲,就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码…

Locust单机多核压测,以及主从节点的数据通信处理

一、背景 这还是2个月前做的一次接口性能测试,关于locust脚本的单机多核运行,以及主从节点之间的数据通信。 先简单交代下背景,在APP上线之前,需要对登录接口进行性能测试。经过评估,我还是优先选择了locust来进行脚…

2023我和云栖有个约会

时间:2023.11.1 地点:云栖小镇 事件:约会 昨天刚在网上看到了有阿姨在云栖大会给自己女儿相亲的照片,今天直接就赶了过去。约会了一整天,虽然很累,但真的很值得。由于是第一次和云栖约会,那就…

“深入理解Nginx的负载均衡与动静分离“

目录 引言一、Nginx简介1. Nginx的基本概念2. Nginx的特点3. Nginx的安装配置 二、Nginx搭载负载均衡三、前端项目打包四、Nginx部署前后端分离项目,同时实现负载均衡和动静分离总结 引言 在现代互联网应用中,高性能和可扩展性是至关重要的。Nginx作为一…

初出茅庐的小李博客之STCW15408AS单片机串口1使用记录

STCW15408AS单片机串口1使用记录 资源介绍: STC15W401AS系列单片机是STC生产的单时钟/机器周期(1T)的单片机,是宽电压/高可靠/低功耗/超强抗干扰的新一代8051单片机,采用STC第九代加密技术,无法解密, 代码完全兼容传…

node使用fs模块(四)—— 文件夹的使用(创建、读取、删除)

文章目录 前言一、文件的创建1.参数2.基本使用 二、文件的读取1.参数2.读取文件的基本使用3.读取文件的递归使用(option中添加recursive为true) 三、文件的删除1. 参数2. 基本使用(删除文件夹)3. 递归删除文件夹 前言 创建、读取…

学习时遇到的错误

1. pycharm中使用ssh远程连接的jupyter时,出现***端口已经被占用的情况 办法一:更换端口,将端口更换为其他 办法二:重启远程终端服务器 2. 关于wandb,在pycharm中调用了wandb.init()初始化函数,中途关闭…

MolFormer分子预训练模型

Large-scale chemical language representations capture molecular structure and properties(2022,NMI) 和原本transformer encoder的不同: 采用linear attention mechanismrotary positional embedding 模型 transformer e…

x3daudio17.dll丢失是什么原因?x3daudio1_7.dll怎么解决?(修复教程分享)

在我多年的电脑使用经历中,我曾经遇到过x3daudio1_7.dll缺失的问题。这个问题让我苦恼了很久,但最终我还是找到了4种有效的修复方法。今天,我想和大家分享一下这些方法,希望对你们有所帮助。 首先,我要讲述一下我遇到…

跟着Nature Communications学作图:纹理柱状图+添加显著性标签!

📋文章目录 复现图片设置工作路径和加载相关R包读取数据集数据可视化计算均值和标准差 计算均值和标准差方差分析组间t-test 图a可视化过程图b可视化过程合并图ab 跟着「Nature Communications」学作图,今天主要通过复刻NC文章中的一张主图来巩固先前分享…