吴恩达机器学习COURSE1 WEEK2

news2024/12/28 4:17:32

COURSE1 WEEK2

多维特征

在线性回归中,往往特征不止一个,而是具有多维特征

例如,在预测房价的例子中,我们知道更多的信息:

x 1 x_1 x1:房屋的面积

x 2 x_2 x2:卧室的数目

x 3 x_3 x3:楼层数目

x 4 x_4 x4:房屋的年限

因此,我们每一个特征 x ( i ) x^{(i)} x(i) 的表示变成了向量形式, x j ( i ) x^{(i)}_j xj(i) 表示具体的某的 特征( i 行 j 列)

从而,我们的线性模型公式转化为:
f w , b ( x ) = w 1 x 1 + w 2 x 2 + w 3 x 3 + w 4 x 4 + b f_{w,b}(x) = w_1x_1 + w_2x_2 + w_3x_3 + w_4x_4 + b fw,b(x)=w1x1+w2x2+w3x3+w4x4+b
其中, w i w_i wi可以理解为第 i i i 个特征对目标的贡献程度

进而,推广到更一般的形式:
f w , b ( x ) = w 1 x 1 + w 2 x 2 + ⋯ + w n x n + b f_{w,b}(x) = w_1x_1 + w_2x_2 + \dots + w_nx_n + b fw,b(x)=w1x1+w2x2++wnxn+b
将所有的参数 w i w_i wi组合在一起,形成向量 w ⃗ = [ w 1 , w 2 , … , w n ] \vec {w} = [w_1, w_2, \dots, w_n] w =[w1,w2,,wn],将所有的特征 x i x_i xi 组合在一起,形成一个向量 x ⃗ = [ x 1 , x 2 , … , x n ] \vec{x} = [\boldsymbol x_1, \boldsymbol x_2, \dots, \boldsymbol x_n] x =[x1,x2,,xn]

从而,将模型形式可以写为:
f w ⃗ , b ( x ⃗ ) = w ⃗ ⋅ x ⃗ + b f_{\vec w, b}(\vec x) = \vec w \cdot \vec x + b fw ,b(x )=w x +b
其中, ⋅ \cdot 代表点乘

这种具有多个特征的线性回归模型叫做多元线性回归

向量化

在多元线性回归中,使用向量化的方法,可以使得代码的编写更加简洁,实现更加快速

如果不使用向量化,在代码的编写中,我们需要计算以下结果:
f w ⃗ , b ( x ⃗ ) = ∑ j = 1 n w j x j + b f_{\vec w, b}(\vec x) = \sum _{j=1}^{n}w_jx_j + b fw ,b(x )=j=1nwjxj+b
n n n 较大时,需要较大的计算量,实现较为复杂

f = 0
for j in range(n):
    f = f + w[j] * x[j]
f = f + b

所谓向量化,就是把数据都看作向量,在每一步的计算中使用向量的计算。例如多元线性回归模型,将 w w w 和 特征 x x x 进行点乘计算

f = np.dot(w, x) + b

向量化的好处:

  • 使得代码更加简洁
  • 运算速度更快

多元线性回归的梯度下降

与单变量线性回归的梯度下降相似,唯一不同的是,此时要把参数 w w w 当作是一个向量 w ⃗ \vec w w ,因此得到参数更新的公式:
w j = w j − α ∂ ∂ w j J ( w ⃗ , b ) b = b − α ∂ ∂ b J ( w ⃗ , b ) w_j = w_j - \alpha \frac{\partial}{\partial w_j}J(\vec w, b) \\ b = b - \alpha \frac{\partial}{\partial b}J(\vec w, b) wj=wjαwjJ(w ,b)b=bαbJ(w ,b)
在这里插入图片描述

正规方程

正规方程即最小二乘法

由于我们要求解损失函数最小的时候对应的参数值,所以不妨将损失函数看作是参数的函数,然后对损失函数求一阶导函数,令一阶导函数等于 0,求解其极小值点,就对应着最优的参数

特点:

  • 仅适用于线性回归
  • 解决最小化参数问题(同梯度下降算法),但是不需要迭代
  • 当特征较多时( > 10000),运行速度较慢

只要特征变量的数目并不大,标准方程是一个很好的计算参数的替代方法。具体地说,只要特征变量数量小于一万,通常使用标准方程法,而不使用梯度下降法。

特征缩放

使用特征缩放的方法,能够使得梯度下降算法的运行速度得到提升

所谓特征缩放,就是在进行模型训练之前,对数据进行归一化操作

例如,以房价预测为例,特征又房屋面积 x 1 x_1 x1 和卧室数量 x 2 x_2 x2,因此:
p r i c e ^ = w 1 x 1 + x 2 x 2 + b \hat {price} = w_1x_1 + x_2x_2 + b price^=w1x1+x2x2+b
其中, x 1 ∈ [ 300 , 2000 ] , x 2 ∈ [ 0 , 5 ] x_1 \in [300,2000],x_2 \in [0, 5] x1[300,2000]x2[0,5]

数据集:

$x_1 = 2000, x_2 = 5, price = $500K$

由此可以看出,我们的参数 w 1 w_1 w1应该较小, w 2 w_2 w2 应该较大

即,对于一个好的模型来说:

  • 当特征的可能指较小时,其参数的合理值将相对较大
  • 当特征的可能指较大时,其参数的合理值将相对较小

当每个特征的取值范围相差较大时,特征关系与损失函数图像如下:
在这里插入图片描述

如右侧的损失函数梯度图,当我们使用梯度下降算法时,如果学习率设置不当,算法会来回左右横跳动,经过很长一段时间才会收敛到最优值

在这里插入图片描述

当我们使用特征缩放时,即将 x 1 x_1 x1 x 2 x_2 x2进行重新标度,归一化到区间 [ 0 , 1 ] [0,1] [0,1]内,保证了两个特征拥有一个可比较的范围,从而使得损失函数梯度图更像一个圆形,便于算法能够快速收敛到最优点
在这里插入图片描述

特征缩放方法

特征缩放的目的是将一列数据变化到某个固定区间(范围)中

均值归一化

将数据归一化到区间 [ − 1 , 1 ] [-1,1] [1,1]
x = x − μ x m a x − x m i n x = \frac{x - \mu}{x_{max} - x_{min}} x=xmaxxminxμ
其中, μ \mu μ 是数据 x x x 的均值
在这里插入图片描述

Z-score 归一化

即,将数据转化为均值为0,标准差为1的分布
x = x − μ σ x = \frac{x - \mu}{\sigma } x=σxμ
其中, μ \mu μ 是数据的均值, σ \sigma σ 是标准差
在这里插入图片描述

特征缩放的好坏,具体取决于所有特征进行特征缩放后的取值范围是否尽量一致,以保证梯度下降算法的有效进行

梯度下降法则

如何判断梯度下降是否收敛

一般而言,在模型训练阶段,随着迭代次数的进行,损失值如下图所示:
在这里插入图片描述

可以看到的是,当迭代次数大于300时,曲线接近平行,下降的趋势非常平缓,此时意味着我们的梯度下降开始收敛了

通常,可以使用 epsilon法进行自动收敛测试,即设置收敛阈值 ε = 0.001 \varepsilon = 0.001 ε=0.001,当损失值下降幅度小于阈值时,即认为算法开始收敛,但从实际来看,要想确定一个正确的阈值是非常困难的

如何设置学习率

如果学习率设置过大,则最终结果不容易收敛

如果学习率设置太小,则会导致算法运行较长时间
通过绘制损失函数与迭代次数关系的图像,如果损失函数出现时而下降,时而上升,即不是一直下降的趋势,那么则表明学习率的设置可能较大(也可能是代码存在错误

因此,在实际工作中,一般会选择一系列的值不断去尝试,且在尝试的过程中,只对模型的部分数据进行有限的迭代次数,通过对比来选择最优的学习率

多项式回归

特征工程

在实际问题中,使用的模型往往比较复杂,因此有时需要利用特征工程的方法来对模型加入一些重要的特征

例如,在预测房价时,目前存在临街长度 x 1 x_1 x1 和深度 x 2 x_2 x2,因此房价预测模型为:
f w ⃗ , b ( x ⃗ ) = w 1 x 1 + w 2 x 2 + b f_{\vec w, b}(\vec x) = w_1x_1 + w_2x_2 + b fw ,b(x )=w1x1+w2x2+b
在这里插入图片描述

但是在实际中,根据生活经验,使用房屋面积作为单特征可能会更好的帮助我们进行预测,因此引入第三个变量房屋面积 x 3 x_3 x3,且 x 3 = x 1 x 2 x_3 = x_1x_2 x3=x1x2,从而我们的模型转化为:
f w ⃗ , b ( x ⃗ ) = w 1 x 1 + w 2 x 2 + w 3 x 3 + b f_{\vec w, b}(\vec x) = w_1x_1 + w_2x_2 +w_3x_3 + b fw ,b(x )=w1x1+w2x2+w3x3+b
这种方法叫做创建新特征

多元线性回归+特征工程

将多元线性回归与特征工程的思想结合起来,就是多项式回归的算法,这可以使我们获得更好的数据模型

对于通过面积来预测房价的例子,根据数据集的分布情况,可以看出如果使用二次函数来拟合,效果可能会更好,如下图:

在这里插入图片描述

但是考虑到二次函数在达到最高点之后会再次下降,而实际情况中房屋面积越大,价格应该是越高,因此对模型进行调整,改为三次函数模型

在这里插入图片描述

同时,在加入高次幂时,要记得对使用特征缩放得方法,保证我们的梯度下降算法有效的进行

除此之外,由于观察到随着面积的增长,价格增长的趋势不在那么陡峭,因此也可以考虑使用平方根函数

在这里插入图片描述

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

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

相关文章

【嵌入式】常用英文缩写及单词整理

目录 嵌入式常用英文缩写及单词整理1. 缩写部分2. 词汇部分3. 语句部分4. 调试部分5. 结束语相关文章: 嵌入式常用英文缩写及单词整理 1. 缩写部分 缩写全称翻译AADCAnalog-to-Digital Converter模/数转换器,模数转换器ADUApplication data unit应用数…

KBEngine ue5

前言 最近在试 KBEngine 的 ue4 项目,它在 ue4 下能够正常编译使用,但是现在都已经进入 ue5 时代,那么能不能将现有工程移到 ue5 下呢? 使用 ue5 打开工程的报错处理 1、DefaultBuildSettings BuildSettingsVersion.V5; kbeng…

python.tkinter设计标记语言(渲染2-渲染器)

TOC 前言 本文仅作为笔记记录。 在前文中&#xff0c;我们通过标记意义解释生成了带有明确渲染要求的参数组&#xff0c;以<title>为例&#xff0c;我们获取了title, level两个明确的渲染标记&#xff0c;这一部分由Tin标记解释器完成&#xff0c;不需要编写者花费过多…

亚马逊、eBay、沃尔玛等海外跨境电商测评自养号的技术解决方案

随着跨境电商的蓬勃发展&#xff0c;卖家们对于提升店铺流量、销量以及产品评价的需求日益迫切。在这一背景下&#xff0c;海外跨境电商测评成为了一个备受瞩目的领域。作为一家专注于此领域的技术型公司&#xff0c;凭借其深厚的技术积累和丰富的实战经验&#xff0c;为卖家们…

supermap制作发布二三维地图服务

一、下载安装 软件版本&#xff1a; SuperMap iDesktopX 11i(2023) SP1 for Windows SuperMap iServer 11i(2023) SP1 for Windows 下载地址&#xff1a; http://support.supermap.com.cn/DownloadCenter/ProductPlatform.aspx 二、运行 服务端&#xff1a;双击iserver的…

HTML学习笔记——用HTML记录学习过程4——非主体结构元素

非主体结构元素主要是为了表达逻辑结构或者附加信息的元素 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>非主体结构元素</title> </head> <body> <header><h1>head…

大模型落地应用架构的一种模式

经过几个月的实践和探索&#xff0c;看过也经历过一些成型的项目了&#xff0c;如果是奔着落地去的&#xff0c;我们的目光不能只盯着大模型本身&#xff0c;而应该放眼甚至是需要投入精力去建设很多我们别的工作上。 本文&#xff0c;着重讲的是&#xff0c;我的理解下现实成…

「实战应用」着色器对图表控件LightningChart的影响及应用

LightningChart完全由GPU加速&#xff0c;并且性能经过优化&#xff0c;可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的2D&#xff0c;高级3D&#xff0c;Polar&#xff0c;Smith&#xff0c;3D饼/甜甜圈&#xff0c;地理地图和GIS图表以及适用于科学&am…

PySide入门实战之五 | 信号与槽函数之鼠标、键盘等事件

&#x1f680;&#x1f680;&#x1f680; Pyside6实战教程专栏目录入口&#xff1a;点击跳转 目录 一、前期准备二、鼠标触发事件鼠标拖动窗口 一、前期准备 我们采用Pyside入门实战之四中通过QTDesigner创建的界面&#xff0c;具体由两个Label和一个Button组件构成&#xff…

【图书推荐】《数据资产管理核心技术与应用》

内容简介 《数据资产管理核心技术与应用》深入探讨数据资产管理的核心技术与应用&#xff0c;融入作者在大数据领域多年的丰富经验。《数据资产管理核心技术与应用》为读者提供一套可以落地的数据资产管理框架&#xff0c;并详解两个基于该框架进行数据资产管理的应用案例&…

[米联客-安路飞龙DR1-FPSOC] UDP通信篇连载-09 ICMP层程序设计

软件版本&#xff1a;Anlogic -TD5.9.1-DR1_ES1.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用安路(Anlogic)FPGA 实验平台&#xff1a;米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 ht…

github技巧和bug解决方法短篇收集

有一些几句话就可以说明白的观点或者解决的的问题&#xff0c;小虎单独收集到这里。 Commits没有算入每天的activity fork的仓库是不算的。 Commits made in a fork will not count toward your contributions. 参考&#xff1a; Contribution activity not shown for github…

win7一键修复所有dll缺失详细方法,7个dll修复方法深度解析(2024)

dll文件是一种包含函数和其他关键信息的文件&#xff0c;供 Windows 应用程序使用。虽然大多数普通用户对.dll 文件的具体工作原理并不熟悉&#xff0c;但这些文件对于系统应用来说是至关重要的。通常情况下&#xff0c;人们在遇到因 DLL 文件缺失或损坏而导致的错误时&#xf…

Vue3+Ts项目中经常遇到导入组件,vscode报无法找到模块xxx,xxx隐式拥有 “any“ 类型解决办法~

1、报错截图&#xff1a; 2、解决办法&#xff1a;在确保路径正确的情况下&#xff0c;你会在 src 目录下找到一个名为 env.d.ts 的文件&#xff08;或者类似的名称&#xff09;。在这个文件中&#xff0c;你可以声明 .vue 文件的模块类型。例如&#xff1a;(这告诉 TypeScript…

探索Cohere的Prompt Tuner:革新你的提示优化工具

在今天的文章中&#xff0c;我们将深入探讨Cohere的Prompt Tuner。这是一款在你指尖的提示优化工具&#xff0c;至少这是他们所宣称的。Prompt Tuner的主要理念是&#xff0c;它提供了一种最简化、最标准化的方式来生成你所需要的提示。而最棒的部分是&#xff0c;你不需要成为…

vtkConnectivityFilter提取连通区域中的问题

直接使用vtkConnectivityFilter提取连通区域&#xff0c;渲染上没问题&#xff0c;但是打印出polydata中的点数&#xff0c;发现跟原始数据是一致的。 for (int i 0; i < numRegions; i){vtkSmartPointer<vtkConnectivityFilter> connectivityFilter vtkSmartPointe…

嵌入式人工智能(树莓派4B基础实验代码等)

本专栏收录了近40个实验,含全部实验代码,都已经打包。 1、简介 本实验平台为树莓派4B,处理器4核ARMV8架构-A72,内存8G版本,SD卡容量为64G。操作系统版本lsb_release -a 操作系统内核为uname -a 本专栏收录了树莓派系统的基本知识,环境基本配置,常用Linux系统操作、基…

Ecovadis丨Ecovadis认证丨Ecovadis评估

EcoVadis 是以下这样的一个存在和具有以下这些特点等&#xff1a; 背景方面&#xff1a; 它源自法国 &#xff0c;前身由“携手实现可持续发展 - 全球化学联盟&#xff08;TFS - CI&#xff09;”、“联合国全球契约组织&#xff08;UN Global Compact&#xff09;”、IPE公众…

<数据集>腐烂水果识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;3304张 标注数量(xml文件个数)&#xff1a;3304 标注数量(txt文件个数)&#xff1a;3304 标注类别数&#xff1a;6 标注类别名称&#xff1a;[good apple, bad apple, good orange, bad orange, good banana, bad …

从“抠图”到“抠视频”,Meta上新AI工具SAM 2。

继2023年4月首次推出SAM&#xff0c;实现对图像的精准分割后&#xff0c;Meta于北京时间2024年7月30日推出了能够分割视频的新模型SAM 2&#xff08;Segment Anything Model 2&#xff09;。SAM 2将图像分割和视频分割功能整合到一个模型中。所谓“分割”&#xff0c;是指区别视…