吴恩达2022机器学习专项课程(一) 第二周课程实验:特征缩放和学习率(多元)(Lab_03)

news2025/2/27 21:12:44

备注:笔者只对个人认为的重点代码做笔记,其它详细内容请参考吴恩达老师实验里的笔记。

1.多元特征的训练集

  • 调用load_house_data()函数,将训练集数据保存到数组中。
    在这里插入图片描述
  • X,y分别存储所有训练样本的前四列,所有训练样本的第五列
    在这里插入图片描述
  • 详细的训练样本,一共100行,100个训练样本。在这里插入图片描述

2.特征对房屋价格的影响

房子面积越大,数据点的趋势整体上升,因此面积对价格的影响最大,卧室数量和楼层对价格的影响忽上忽下,房屋年龄对价格的影响是整体下降。
在这里插入图片描述

3.学习率为9.9e-7,运行梯度下降

  • 设置学习率9.9乘10的负7次方,执行梯度下降,学习率设置过大,成本增加,梯度下降没有收敛。
    在这里插入图片描述
  • run_gradient_descent函数,初始化w数组和b,继续调用gradient_descent_houses。在这里插入图片描述
  • 重点在于gradient_descent_houses中的导数项计算函数gradient_function。
    在这里插入图片描述
  • gradient_function使用矩阵操作和向量化操作。
    在这里插入图片描述
  • f_wb:存储每行训练样本的预测值y帽。
  • e:存储每行训练样本预测值y帽和真实y的误差。
  • dj_dw = (1/m) * (X.T @ e) :对应m/1后的公式内容。
  • dj_db = (1/m) * np.sum(e) :对应m/1后的公式内容

在这里插入图片描述

  • dj_dw = (1/m) * (X.T @ e)解析

    • 第1行训练样本的误差乘以第1行训练样本的第1个特征,第1行训练样本的误差乘以第1行训练样本的第1个特征,第100行训练样本的误差乘以第100行训练样本的第1个特征,所有乘积结果累积,然后除以m/1,表示对w1参数求导,结果放入dj_dw数组中的索引0位置。
    • 第1行训练样本的误差乘以第1行训练样本的第2个特征,第2行训练样本的误差乘以第2行训练样本的第2个特征,第100行训练样本的误差乘以第100行训练样本的第2个特征,所有乘积结果累积,然后除以m/1,表示对w2参数求导,结果放入dj_dw数组中的索引1位置。
    • 依次类推,dj_dw是一个元素数量为4的一维数组,每个元素表示w1~w4的求导结果。
  • dj_db = (1/m) * np.sum(e)解析:对每行训练样本的误差求和即可。

  • 可以自己编写打印结果,更直观的查看。ctrl+s保存。在这里插入图片描述

  • 重启内核并运行全部。在这里插入图片描述

  • 看到了输出结果。在这里插入图片描述

  • 由于设置的迭代次数为10,我们抽取某一次来看看格式。

    • f_wb存储100个数,这100个数就是每组训练样本计算的预测值。
    • e存储100个数,是f_wb的每个元素减去y的每个元素,对应放入e。
    • dj_dw是计算一次梯度后,w1~w4参数对应的值。
    • dj_db是计算一次梯度后,b对应的值。在这里插入图片描述
  • 回到开始,当学习率为9.9e-7,成本函数一直增加,没有达到最小值。在这里插入图片描述

4.学习率为9e-7,运行梯度下降

  • 降低学习率,设置为9乘以10的负7次方。成本函数值在减小。在这里插入图片描述
  • 迭代次数增加,成本函数在减小,但是仍未到达最小值。
    在这里插入图片描述

4.学习率为1e-7,运行梯度下降

  • 继续降低学习率,1乘10的负7次方。在这里插入图片描述
  • 成本函数不断降低且能达到最小值,表示这个学习率选择比较合适。在这里插入图片描述

5.特征缩放,Z标准化

  • 函数实现Z标准化,计算并返回标准化后的特征矩阵 X_norm,均值 X_mu 和标准差 X_sigma。
    在这里插入图片描述
  • 绘制图标,经过特征缩放后,房屋的年龄和大小的尺度变得一致,数据分散均匀。在这里插入图片描述
  • 未标准化,每列特征最大最小的差距分别为2410,4,1,95。标准化后,每列特征最大值最小值差距为5.85,6.14,2.06,3.69,每个特征之间的尺度被缩小了。在这里插入图片描述
  • 注意看x轴,上图未标准化,下图标准化,标准化后的特征,尺度比较接近。在这里插入图片描述

6.特征缩放后运行梯度下降

  • 学习率可以选择更大,梯度下降更快。
    在这里插入图片描述
  • 橘色为预测值,和蓝色重合度较高,意味着特征缩放后,梯度下降更快且结果更精确。在这里插入图片描述

7.特征缩放后,使用模型预测

  • 对x_house_norm的训练集用标准化缩放,然后用线性回归函数预测房价。
    在这里插入图片描述

8.等高线图观察特征缩放

在这里插入图片描述

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

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

相关文章

Harmony鸿蒙南向驱动开发-PWM

PWM(Pulse Width Modulation)即脉冲宽度调制,是一种对模拟信号电平进行数字编码并将其转换为脉冲的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。通常情况下,在使用马达控制、背光亮度调节时会用到PWM模…

Java数据结构二叉树

概念 一棵二叉树是结点的一个有限集合,该集合: 1. 或者为空 2. 或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。 从上图可以看出: 1. 二叉树不存在度大于2的结点 2. 二叉树的子树有左右之分,次序不能颠倒&#x…

音乐界Sora隆重发布!效果炸裂,超越Suno!根据指令生成定制音乐,原创续歌样样行!前谷歌Deepmind人员创建

火爆!预热了一周的 Udio 终于发布了,可谓是吊足了网友们的胃口,从展示的效果来看,确实没让网友们白等! 分享几个网站 GPT-3.5研究测试: https://hujiaoai.cn GPT-4研究测试: https://higpt4.…

VirusTaxo:病毒物种注释

https://github.com/omics-lab/VirusTaxo 安装 git clone https://github.com/omics-lab/VirusTaxo mamba create -n VirusTaxo python3.10 mamba activate VirusTaxo cd VirusTaxo python3 -m venv environment source ./environment/bin/activate pip install -r require…

【电控笔记4】拉普拉斯-传递函数-pid

数据标幺化 拉普拉斯变换 欧拉公式 常见s变换 s变换性质 pid分析 p控制,存在稳态误差 可以求出p的取值范围p>-1,否则发散 pi消除稳态误差 把kp换成Gs 只用pi控制,不加微分的原因: 微分之后,噪声增大高频噪声频率…

计算机组成原理(存储器)

1、“821.2016T1(1)”,表示821真题,2016年的题,T1是 选择题/填空题/大题 的第一题,其他类似标记也是相通 2、个人小白总结自用,不一定适用于其他人,请自行甄别 3、有任何疑问,欢迎私信探讨&…

Python测试框架之pytest详解

前言 Python测试框架之前一直用的是unittestHTMLTestRunner,听到有人说pytest很好用,所以这段时间就看了看pytest文档,在这里做个记录。 官方文档介绍: Pytest is a framework that makes building simple and scalable tests e…

常见开关电源的特殊波形有哪些?测试方法是什么?

开关电源特殊波形 1. 毛刺输入测试波形 毛刺是比较常见的波形,一般是由于元器件损坏或老化、电源噪声、信号干扰等因素造成的。这种波形的特点是电网尖锋有过冲并会跌落到0v,过冲和跌落脉宽很窄,一般不会大于100ms,过冲幅度一般不…

FFmpeg: 简易ijkplayer播放器实现--04消息队列设计

文章目录 播放器状态转换图播放器状态对应的消息: 消息对象消息队列消息队列api插入消息获取消息初始化消息插入消息加锁初始化消息设置消息参数消息队列初始化清空消息销毁消息启动消息队列终止消息队列删除消息 消息队列,用于发送,设置播放…

Spring 如何组织项目-ApiHug准备-工具篇-007

🤗 ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace ApiHug …

贪心算法|452.用最少数量的箭引爆气球

力扣题目链接 class Solution { private:static bool cmp(const vector<int>& a, const vector<int>& b) {return a[0] < b[0];} public:int findMinArrowShots(vector<vector<int>>& points) {if (points.size() 0) return 0;sort(p…

【JavaEE】_Spring MVC项目获取Session

目录 1. 使用servlet原生方法获取Session 1.1 错误获取方法 1.2 正确获取方法 2. 使用Spring注解获取Session 3. 使用Spring内置对象获取Session 1. 使用servlet原生方法获取Session .java文件内容如下&#xff1a; setSession方法用于设置Session对象的内容&#xff1b;…

文件输入/输出流(I/O)

文章目录 前言一、文件输入\输出流是什么&#xff1f;二、使用方法 1.FileInputStream与FileOutputStream类2.FileReader与FileWriter类总结 前言 对于文章I/O(输入/输出流的概述)&#xff0c;有了下文。这篇文章将具体详细展述如何向磁盘文件中输入数据&#xff0c;或者读取磁…

面试八股——数据库——事务

概述 事务的特性&#xff08;ACID&#xff09; 原子性&#xff1a;事务是不可分割的操作单元&#xff0c;要么全部成功&#xff0c;要么全部失败。 一致性&#xff1a;事务结束时&#xff0c;所有数据都必须保证一致状态。 隔离性&#xff1a;事务在独立环境运行&#xff0c;…

Burp Suite Professional 2024.3.1 for Windows x64 - 领先的 Web 渗透测试软件

Burp Suite Professional 2024.3.1 for Windows x64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接&#xff1a;Burp Suite Professional 2024.3.1 for Windows x64 - 领先的 Web 渗透测试软件&#xff0c;查看最新版。原创作品&#xff0c;转…

OpenGL Assimp 加载3D模型介绍

OpenGL Assimp 加载3D模型介绍 Assimp对应模型结构体解说 所有的模型、场景数据都包含在scene对象中&#xff0c;如所有的材质和Mesh。同样&#xff0c;场景的根节点引用也包含在这个scene对象中 场景的Root node&#xff08;根节点&#xff09;可能也会包含很多子节点和一个…

微服务面试题一

1.SOA、分布式、微服务之间有什么关系和区别&#xff1f; 分布式架构是指将单体架构中的各个部分拆分&#xff0c;然后部署不同的机器或进程中去&#xff0c;SOA和微服务基 本上都是分布式架构的SOA是⼀种⾯向服务的架构&#xff0c;系统的所有服务都注册在总线上&#xff0c;…

“植物大战僵尸:机器学习引领游戏AI新革命“

上期回顾&#xff1a; 今天给大家推荐一个Gtihub开源项目&#xff1a;PythonPlantsVsZombies&#xff0c;翻译成中就是植物大战僵尸。 《植物大战僵尸》是一款极富策略性的小游戏。可怕的僵尸即将入侵&#xff0c;每种僵尸都有不同的特点&#xff0c;例如铁桶僵尸拥有极强的抗…

开源推荐榜【Casbin.NET 一个为.NET(C#)项目设计的高效且强大的访问控制库】

Casbin 是一个强大高效的开源访问控制库&#xff0c;支持各种 访问控制模型 , 如 ACL, RBAC, ABAC 等。 我们希望可以让指定的主体 subject&#xff0c;可以访问指定的资源 object&#xff0c;访问可以是读和写。这就是 Casbin 使用最广泛的方式。也称为 { subject, object, ac…

【MATLAB源码-第20期】基于matlab的短波通信多径信道仿真,多径数目为3,用QPSK来测试误码率效果输出误码率对比图。

1、算法描述 短波通信是一种使用短波频段的无线电通信技术&#xff0c;它具有以下特点&#xff1a; 1. 频段范围&#xff1a;短波通信通常使用3MHz到30MHz之间的频段。这个频段之所以称为“短波”&#xff0c;是因为它的波长相对较短&#xff0c;适合进行长距离通信。 2. 长距…