吴恩达机器学习WEEK2
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=1∑nwjxj+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−α∂wj∂J(w,b)b=b−α∂b∂J(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=xmax−xminx−μ
其中, μ \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
这种方法叫做创建新特征
多元线性回归+特征工程
将多元线性回归与特征工程的思想结合起来,就是多项式回归的算法,这可以使我们获得更好的数据模型
对于通过面积来预测房价的例子,根据数据集的分布情况,可以看出如果使用二次函数来拟合,效果可能会更好,如下图:
但是考虑到二次函数在达到最高点之后会再次下降,而实际情况中房屋面积越大,价格应该是越高,因此对模型进行调整,改为三次函数模型
同时,在加入高次幂时,要记得对使用特征缩放得方法,保证我们的梯度下降算法有效的进行
除此之外,由于观察到随着面积的增长,价格增长的趋势不在那么陡峭,因此也可以考虑使用平方根函数
相关文章:
![](https://i-blog.csdnimg.cn/direct/f4c07354a94548fd8bc8b8c2d3441b45.png)
吴恩达机器学习WEEK2
COURSE1 WEEK2 多维特征 在线性回归中,往往特征不止一个,而是具有多维特征 例如,在预测房价的例子中,我们知道更多的信息: x 1 x_1 x1:房屋的面积 x 2 x_2 x2:卧室的数目 x 3 x_3 x3&a…...
![](https://www.ngui.cc/images/no-images.jpg)
yield and generator in python
首先,假设大家都对于pytyhon的List comprehension的使用有了一定经验(它可以用于list,set,和dict哦) 不熟悉的参考介绍: Comprehending Python’s Comprehensions – dbader.org generator generator是哦…...
![](https://i-blog.csdnimg.cn/direct/fcb4fc72b71340cf901655ff247b2044.png)
spring原理(自学第六天)
Aware 接口及 InitializingBean 接口 今天将会学到Aware 接口及 InitializingBean 接口 我们可以先了解他们的作用: 1. Aware 接口用于注入一些与容器相关信息, 例如 a. BeanNameAware 注入 bean 的名字 b. BeanFactoryAware 注入…...
![](https://img-blog.csdnimg.cn/img_convert/505f9d2ec41a89837c6407c86d9d3703.jpeg)
案例分享—国外优秀ui设计作品赏析
国外UI设计创意迭出,融合多元文化元素,以极简风搭配动态交互,打造沉浸式体验,色彩运用大胆前卫,引领界面设计新风尚 同时注重用户体验的深度挖掘,通过个性化定制与智能算法结合,让界面不仅美观且…...
![](https://img-blog.csdnimg.cn/c2738cd555604571bfd75b435e83482e.png)
【C++】简约与清晰的编程艺术
C编程的艺术:简约与清晰的实践之道 一、基础之美:基本类型与数据结构的力量二、函数与库类的艺术三、简约与清晰的实践之道 在C这一既古老又充满活力的编程语言世界里,程序员们常常面临着一个重要的选择:是追求代码的极致抽象与封…...
![](https://i-blog.csdnimg.cn/direct/a409565373f6407aba0c38d45f5a1230.png)
java之WIFI信号模块
开发步骤分为以下几点: 1.在 AndroidManifest 中声明相关权限(网络和文件读写权限) 声明权限: <uses-permission android:name"android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name"android.…...
![](https://www.ngui.cc/images/no-images.jpg)
Mybatis面试
Mybatis 面试 1、Mybatis 的执行流程是什么? 1、读取MyBatis配置文件:mybatis-config.xml 加载运行环境 和 映射文件 2、构造会话工厂 SqlSessionFactory (全局只有一个) 3、会话工厂创建SqlSession对象(项目与数据…...
![](https://www.ngui.cc/images/no-images.jpg)
Centos 8系统xfs文件系统类型进行扩容缩容 (LVM)
Centos 8系统xfs文件系统类型进行扩容缩容 (LVM),xfs分区类型是不支持正常缩容,只能强制缩容 1.磁盘情况:2.缩容home分区1.备份home数据:2.查找使用 /home 的进程:3.终止这些进程:4.卸载 /home …...
![](https://i-blog.csdnimg.cn/direct/70687b484309495bbade0ebce377d467.png#pic_center)
C语言基础知识之函数指针和指针函数
函数指针和指针函数 函数指针和指针函数指向函数的指针返回指针值的函数指针函数和函数指针的区别 问题1_1代码1_1结果1_1 函数指针和指针函数 指向函数的指针 用函数指针变量调用函数 可以用指针变量指向整型变量、字符串、数组,也可以指向一个函数。一个…...
![](https://i-blog.csdnimg.cn/direct/ee05febc7990477fb81f2236d6ac7ae7.png)
【Unity】web gl inputFied 中文输入,同时支持TextMeshInputFied,支持全屏
同时支持TextMeshInputFied,支持全屏。 使用github包【WebGLInput】:https://github.com/kou-yeung/WebGLInput 需要资源的在这里也可以下载 https://download.csdn.net/download/weixin_46472622/89600795 用于unity web gl 中文输入,只需…...
![](https://www.ngui.cc/images/no-images.jpg)
vue3+vite全局引入less变量和函数
需要在vite配置 plugins: [css: {preprocessorOptions: {less: {additionalData: import "./src/styles/variables.module.less"; import "./src/views/Visualization/component/ViewportCom/px2viewport.less";,javascriptEnabled: true}}}, ]多个文件按…...
![](https://i-blog.csdnimg.cn/direct/517b0ce0568849979be87c00a0286c3c.jpeg)
H81002S 1.7mm网络变压器:BMS汽车蓝牙接收器中的超薄共模电感科技
华强盛导读:在当今这个日新月异的汽车科技领域,每一处细节都蕴含着创新与突破。作为电动汽车心脏的电池管理系统(BMS),其高效稳定的运行不仅关乎续航与安全,更是智能化驾驶体验的基石。而在这背后ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
C语言.回调函数
回调函数 回调函数也是一个函数。与一般函数直接调用区别在于,使用回调函数的过程,是一个函数将另一个函数作为参数调用。而被用来调用的那个函数,就是回调函数。 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地…...
![](https://i-blog.csdnimg.cn/direct/3d0e93c022f643d3b2dd1b99d07c9749.gif#pic_center)
《从零开始:使用Python构建简单Web爬虫》
前言 随着互联网信息的爆炸性增长,如何高效地获取和处理这些数据变得越来越重要。Web爬虫作为一种自动化工具,可以帮助我们快速抓取所需的网页内容。本文将介绍如何使用Python编写一个简单的Web爬虫,并通过实例演示其基本用法。 准备工作 …...
![](https://i-blog.csdnimg.cn/direct/a792226f7ac0479ab50f5c49823fe316.png)
最新个人免签约支付系统源码|PHP源码 | 码支付系统 | ThinkPHP6框架 | 开源
源码介绍: 这个最新的个人专用免签约支付系统源码!是PHP源码写的哦,而且是用ThinkPHP6框架开发的,完全开源的码支付系统。 这个系统适合个人用户使用,作为收款的免签约解决方案。它还加入了监控端,可以拒…...
![](https://i-blog.csdnimg.cn/direct/160a864ab73e48499d4db80cd42ddc80.png)
The Llama 3 Herd of Models 第4部分后训练的全文
Llama 3前三部分包括介绍、总体概述和预训练https://blog.csdn.net/qq_51570094/article/details/140682445?spm=1001.2014.3001.5501 4 Post-Training 后训练 我们通过应用几轮后训练6或将模型与人类反馈对齐来生成对齐的Llama 3模型(Ouyang等人,2022;Rafailov等人,2024)在…...
![](https://i-blog.csdnimg.cn/direct/332e48a2107640af9280a990ae48b516.png)
MongoDB性能调优
文章目录 MongoDB性能调优MongoDB性能不佳原因影响MongoDB性能的因素MongoDB性能监控工具mongostatmongotopProfiler模块db.currentOp() MongoDB性能调优 MongoDB性能不佳原因 慢查询阻塞等待硬件资源不足 1,2通常是因为模型/索引设计不佳导致的 排查思路:按1-2…...
![](https://i-blog.csdnimg.cn/direct/68262f1d91a24e8680db0920d957d142.png)
【Qt开发】调试log日志QDebug重定向输出到textEdit等控件(qInstallMessageHandler回调函数)
【Qt开发】调试log日志QDebug重定向输出到textEdit等控件(qInstallMessageHandler回调函数) 文章目录 Log输出方式qInstallMessageHandler回调函数线程安全textEdit控件附录:C语言到C的入门知识点(主要适用于C语言精通到Qt的C开发…...
![](https://i-blog.csdnimg.cn/direct/420136a0b0604f239e1507957de5131a.png)
【JavaEE精炼宝库】 网络编程套接字——UDP业务逻辑 | TCP流套接字编程及业务逻辑实现
文章目录 一、UDP业务逻辑实现二、TCP流套接字编程2.1 API 介绍:2.1.1 ServerSocket:2.1.2 Socket: 2.2 Java流套接字通信模型:2.3 代码示例:2.3.1 TCP Echo Server:2.3.2 TCP Echo Client:2.3.…...
![](https://www.ngui.cc/images/no-images.jpg)
前端过渡动画
前端过渡动画 vue3 1、组件进入视口时向上移动且渐显 1、创建js文件addViewportEffect.js function slideDownEffect(element) {console.log("执行");element.style.transform translateY(0);element.style.opacity 1; }/*** 添加视口效果到指定的类名元素上。…...
![](https://www.ngui.cc/images/no-images.jpg)
actual combat 38 ——vue
vue-cli脚手架 创建命令:vue create 项目名称 eslint 如何关闭? vue.config.js文件中加 module.exports {lintOnSave: false }文件全代码: const { defineConfig } require(vue/cli-service) module.exports defineConfig({transpile…...
![](https://www.ngui.cc/images/no-images.jpg)
测试面试宝典(四十七)— 功能测试用例一般包含哪些内容
首先,明确测试用例的编号和名称,以便于识别和管理。 其次,详细描述测试的目标和背景,让其他人能够清楚了解该测试用例的目的和适用场景。 接着是测试的步骤,需要清晰、准确地列出每一个操作步骤,包括输入…...
![](https://www.ngui.cc/images/no-images.jpg)
rust_mac环境安装
在 macOS 上安装 Rust 很简单。你可以使用 Rust 提供的安装工具 rustup。下面是安装步骤: 打开终端。 运行以下命令以安装 rustup 和 Rust: curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh按照提示进行操作: 这个命令将下载并…...
![](https://i-blog.csdnimg.cn/direct/a37c10d695274ffeb4e88b1660a5197a.png)
【前端面试】七、算法-递归
常考算法 排序算法:快速排序、归并排序、堆排序等。 查找算法:二分查找、哈希表查找等。 动态规划:解决最优化问题,如斐波那契数列、最长公共子序列等。 图论算法:最短路径(Dijkstra、Floyd-Warshall&am…...
![](https://i-blog.csdnimg.cn/direct/bc35cfc83d334437bf76c6d35f6f4dd1.png)
CmsEasy逻辑漏洞--零元购
CmsEasy逻辑漏洞--零元购 选择购买MackBook 购买成功后会员中心发现多出8100快钱 然后就可以正常购买了...
![](https://i-blog.csdnimg.cn/direct/c7d941f5c85247dfac8ab38b13076514.png)
Linux 内核源码分析---I/O 体系结构与访问设备
I/O 体系结构 与外设的通信通常称之为输入输出,一般都缩写为I/O。 在实现外设的I/O时,内核必须处理3个可能出现的问题: (1)必须根据具体的设备类型和模型,使用各种方法对硬件寻址; (…...
![](https://img-blog.csdnimg.cn/img_convert/1158f126bef4cc6e09760476b11c8fcf.png)
在cPanelWHM中如何重置 MySQL 用户帐户密码
更改MySQL用户账户密码非常简单。服务器管理员可以在WHM中编辑任何MySQL用户的帐户。cPanel用户可以编辑其帐户管理的数据库的密码。 在WHM中更改MySQL用户帐户密码 打开WHM,在侧边菜单中的SQL服务下选择“Change MySQLUser Password”。Hostease的服务器产品提供稳…...
![](https://i-blog.csdnimg.cn/direct/0b379bbd79834ff39b3625d617844f8b.png)
软件测试基础1--功能测试
1、什么是软件测试? 软件是控制计算机硬件运行的工具。 软件测试:使用技术手段验证软件是否满足使用需求,为了发现软件功能和需求不相符合的地方,或者寻找实际输出和预期输出之间的差异。 软件测试的目的:减少软件缺陷…...
![](https://i-blog.csdnimg.cn/direct/ff6859130f4f497c96cf18d9ec55335b.png#pic_center)
《计算机网络》(第8版)第9章 无线网络和移动网络 复习笔记
第 9 章 无线网络和移动网络 一、无线局域网 WLAN 1 无线局域网的组成 无线局域网提供移动接入的功能,可分为两大类:有固定基础设施的和无固定基础设 施的。 (1)IEEE 802.11 IEEE 802.11 是无线以太网的标准,是有固定…...
![](https://i-blog.csdnimg.cn/direct/ff401d1e28a6475c99acfce33fbb5c3b.png)
非负数、0和正整数 限制最大值且保留两位小数在elementpuls表单中正则验证
一、结构 <el-form-item label"单价:" prop"price"><el-inputv-model.trim"formData.price"placeholder"请输入"blur"formMethod.fixTwo"><template #append>(元)</template></el-i…...
17做网站新塘牛仔城/网站收录情况
每一个 Confluence 空间都有一个 空间标识(space key),这个空间标识是简短并且是唯一的,这个标识被用来构建到空间的 URL 中。 当你创建一个站点空间,Confluence 将会为你建议一个使用的空间 Key。你也可以使用你自己认…...
![](https://img-blog.csdnimg.cn/d4a9fd530fd347139b7d94e4f081ea77.png)
广州定制型网站/人力资源和社会保障部
前言 在上一篇文章中 我向大家介绍了如何 在node-red中使用高德地图的api sdk。并向大家展示了如何使用template来显示一个地图组件。那么本篇文件中我就教大家如何实现实现一个3D地图显示到面板上。 并实现一个地图中常用的功能,轨迹回放,这在路线规划,车辆导航中非常使用…...
![](/images/no-images.jpg)
模板网站可以做seo吗/有做网站的吗
题目描述 求一张图的严格次小生成树的边权和,保证存在。 输入 第一行包含两个整数N 和M,表示无向图的点数与边数。 接下来 M行,每行 3个数x y z 表示,点 x 和点y之间有一条边,边的权值为z。 输出 包含一行,…...
![](https://img-blog.csdnimg.cn/img_convert/d8626ec91153760f77eb08c8903ac31e.png)
做网站要买多少服务器空间/比较好的软文发布平台
使用模拟器运行应用或者是游戏的时候,发现模拟器无法运行不然就是卡顿,这时候需要确认是不是电脑问题引起的模拟器问题,客服一般会请求并索要你的电脑配置来进一步解决问题;而很多模拟器小白不知道如何查看电脑配置,查…...
![](/images/no-images.jpg)
网站建设项目描述范文/百度如何收录网站
解决微信浏览器内video全屏问题参考文章: (1)解决微信浏览器内video全屏问题 (2)https://www.cnblogs.com/phpjinggege/p/8270742.html 备忘一下。...
![](/images/no-images.jpg)
做网站备案成功后怎么办/关键词优化课程
【来信】 我是一名准大二生,信息安全(网络安全)专业。想利用暑假时间学一些知识,但是不知道该学些什么,该怎么学。我大一学了c语言和c+,上大学之前没有接触过编程,也不了解计算机…...