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维
  1. 均值归一化 计算所有特征的均值\(\mu_j\),然后将原始数据中所有维度都减去该维度的 均值\(\mu_j\) ,即令\(x_j=x_j-\mu_j\),如果特征在不同的数量级上,还需要将其除以该维度自身的 标准差\(\sigma^{2}\)
  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\] 即
  3. 计算协方差矩阵Σ的 特征向量(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得到的新的特征向量
  • 总结

[吴恩达机器学习笔记]14降维3-4PCA算法原理的更多相关文章

  1. [吴恩达机器学习笔记]14降维5-7重建压缩表示/主成分数量选取/PCA应用误区

    14.降维 觉得有用的话,欢迎一起讨论相互学习~Follow Me 14.5重建压缩表示 Reconstruction from Compressed Representation 使用PCA,可以把 ...

  2. 吴恩达机器学习笔记53-高斯分布的算法(Algorithm of Gaussian Distribution)

    如何应用高斯分布开发异常检测算法呢? 异常检测算法: 对于给定的数据集

  3. 吴恩达机器学习笔记(七) —— K-means算法

    主要内容: 一.K-means算法简介 二.算法过程 三.随机初始化 四.二分K-means 四.K的选择 一.K-means算法简介 1.K-means算法是一种无监督学习算法.所谓无监督式学习,就 ...

  4. 吴恩达机器学习笔记(八) —— 降维与主成分分析法(PCA)

    主要内容: 一.降维与PCA 二.PCA算法过程 三.PCA之恢复 四.如何选取维数K 五.PCA的作用与适用场合 一.降维与PCA 1.所谓降维,就是将数据由原来的n个特征(feature)缩减为k ...

  5. 吴恩达机器学习笔记(六) —— 支持向量机SVM

    主要内容: 一.损失函数 二.决策边界 三.Kernel 四.使用SVM (有关SVM数学解释:机器学习笔记(八)震惊!支持向量机(SVM)居然是这种机) 一.损失函数 二.决策边界 对于: 当C非常 ...

  6. Machine Learning——吴恩达机器学习笔记(酷

    [1] ML Introduction a. supervised learning & unsupervised learning 监督学习:从给定的训练数据集中学习出一个函数(模型参数), ...

  7. [吴恩达机器学习笔记]12支持向量机5SVM参数细节

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.5 SVM参数细节 标记点选取 标记点(landma ...

  8. [吴恩达机器学习笔记]12支持向量机3SVM大间距分类的数学解释

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.3 大间距分类背后的数学原理- Mathematic ...

  9. [吴恩达机器学习笔记]12支持向量机2 SVM的正则化参数和决策间距

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.2 大间距的直观理解- Large Margin I ...

随机推荐

  1. hive 2以上版本启动异常 Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

    hive2.0以上的版本启动时 抛出 “Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreCli ...

  2. ecshop以及一些需要注意的

    Deprecated: Assigning the return value of new by reference is deprecated in 定位到出错的那一行: $this->_ol ...

  3. C++ 名字空间namespace的使用

    A namespace is a scope.C++ provides namespaces to prevent name conflicts.A namespace is a mechanism ...

  4. “Hello World!”团队第六周的第二次会议

    今天是我们团队“Hello World!”团队第六周召开的第二次会议.博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.todo list 六.会议照片 七.燃尽图 八.代码 一 ...

  5. Linux系统LVS搭建笔记

    因为客户是国有企业,且一次性购买了14台服务器(16核),14台中暂且先用8台,其中LVS使用5台,NFS一台主要为了共享WEB系统(多台电脑的1.5T的硬盘容量浪费了).MySQL两台,Memcac ...

  6. c# 导入第三方插件(例如pdf控件),莫名有时候成功有时候出错

    问题情境: 正如标题所述: 解决办法: 怀疑是adobe acrobat 9 pro安装文件出错:重新安装,成功. 在这过程中,尝试过福听阅读器,adobe reader等,均正常. 注:1.第三方的 ...

  7. Python:Python的运行过程

    1.Python是什么 和Java以及c#一样,Python也是一门基于虚拟机的语言.熟悉Java开发的人在命令行执行一个Java程序的过程通常如下: javac hello.java java he ...

  8. 每日scrum--No.1

    Yesterday:无 Today: 查找学校的官方地图和亲自测试其准确性 Problem :不能使地图适应我们的软件;未解决地图上存在的问题: 明天继续加油.

  9. OSG学习:用多通道(multiple passes)实现透明度

    osgFX库提供了一个用于多通道渲染(multi-pass rendering)的框架.每个你想要渲染的子图都应该被添加到osgFX::Effect节点,多通道技术的定义和使用都可以在这个节点中完成. ...

  10. QSharedMemory共享内存实现进程间通讯(IPC)及禁止程序多开

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QSharedMemory共享内存实现进程间通讯(IPC)及禁止程序多开     本文地址:h ...