吴恩达机器学习笔记(八) —— 降维与主成分分析法(PCA)
主要内容:
一.降维与PCA
二.PCA算法过程
三.PCA之恢复
四.如何选取维数K
五.PCA的作用与适用场合
一.降维与PCA
1.所谓降维,就是将数据由原来的n个特征(feature)缩减为k个特征(可能从n个中直接选取k个,也能根据这n个重新组合成k个)。可起到数据压缩的作用(因而也就存在数据丢失)。
2.PCA,即主成分分析法,属于降维的一种方法。其主要思想就是:根据原始的n个特征(也就是n维),重新组合出k个特征,且这k个特征能最大量度地涵盖原始的数据信息(虽然会导致信息丢失)。有一个结论:当某一维的方差越大时,其所包含的信息量也越大,表明其越重要;反之则反。所以,PCA的主要工作就是:重构出k个特征,使其所包含的信息量最大。
3.以下两个例子:
第一幅图:将平面上(二维)的点映射到一直线或向量上(一维),其丢失的信息量就是:每个点到直线上的距离。因为降维之后,就认为所有点都在直线上了。同理第二幅图将空间上投影到一个平面上。注意:这两个例子都选取了与原始数据尽可能“靠近”的直线或者平面,使得其保存下来的信息量最大。


二.PCA算法过程
1.首先,需要对数据特征进行归一化

2.求出特征的协方差矩阵

3.求出协方差矩阵的特征值及特征向量,这里可直接调用函数库

其中,S为对角矩阵,其对角线上的数就是协方差矩阵的特征值,而U就是协方差矩阵的特征向量。
而U的前k列就是我们要求的新特征(用于代替原来的n个特征,起到数据压缩的作用)。
所以,假设原始的数据特征为x(n维),经过用变换后变为z(k维),则有如下公式:

综上,PCA算法可总结为:

注:至于为什么要用到协方差矩阵,以及为什么要求特征向量等等一系列数学问题,这篇博客:PCA算法原理:为什么用协方差矩阵 可以很好地解释。
(自己还没看懂,只有个感性的认识)
三.PCA之恢复
1.对人脸图像进行降维压缩的效果如下:
(这里只取了部分)
2.那么压缩后,是否可以再还原了?是可以的,只是在压缩时丢失的那部分数据找不回来了。恢复方式如下:

即:X(approx) = U(reduce) * Z
由图像可知:恢复后,所有的点后落在了直线上,所以丢失的数据即为原始点与直线的距离。
四.如何选取维数K
如果可能,k当然越小越好,k越小表明压缩的程度越高,但同时又要保证足够多的数据量。因此,选出最小的k,满足:

以下为其求解求解过程,并且我们可以直接调用函数库:


五.PCA的作用与适用场合
1.PCA用甚好好处?或者说有哪些应用?

1) 可以减少内存空间
2) 可以对算法进行提速
3) 可以用于数据可视化
2.既然PCA这么好用?那是不是可以随便用呢?答案否:

个人认为,PCA其实是个辅助工具,用不用它,从功能上而言没有太大区别,其区别就在于性能。也就是说,在用线性回归或者Logistic回归做一些事情时,如果直接运行,其效果或者说性能都比价可观了,那就无谓使用PCA了。当出现占用内存过大,或者运算时间过长等,这时就可以利用PCA来提升一下算法的性能了。
吴恩达机器学习笔记(八) —— 降维与主成分分析法(PCA)的更多相关文章
- [吴恩达机器学习笔记]14降维5-7重建压缩表示/主成分数量选取/PCA应用误区
14.降维 觉得有用的话,欢迎一起讨论相互学习~Follow Me 14.5重建压缩表示 Reconstruction from Compressed Representation 使用PCA,可以把 ...
- [吴恩达机器学习笔记]14降维3-4PCA算法原理
14.降维 觉得有用的话,欢迎一起讨论相互学习~Follow Me 14.3主成分分析原理Proncipal Component Analysis Problem Formulation 主成分分析( ...
- 吴恩达机器学习笔记(六) —— 支持向量机SVM
主要内容: 一.损失函数 二.决策边界 三.Kernel 四.使用SVM (有关SVM数学解释:机器学习笔记(八)震惊!支持向量机(SVM)居然是这种机) 一.损失函数 二.决策边界 对于: 当C非常 ...
- [吴恩达机器学习笔记]12支持向量机5SVM参数细节
12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.5 SVM参数细节 标记点选取 标记点(landma ...
- [吴恩达机器学习笔记]12支持向量机3SVM大间距分类的数学解释
12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.3 大间距分类背后的数学原理- Mathematic ...
- [吴恩达机器学习笔记]12支持向量机2 SVM的正则化参数和决策间距
12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.2 大间距的直观理解- Large Margin I ...
- [吴恩达机器学习笔记]12支持向量机1从逻辑回归到SVM/SVM的损失函数
12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.1 SVM损失函数 从逻辑回归到支持向量机 为了描述 ...
- [吴恩达机器学习笔记]11机器学习系统设计3-4/查全率/查准率/F1分数
11. 机器学习系统的设计 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 11.3 偏斜类的误差度量 Error Metr ...
- Coursera-AndrewNg(吴恩达)机器学习笔记——第三周
一.逻辑回归问题(分类问题) 生活中存在着许多分类问题,如判断邮件是否为垃圾邮件:判断肿瘤是恶性还是良性等.机器学习中逻辑回归便是解决分类问题的一种方法.二分类:通常表示为yϵ{0,1},0:&quo ...
随机推荐
- 【Java编程】JDBC注入攻击-Statement 与 PreparedStatement
在上一篇[Java编程]建立一个简单的JDBC连接-Drivers, Connection, Statement and PreparedStatement我们介绍了怎样使用JDBC驱动建立一个简单的 ...
- linux 打开文件数too many open files解决方法
出现这句提示的原因是程序打开的文件/socket连接数量超过系统设定值.查看每个用户最大允许打开的文件数量ulimit -a 其中 open files (-n) 1024 表示每个用户最大允许打开的 ...
- JAVA Eclipse创建Android程序界面不显示怎么办
一般是由于你创建的Android应用程序版本太高导致的,请设置4或以下版本,对于已有的项目,可以在属性-Android中修改目标生成的版本号 ...
- 每天5道面试题(二)java基础
说出Servlet的生命周期,并说出Servlet和CGI的差别 Servlet被server实例化后,容器执行其init方法,请求到达时执行其service方法,service方法自己主动派遣执行与 ...
- DeepinXP Lite 6.2 精简版220M 安装IIS
本作品由Man_华创作,采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可.基于http://www.cnblogs.com/manhua/上的作品创作. 用虚拟机装了DEEP ...
- IT项目管理-----给年轻工程师的十大忠告
http://blog.csdn.net/hbqhdlc/article/details/6201179给年轻工程师的十大忠告 诸位,咱当电子工程师也是十余年了,不算有出息,环顾四周,也没有看见几个有 ...
- Android UI开发神兵利器之Icon
好的设计离不开Icon 话不多.介绍2个国外的站点,一个用来找Icon,一个用来搞页面设计 http://dryicons.com/free-icons/ http://www.webdesignsh ...
- Lua学习三----------Lua数据类型
© 版权声明:本文为博主原创文章,转载请注明出处 Lua数据类型 - Lua是动态类型语言,不需要为变量定义类型,只需要为变量赋值 - Lua有8中基本数据类型:nil.boolean.number. ...
- 试验笔记 - 使用7-ZIP压缩来减小APK安装包体积
7-ZIP版本:9.20 x86 And x64 Windows(2010-11-18) 1. 将APK包解压到文件夹2. 全选所有文件,右键“添加到压缩包”3.“压缩格式”必须“zip”4.“压缩等 ...
- PHP实现上次登录功能
通过一个sql语句把上次的登录时间给本次登录时间,再把当前时间记录下来 update userinfo set lasttime=userinfo.logintime,logintime= CURR ...