[吴恩达机器学习笔记]14降维3-4PCA算法原理
14.降维
觉得有用的话,欢迎一起讨论相互学习~Follow Me
14.3主成分分析原理Proncipal Component Analysis Problem Formulation
- 主成分分析(PCA)是最常见的降维算法
- 当主成分数量K=2时,我们的目的是找到一个低维的投影平面,当把所有的数据都投影到该低维平面上时,希望所有样本 平均投影误差 能尽可能地小。 投影平面 是一个由两个经过原点的向量规划而成的平面,而 投影误差 是 从特征向量向该投影平面作垂线的长度。
- 当主成分数量K=1时,我们的目的是找到一个方向向量(Vector direction),当我们把所有的数据都投射到该向量上时,希望所有样本 平均投影误差 能尽可能地小。 方向向量 是一个经过原点的向量,而 投影误差(projection error) 是 从特征向量向该方向向量作垂线的长度。
- 图中所示为把数据投影到2维空间的情况,图中黑色的×表示原始样本点,红色的是方向向量,蓝色的是投影误差,绿色点表示数据在方向向量上的投影.而 PCA的目的即是希望找到一个方向向量使得所有数据投影在方向向量上的投影误差最小
Note 在使用PCA之前,需要进行 归一化和特征规范化
主成分分析原理
- 从二维降到一维 找到一个能够使数据投影到其上的投影误差最小的方向向量\((\mu^{(1)}\in R^{n})\)。
从n维降到k维 找到k个向量\(\mu^{(1)},\mu^{(2)},\mu^{(3)}...\mu^{(k)}\) ,使得原始数据投影到这些向量的线性子空间的投影误差最小。
PCA和线性回归不一样
- 从工作机制和得到的结果上看,PCA和线性回归方法很像,看似都是找到一个可以近似拟合原始数据的线或平面 ,尽管看上去很相似但实际上却完全不一样。
主成分分析最小化的是投射误差(ProjectedError),而线性回归尝试的是最小化预测误差。 主成分分析 是一种 无监督学习方法 ,线性回归 是一种 监督学习方法 , 线性回归的目的是预测结果,而主成分分析不作任何预测,原始数据的所有特征属性在主成分分析中都是一样对待的。下图中,左边的是线性回归的误差( 垂直于横轴投影 ),右边则是主要成分分析的误差( 垂直于方向向量投影 )。
PCA的优点与缺点
- 优点
- PCA 技术的一大好处是对数据进行降维的处理。我们可以对新求出的“主元”向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到降维从而简化模型或是对数据进行压缩的效果。同时最大程度的保持了原有数据的信息。
- PCA 技术的一个很大的优点是,它是完全无参数限制的。在 PCA 的计算过程中完全不需要人为的设定参数或是根据任何经验模型对计算进行干预,最后的结果只与数据相关,与用户是独立的。
- 缺点
- 这一点同时也可以看作是缺点。如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高。
14.4主成分分析算法Proncipal Component Analysis algorithm
- 假设使用PCA方法将原始数据集中的N维数据降到K维
- 均值归一化 计算所有特征的均值\(\mu_j\),然后将原始数据中所有维度都减去该维度的 均值\(\mu_j\) ,即令\(x_j=x_j-\mu_j\),如果特征在不同的数量级上,还需要将其除以该维度自身的 标准差\(\sigma^{2}\)
- 计算样本集合的 协方差矩阵(covariance matrix) ,每个N维向量维度为(N1),乘以自身维度为(1N)的转置,得到一个(N*N)的对称矩阵,将所有样本矩阵之和相加后即得到样本集合的 协方差矩阵Σ
即: \[Σ=\frac{1}{m}\sum^{n}_{i=1}(x^{(i)})(x^{(i)})^{T}\]
Note 如果\(x^{(i)}\) 本身是以行向量的方式存储,假设X是样本\(x^{(i)}\)逐层堆叠而成的样本矩阵,则有:\[Σ=\frac{1}{m} * X^{T} * X\] 即
- 计算协方差矩阵Σ的 特征向量(eigenvectors) ,可以使用 奇异值分解(singular value decomposition) 进行求解, 在matlab中使用语句 [U,S,V]=svd(sigma) ,其中sigma表示Σ即样本集合的协方差矩阵,
上式的U是一个具有与数据之间最小投射误差的方向向量构成的矩阵 。如果我们希望 将数据从N维降至K维 ,我们只需要从U中选取前K个向量即上图中的 \(u^{(1)},u^{(2)},u^{(3)},...u^{(K)}\) ,获得一个N×K维度的矩阵,使用\(U_reduce\)表示,然后通过如下计算获得要求的新特征向量\(z^{(i)}\),即有 \[z^{(i)}=U^{T}_{reduce} * x^{(i)}\] 其中\(x^{(i)}\)是N * 1维的样本向量, 而\(U^{T}\)是一个K * N维的方向向量构成的矩阵,因此最终结果Z^{(i)}是一个K * 1维的向量 ,即是 通过PCA得到的新的特征向量
- 总结
转载于:https://www.cnblogs.com/cloud-ken/p/9614320.html
[吴恩达机器学习笔记]14降维3-4PCA算法原理相关推荐
- 【经典】吴恩达——机器学习笔记001
[经典]吴恩达--机器学习笔记001 机器学习(Machine Learning)笔记001 学习地址:[中英字幕]吴恩达机器学习系列课程 文字版参考及PPT来源:Coursera-ML-Andrew ...
- 吴恩达机器学习笔记第一周
第一周 吴恩达机器学习笔记第一周 一. 引言(Introduction) 1.1 欢迎 1.2 机器学习是什么? 1.3 监督学习 1.4 无监督学习 二.单变量线性回归(Linear Regress ...
- 吴恩达机器学习笔记整理(Week6-Week11)
1. Week 6 1.1 应用机器学习的建议(Advice for Applying Machine Learning) 1.1.1 决定下一步做什么 到目前为止,我们已经介绍了许多不同的学习算法, ...
- 吴恩达机器学习笔记整理(Week1-Week5)
吴恩达机器学习笔记整理 1. Week1 1.1 什么是机器学习(What is Machine Learning) 1.2机器学习算法分类 1.3 单变量线性回归(Linear Regression ...
- 吴恩达机器学习笔记55-异常检测算法的特征选择(Choosing What Features to Use of Anomaly Detection)
吴恩达机器学习笔记55-异常检测算法的特征选择(Choosing What Features to Use of Anomaly Detection) 对于异常检测算法,使用特征是至关重要的,下面谈谈 ...
- 吴恩达机器学习笔记:(四)矩阵、多元梯度下降
吴恩达机器学习笔记 矩阵基础知识 矩阵逆运算 矩阵的转置 实践乘法 多元梯度下降 特征缩放 学习率α 矩阵基础知识 矩阵逆运算 矩阵的转置 实践乘法 多元梯度下降 特征缩放 学习率α 学习率的选择:
- 吴恩达机器学习笔记:(一)机器学习方法简介
吴恩达机器学习笔记 Supervised Learning(监督学习) Unsupervised Learning(无监督学习) clustering 聚类算法 market segments 市场细 ...
- 吴恩达机器学习笔记week8——神经网络 Neutral network
吴恩达机器学习笔记week8--神经网络 Neutral network 8-1.非线性假设 Non-linear hypotheses 8-2.神经元与大脑 Neurons and the brai ...
- 【Nan‘s 吴恩达机器学习笔记】第八、九章 神经网络
[Nan's 吴恩达机器学习笔记]第八.九章 神经网络 神经网络(Neural Networks) 8.1 非线性假设 8.2 模型表示 前向传播算法(Forward Propagation) 8.3 ...
最新文章
- 本月Github热门开源项目排行榜...
- POJ 1028: Web Navigation
- 【Android 应用开发】动态权限管理示例 ( 使用原生代码实现 | 申请权限 | 判定权限申请结果 | 判定 “ 不再询问 “ 情况 )
- [BUUCTF-pwn]——ciscn_2019_n_3
- Codeforces 229D
- java线程池怎么创建_java中的线程池,如何创建?
- 杂货 - 收藏集 - 掘金
- 苹果6s强制删除id锁_苹果手机丢了怎么找回?
- AlbertTransformerEncoder
- Deepin下安装搭建latex编写环境
- 为Eureka Server添加用户认证
- Java-NIO(一):简介
- 一个四维混沌吸引子曲线(matlab完整代码)
- QTTabBar安装与使用: 更胜浏览器的Windows平台浏览文件方式
- Sekiro(只狼)
- android将图片转成字符串,再将字符串转成图片
- C语言PAT刷题 - 1019 数字黑洞
- onedrive php接口,Onedrive不用API,只用共享链接就能做成分享网盘
- java调用java程序,详细说明
- C++ 多态介绍详解
热门文章
- python网络-多进程(21)
- 第二篇 Python数据类型、字符编码、文件处理
- docker mysql主从复制
- Mac安装prometheus+grafana监控
- mysql索引背后的数据结构_MySQL索引背后的数据结构及算法原理
- ios 怎么判断字符串的字节数_iOS 计算字符串长度-boundingRectWithSize:
- 计算机ensp项目无法运行,eNSP常见问题及解决办法
- 线程java作用_java线程介绍(原创)
- Java Applet 授权命令
- 求多个数最小公倍数和最大公约数