pca主要成分分析_通俗易懂的俗语

pca主要成分分析_通俗易懂的俗语转载自:http://blog.codinglabs.org/articles/pca-tutorial.html文章分析脉络梳理: 1.向量A和B的内积表示的是向量A在B上的投影长度。那么将一个向量与新的基做内积,结果则表示该向量在新的基下的坐标。2.将新选定的基表示成矩阵形式,与原向量相乘,就得到了原向量在新选定的基所表示的空间(或坐标系)中的坐标表示了。3.怎样选定这组基用于数据降维?(目标…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

转载自:http://blog.codinglabs.org/articles/pca-tutorial.html

文章分析脉络梳理:

 1.向量A和B的内积表示的是向量A在B上的投影长度。那么将一个向量与新的基做内积,结果则表示该向量在新的基下的坐标。

2.将新选定的基表示成矩阵形式,与原向量相乘,就得到了原向量在新选定的基所表示的空间(或坐标系)中的坐标表示了。

3.怎样选定这组基用于数据降维?(目标)

(1)首先将数据变换到选定基上后,数据的方差要大,尽量分散。

(2)各个基要正交(表示的信息要不相关,若单纯按方差选定基,则选定的基存在很大的相关性)

4.怎么做?怎么找这组正交基? (做法)

(1)协方差矩阵可以很好地表示各个特征的方差和不同特征之间的协方差

(2)按目标要求需要将协方差矩阵除去对角线元素化为0,对角线元素按从大到小排列。协方差矩阵对角化。

(3)对角化后按特征值大小排列,选定前k个最大的特征值对应的特征向量作为降维后的新基。


PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。网上关于PCA的文章有很多,但是大多数只描述了PCA的分析过程,而没有讲述其中的原理。这篇文章的目的是介绍PCA的基本数学原理,帮助读者了解PCA的工作机制是什么。

当然我并不打算把文章写成纯数学文章,而是希望用直观和易懂的方式叙述PCA的数学原理,所以整个文章不会引入严格的数学推导。希望读者在看完这篇文章后能更好的明白PCA的工作原理。

pca主要成分分析_通俗易懂的俗语

pca主要成分分析_通俗易懂的俗语

pca主要成分分析_通俗易懂的俗语

进一步讨论

根据上面对PCA的数学原理的解释,我们可以了解到一些PCA的能力和限制。PCA本质上是将方差最大的方向作为主要特征,并且在各个正交方向上将数据“离相关”,也就是让它们在不同正交方向上没有相关性。

因此,PCA也存在一些限制,例如它可以很好的解除线性相关,但是对于高阶相关性就没有办法了,对于存在高阶相关性的数据,可以考虑Kernel PCA,通过Kernel函数将非线性相关转为线性相关,关于这点就不展开讨论了。另外,PCA假设数据各主特征是分布在正交方向上,如果在非正交方向上存在几个方差较大的方向,PCA的效果就大打折扣了。

最后需要说明的是,PCA是一种无参数技术,也就是说面对同样的数据,如果不考虑清洗,谁来做结果都一样,没有主观参数的介入,所以PCA便于通用实现,但是本身无法个性化的优化。

希望这篇文章能帮助朋友们了解PCA的数学理论基础和实现原理,借此了解PCA的适用场景和限制,从而更好的使用这个算法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181489.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Django之ORM模型建议收藏

    ORM介绍对象关系映射(ObjectRelationalMapping,简称ORM)模式的作用是在关系型数据库与业务实体对象之间进行映射,这使得我们不需要再去和复杂的SQL语句打交道,只需要简单

    2021年12月19日
    38
  • MySQL读写分离的三种实现方案

    MySQL读写分离的三种实现方案文章目录MySQL读写分离的三种实现方案一、搭建一个“一主两从”的MySQL集群二、读写分离实现:方案一2.1配置多个数据源2.2使用AbstractRoutingDataSource2.3这个版本的缺点:三、读写分离实现:方案二3.1通过ShardingSphere-jdbc实现读写分离3.2这个版本的缺点:四、读写分离实现:方案三4.1通过ShardingSphere-Proxy实现读写分离一、搭建一个“一主两从”的MySQL集群先搭建一个mysql

    2022年4月8日
    40
  • C++ Qt常用面试题整理(不定时更新)[通俗易懂]

    C++ Qt常用面试题整理(不定时更新)[通俗易懂]1.Qt多线程同步的几种实现方式(1)互斥量:QMutexQMutex类提供的是线程之间的访问顺序化。QMutex的目的是保护一个对象/数据结构或者代码段在同一时间只有一个线程可以访问。基本使用方法如下:QMutexmutex;intvar;voidfunction(){mutex.lock();//访问varvar*var;mutex.unlock();}如果使用mutex加锁,却没有使用unlock解锁,那么就会造成..

    2022年6月25日
    41
  • MPU9250传感器

    MPU9250内部包括3轴陀螺仪、3轴加速度计和3轴磁力计,这3个功能输出都是16位的数字量;可以通过常用的数据总线(IIC)接口和单片机进行数据交互,传输速率400kHz/s。陀螺仪的角速度测量范围±2000(°/s),具有良好的动态响应特性。加速度计的测量范围最大为±16g(g为重力加速度),静态测量精度高。磁力计采用高灵度霍尔型传感器进行数据采集,磁感应强度测量范围为±4800μT,可用于对偏航角的辅助测量。MPU9250自带的数字运动处理器DMP硬件加速引擎,可

    2022年4月8日
    194
  • 测试知识整理「建议收藏」

    测试知识整理「建议收藏」测试流程:需求分析–>测试设计(测试计划,测试用例)–>执行测试–>提交BUG–>测试总结测试过程:单元测试、集成测试、系统测试、验收测试单元测试属于白盒测试

    2022年7月3日
    21
  • Android浏览器调用APP「建议收藏」

    Android浏览器调用APP「建议收藏」有时我们想通过点击浏览器中某些广告链接来启动或下载APP,以启动APP来说,我们知道APP可以定义一个scheme,如果我们在浏览器中定义一个URL,这个URL使用定义的scheme,这样点击后我们就可以打开我们的客户端了,但目前市面上有些浏览器支持性不好,或者直接就不支持,认为这个打开是一个有害的链,那么我们还有没有其它的办法来结合,下面我们以web服务做为功能基础来实现我们知道如果在地址栏

    2022年5月15日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号