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

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

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.mzph.cn/bicheng/32.shtml

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

相关文章

python中的列表、元组、字典、集合(集合篇)

数据类型定义符号访问元素是否可变是否重复是否有序列表 [ ]索引可变可重复有序元组()索引不可变可重复有序字典{key:value}键可变可重复无序集合{ }可变不可重复无序 基本概念 python语言中的集合是无序的、可变的容器类对象,所…

4.16作业

1.总结keil5下载代码和编译代码需要注意的事项 一、在编译代码时需要先点击魔术棒点击 修改flash Downlond 和pack 二、可以通过F12转跳到对应的函数中,查看函数的原型 三、注释出现乱码通过 Edit中的中的来修改 四、要先bulid在load 2.总结STM32Cubemx的使用方…

NLP学习(1)-搭建环境

前言 仅记录学习笔记,如有错误欢迎指正。 环境搭建 一、环境软件安装: 1、Anaconda安装(一款可以同时创建和管理多个python环境的软件) (1) 安装链接: https://blog.csdn.net/m0_61531676/article/details/126290…

【python】描述性统计计算偏斜度和峭度

文章目录 1.编写计算偏斜度和峭度的函数。并用自己编写的函数计算课本23页的习题1.5数据的偏斜度和峭度。2.从1.5数据中随机抽取2个容量为20的样本,分别计算它们的平均数和标准差3.请绘制给定数据的频率分布直方图,计算数据的均值、标准差、偏斜度和峭度…

Ribbon 添加右侧区域菜单项

效果图如下所示: 类似与上图效果所示,代码如下: RibbonPage* pageHome1 ribbonBar()->addPage(tr("Home")); //实现代码: { QMenu* menuOptions ribbonBar()->addMenu(tr("Options"))…

古籍数字化平台:精校功能介绍

一、平台介绍 古籍数字化平台,本着公益性、低成本、合作共赢的三大原则,功能涵盖古籍OCR识别、族谱县志OCR识别、民国报纸OCR识别、图文逐字校对、数据著录、智能标点分段、精编排版、智能白话译文等,是一站式线上整理全流程平台。 平台集成…

C语言 【基础语法】

一、编程环境搭建 编译器:gcc 集成开发环境:vscode 1.1 安装vscode 1.2 设置中文包 插件 1.3 设置C/C扩展 安装 C/C Compile Run extension 和 C/C Extension Pack 扩展 二、基础语法 2.1 第一个c语言程序 2.2 数据类型 2.2.1 变量的语法(重点) …

漏洞及漏洞管理

01 漏洞基础 原则上,漏洞是指系统或网络中的一个脆弱点,其可能会被网络犯罪分子利用,以获得未经 授权的访问,从而造成破坏。漏洞利用之后会发生什么呢,谁也说不准——安装恶意软件、 窃取敏感数据、利用恶意代码造成…

【QT进阶】Qt Web混合编程之QWebEngineView基本用法

往期回顾 【QT入门】Qt自定义控件与样式设计之自定义QTabWidget实现tab在左,文本水平的效果-CSDN博客【QT进阶】Qt Web混合编程之CEF、QCefView简单介绍-CSDN博客 【QT进阶】Qt Web混合编程之VS2019 CEF的编译与使用-CSDN博客 【QT进阶】Qt Web混合编程之QWebEngi…

node.js-fs模块、path模块

fs模块-读写文件 模块:类似插件,封装了方法/属性 fs模块:封装了与本机文件系统进行交互的,方法/属性 语法: 1)加载fs模块对象 const fsrequire(fs)//fs 是模块标识符:模块的名字 2&#x…

文献学习-38-用于增量组织病理学分类的内存高效提示调整

​ Memory-Efficient Prompt Tuning for Incremental Histopathology Classification Authors: Yu Zhu, Kang Li, Lequan Yu, Pheng-Ann Heng Source: The Thirty-Eighth AAAI Conference on Artificial Intelligence (AAAI-24) ​​ Abstract 最近的研究在组织病理学分类方面…

Python教学入门:流程控制

条件语句(if 语句): 条件语句用于根据条件的真假执行不同的代码块。 x 10if x > 0: # 如果 x 大于 0print("x 是正数") # 输出:x 是正数 elif x 0: # 如果 x 等于 0print("x 是零") else: # 如果以…

Python基于Django的旅游城市关键词分析和提取,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

【Linux系统编程】第五弹---基本指令(三)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、grep指令 2、zip/unzip指令 3、tar指令 4、bc指令 5、uname指令 6、重要的几个热键 7、拓展指令 总结 1、grep指令 …

大屏-flex布局

<div class"container"><div class"title">标题</div><div class"content"><div class"item"></div><div class"item" style"width: calc((100% - 30) / 3 * 2)"><…

C# Solidworks二次开发:程序工具界面和选项相关API详解

大家好&#xff0c;今天要讲的是关于程序工具相关的API介绍。 下面是要介绍的API: (1)第一个为GetAutoPartSimplification&#xff0c;这个API的含义为获取简化配置的指针&#xff0c;下面是官方具体解释&#xff1a; 其输入参数的类型在上一篇文章中已经介绍过了gtError_e&a…

Kimi(月之暗面AI)模型上线,支持长文本输入分析文档内容

国产AI模型目前在市场中正趋于白热化&#xff0c;各大国产AI厂商百花齐放&#xff0c;纷纷优化升级语言模型。近日&#xff0c;备受瞩目的国产AI大模型“月之暗面”也不例外&#xff0c;它对去年10月推出的重量级模型moonshot进行了显著的升级&#xff0c;进一步无损扩展了上下…

(五)C++自制植物大战僵尸游戏LoadingScene的实现讲解

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/xjvbb 一、类介绍 游戏启动后就会立即切换到游戏加载场景中。只有游戏资源文件加载完成后&#xff0c;才能进入游戏。Loadingscene类继承Cocos2d-x中的Scene父类&#xff0c;表明Loadingscene是一个场景类。切换到Loadi…

2024年苹果审核4.3相关问题综述

文章标签&#xff1a;UI、iOS、Objective-C、开发语言 苹果审核中的4.3问题是开发者关注的焦点之一&#xff0c;本文对此进行了综述&#xff0c;总结了不同情况下的处理方式和优化策略。 第一种4.3 该类问题常见于代码或UI的重复率过高&#xff0c;苹果会直接拒绝应用。开发…