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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 分享88个搜索链接PHP源码,总有一款适合你

    分享88个搜索链接PHP源码,总有一款适合你PHP搜索链接源码分享88个搜索链接PHP源码,总有一款适合你链接:https://pan.baidu.com/s/1blE9zIxqA2_0ZVLiYUW4Zw提取码:758j下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下…,大家下载后可以看到。优客365精华版商业版v1.1.6PHP呆错导航系统源码v1.0.35162100网址导航3号v9.3.9Sphinxphp全文检索引擎forLinuxv3.3.1Sphinx全文检索引擎php版.

    2022年5月17日
    86
  • Python保留小数的方法

    Python保留小数的方法方法一、使用字符串格式化保留n位小数,并做四舍五入处理s=12.3445print(‘%.2f’%s)#12.34s=12.345print(‘%.2f’%s)#12.35方法二、使用round内置函数(会四舍五入)s=12.345a=round(s,2)print(a)#12.35s=12.3445a=round(s,2)print(a)#12.34方法三、使用decimal模块(四舍五入)fromdecimalimportDec

    2022年8月12日
    2
  • python获取当前时间的时间戳_python将时间戳转化为时间格式

    python获取当前时间的时间戳_python将时间戳转化为时间格式经常遇到处理时间与获取当前时间,之前记录了一版Scala版本的,现在记录一下Python版本的:Tip:导入类importtimeimportdatetime一.获取时间1.获取当前时间now=datetime.datetime.now()printnowprintnow.yearprintnow.monthprintnow.dayprintnow.hourprintnow….

    2022年10月2日
    2
  • python中删除特定字符串

    python中删除特定字符串现在有一个字符串,有一些不想要的单词和特殊字符importretext=’wo,didi;wode,;wode’text0=text.replace(‘didi’,”)print(re.sub(‘[,;]’,”,text0))先用替换后用子串可以得到自己想要的结果:wowodewode python中字符串自带的split方法一次只能使用一个字符对字…

    2022年5月30日
    44
  • 浅谈C#数组(一)

    浅谈C#数组(一)如果需要使用同一类型的多个对象,可以使用数组和集合(后面介绍)。C#用特殊的记号声明,初始化和使用数组。Array类在后台发挥作用,它为数组中的元素排序和过滤提供了多个方法。使用枚举器,可以迭代数组中

    2022年7月4日
    16
  • mysql8.0.26安装及配置超详细教程(Burpsuite超详细安装教程)

    文章目录:官网下载MySQL的安装包添加并配置my.ini文件配置系统变量并初始化MySQL安装并启动MySQLNavicat连接MySQL并修其密码安装过程中常见问题及其解决方法官网下载MySQL的安装包下载链接如下:MySQL8.0.20版本其他版本:MySQL8.0.16版本MySQL8.0.20版本压缩包解压后如下图所示:添加并配置my.ini文件在原解压根…

    2022年4月11日
    192

发表回复

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

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