【吴恩达机器学习笔记】十二、降维

news/2024/11/28 15:48:44/

✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
📣专栏定位:为学习吴恩达机器学习视频的同学提供的随堂笔记。
📚专栏简介:在这个专栏,我将整理吴恩达机器学习视频的所有内容的笔记,方便大家参考学习。
💡专栏地址:https://blog.csdn.net/Newin2020/article/details/128125806
📝视频地址:吴恩达机器学习系列课程
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

十二、降维

1. 目标1:数据压缩

数据压缩有挺多的好处,可以减少数据存储的内存,可以加快算法运行速度等等,让我们先来看看将二维降成一维是如何操作的吧。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bRVKa8Ko-1670200062549)(吴恩达机器学习.assets/image-20211115132037106.png)]

可以看到上面设定了一条绿线,让所有样本都往绿线上投影,然后单独提出来得到一个坐标轴,这时我们就可以通过新的数z来代表每一个样本的位置,实现了二维到一维的降维,接下来再看看三维到二维的过程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ibehxdd-1670200062553)(吴恩达机器学习.assets/image-20211115132438029.png)]

过程和二维到一维的比较相似,只不过我们现在是通过让所有样本投影到一个平面上,这样就可以设置两个新的数z1和z2来表示样本的位置,从而实现了三维到二维的降维。

2. 目标2:可视化

这节课再来将一下降维的第二个应用可视化,假设我们现在有很多数据关于每个国家的信息,每个国家都有50个指标表示即50维,现在我们通过一系列变换将50维降到2维,这可能就很难理解2维是如何表示国家的情况。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SgMcDky6-1670200062556)(吴恩达机器学习.assets/image-20211115133514390.png)]

那我们可以通过图像去理解这些信息,假设横轴代表国家的GDP而纵轴代表人均的GDP,就能很直观的表现出来。

3. 主成分分析问题规划

主成分分析(PCA)问题规划

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gNql79Bt-1670200062557)(吴恩达机器学习.assets/image-20211118092555124.png)]

这种算法是最强大的无监督算法之一,其原理是通过将样本通过投影到更低维度上从而找到一个投影误差最小的维度,拿2D到1D距离,PCA就是通过计算所有样本到直线垂直距离即投影误差,找到平方投影误差最小的直线,同理换成3D到2D就是将直线换成了平面。

并且PCA不是线性回归,虽然与线性回归比较相似。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0LhKnUkM-1670200062562)(吴恩达机器学习.assets/image-20211118093226322.png)]

上图左侧代表的是线性回归图像,而右侧则是PCA,可以发现线性回归问题中是找到样本竖直方向与直线的距离的最小误差,而PCA中则是样本与直线的垂直距离。还有一点不同就是,线性回归是要预测y值的,而PCA并没有什么预测的概念,本身作用是用于降维,而特征之间并没有什么特殊关系。

接下来,我们来讲讲PCA算法的详细步骤,但在此之前,我们首先要执行的是均值标准化,这里的流程实际上是和之前有监督学习的数据处理步骤是一样的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cchxNySw-1670200062565)(吴恩达机器学习.assets/image-20211118101012675.png)]

并且如果特征值相差过大,还需要进行特征缩放。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XgyE1VfF-1670200062566)(吴恩达机器学习.assets/image-20211118094846128.png)]

如果你想减少数据即从N维降到K维,首先你要计算协方差矩阵(covariance matrix),要注意的是上面sigma矩阵和求和sigma是完全不一样的,虽然符号十分相似。然后再计算**奇异值分解(svd)**得到U,S,V矩阵,而svd函数可以通过数值库找到对应的代码。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q3uMKrv6-1670200062568)(吴恩达机器学习.assets/image-20211118095402373.png)]

而得到的USV中的U矩阵尤为关键,它是一个n阶方阵,我们要取其中的前k项从而组成Ureduce矩阵,然后计算其与样本向量的乘机得到z,这里的样本可以用训练集中的也可以用交叉验证集中的。

4. 主成分数量选择

我们在使用PCA的时候还要考虑到k的选择,以下就是我们选择k的标准。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8B4ubBMC-1670200062570)(吴恩达机器学习.assets/image-20211118102142247.png)]

你要计算平均平方投影误差与总平方误差,然后使两者相除的数值尽量的小,我们一般想让这个值尽量小于1%,或者我们也可以说尽量有大于99%的方差被保留即大于99%的数据被保留。

所以我们要该如何去选取k呢,下面左侧的方法就比较笨拙,通过不断尝试k值,然后反复计算平均平方投影误差和总平方投影误差,这样每次都会调用一次奇异化分解,导致效率变低。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oWDFyImM-1670200062571)(吴恩达机器学习.assets/image-20211118103233090.png)]

所以我们会用上图右侧的方法,利用之前奇异化分解得到的矩阵中的S矩阵,然后将之前的算式改成上图右侧的算式,这样我们就只用计算一次奇异化分解,每次只用计算只用调用S矩阵中的值即可,同样只用尽量让上面算式结果小于0.01,下面就是具体算式。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Au532Rgo-1670200062572)(吴恩达机器学习.assets/image-20211118103945918.png)]

5. 压缩重现

我们前面通过投影将高维转化为低维,同样我们也可以通过压缩后的数据将低维重现为高维。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j6iym39v-1670200062573)(吴恩达机器学习.assets/image-20211118104636862.png)]

重现后的x都在之前映射的直线上,不等于原来的x,但都接近于原来的x,具体步骤通过Ureduce乘以z即可。

6. 应用PCA的建议

我们在进行监督学习时有时候会碰到样本数据量特别大的情况,这时候直接运用逻辑回归、支持向量机等算法可能会运行的比较慢,这时候我们可以通过PCA来降维从而加速监督学习。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gsMInUs5-1670200062575)(吴恩达机器学习.assets/image-20211118133902927.png)]

我们可以从训练集中提取出x特征(注意只能是训练集),然后通过PCA算法将这些特征压缩成z,上面的这个例子是将10000维降到了1000维,实际中可能没这么夸张,可能会降1/5或者1/10之类,并保留大部分的方差。

现在,我们就可以来总结一下PCA的应用了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-11Nu6Wp5-1670200062576)(吴恩达机器学习.assets/image-20211118134320285.png)]

PCA可以用于数据的压缩,从而减少存储数据的内存或者磁盘,或者加速学习算法。

当然PCA还可以应用于可视化,我们一般运用2D或3D进行可视化。

还有一点要提的是,不要用PCA去防止过拟合情况。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4onumrpE-1670200062577)(吴恩达机器学习.assets/image-20211118134916379.png)]

也许,你用PCA去防止过拟合得到的效果不错,即使你保留了99%的方差,但仍然有可能会丢失一些有价值的信息,所以这里建议使用正则化去防止过拟合是更好的选择。

还有一个误区就是,很多人会滥用PCA,有些人甚至会在项目计划开始时就使用PCA,这里建议先不使用PCA去尝试训练模型,因为有时候可能不使用PCA也能达到同样的效果,就不用花很多时间在PCA的计算上面了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dZSHcDoB-1670200062578)(吴恩达机器学习.assets/image-20211118135437524.png)]


http://www.ppmy.cn/news/1662.html

相关文章

毕设项目 - SSM留学生交流互动论坛系统(含源码+论文)

文章目录1 项目简介2 实现效果2.1 界面展示3 设计方案3.1 概述3.2 系统流程3.2.1 系统开发流程3.2.2 学生登录流程3.2.3 系统操作流程3.3 系统结构设计4 项目获取1 项目简介 Hi,各位同学好呀,这里是M学姐! 今天向大家分享一个今年(2022)最新…

i.MX 6ULL 驱动开发 二十八:网络设备

一、网络设备的系统框图 MAC:工作在网络模型的数据链路层,通过 RGMII 或 RMII 接口连接 PHY,MAC 控制器中的 MDIO 控制器提供 MDIO 接口,用于访问 PHY 寄存器。 PHY:工作在网络模型的物理层,是 IEEE802.3 …

OpenCV入门(C++/Python)- 使用OpenCV调整尺寸大小(三)

使用OpenCV调整图像大小。要调整图像的大小,可以根据每个轴(高度和宽度)进行缩放,考虑指定的缩放因素,或者只需设置所需的高度和宽度。 调整图像大小时: 如果想在调整后的图像中保持相同的宽高比&#xf…

【HTML期末作业】大学生抗疫感动专题网页设计作业 抗疫最美逆行者网页 致敬疫情感动人物网页设计制作

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

深度学习 RNN循环神经网络原理与Pytorch正余弦值预测

深度学习 RNN循环神经网络原理与Pytorch正余弦值预测一、前言二、序列模型三、不含序列关联的神经网络四、包含隐藏状态的卷积神经网络五、正余弦预测实战六、参考资料一、前言 前面我们学习了前馈神经网络、卷积神经网络,它们有一个特点,就是每次输出跟…

做了8年前端,感谢那些优秀的后端,陪伴我工作,教会我成长

☆ 前段时间由于一时的头脑发热,写了一篇《做了8年前端,细说那些曾经让你浴霸不能的后端》的博客,虽然每个细节也都属实吧,但始终是一些负能量的东西,建议大家不要去看了,今年互联网情况已经这样了&#xf…

Python学习小组课程P6-Python办公(3)邮件与钉钉消息通知

Python办公(3)邮件与钉钉消息通知一、前言二、知识点1 发送邮件2 钉钉机器人消息通知一、前言 注意:此为内部小组学习资料,非售卖品,仅供学习参考。 本系列课程: Python学习小组课程-课程大纲与Python开发…

Java实现 LeetCode 500.键盘行

500.键盘行 给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。 美式键盘 中: 第一行由字符 “qwertyuiop” 组成。第二行由字符 “asdfghjkl” 组成。第三行由字符 “zxcvbnm” 组成。 示例 1&…