热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

【笔记】主成分分析法PCA的原理及计算

主成分分析法PCA的原理及计算主成分分析法主成分分析法(PrincipalComponentAnalysis),简称PCA,其是一种统计方法,是数据降维,简化数据集的一种常用的方法

主成分分析法PCA的原理及计算


主成分分析法

主成分分析法(Principal Component Analysis),简称PCA,其是一种统计方法,是数据降维,简化数据集的一种常用的方法

它本身是一个非监督学习的算法,作用主要是用于数据的降维,降维的意义是挺重要的,除了显而易见的通过降维,可以提高算法的效率之外,通过降维我们还可以更加方便的进行可视化,以便于我们去更好的理解数据,可以发现更便于人类理解,主成分分析其一个很重要的作用就是去噪,有的时候,经过去噪以后再进行机器学习,效果会更好

我们可以基于主成分分析法的降维来理解其原理


原理及计算

我们设一个二维的坐标系,横轴为特征一,纵轴为特征二,相应的存在一些样本,其对应相应的点,既然是二维的,那么我们就可进行降维

那么降维到一维的具体操作是什么呢?

一个很明显的方案就是对这两个特征选一个特征,将另一个特征去除掉,如果说我们将特征二扔掉保留特征一的话,那么全部的点就会相应的全部映射到横轴上,相反,我们选择特征二的话,所有的点就会映射到纵轴上

这就是对应的两种降维的方案,这两个方案哪一个是更好的呢,我们将所有的点映射到了横轴以后,点和点之间距离是相对比较大的的方案就是更好的方案,为什么呢,点和点之间的距离大,即点和点之间有着更高的可区分度,这样也更好的保持了原来的点和点之间的距离,虽然也不同,但是也相应的更小的

还有一种更好的方案,我们可以选取一条直线,将所有的点都映射到这根直线上,使用这种方式,所有的点更趋近于原来的分布情况,区分度也比映射到横纵轴上更加明显

那么如何找到这个让样本间间距最大的轴?为了找到这个轴,我们先使用方差来定义一下这个样本间间距

这样这个问题就变成了,我们需要找到一个轴(直线),使得样本空间中的所有点在映射到这个轴以后,方差是最大的

那么怎么操作呢?

首先,我们将样本的均值归0,即所有的样本都减去这批样本的均值,这样就相当于让坐标轴进行了移动,使得样本在每个维度上均值都为0,这样我们就可以将方差的式子变成(xi是已经映射到新的轴上的新的样本)

然后我们要求这个轴的方向w=(w1,w2)(此处用二维来表示),使得我们所有的样本,在映射到w以后,有使映射以后的样本Xproject的方差值最大,式子展开如下

需要注意的是:

对于这个X来说,可能有多个维度,因此每一个X都是一个有多个元素的向量,因此更准确的式子应该是

其均值等依然是含有多个内容的向量,为什么呢,因为虽然映射到了这个轴上,但是本身这个轴还是处在这个n维的坐标系中,那么这实际上就是这两个向量相减之后的模的平方,又因为我们之前对样本进行了demean处理(均值取0),因此,这个式子化简以后为,即为映射完的点的模的平方和再除以m最大

那么这个Xprojecti到底是要怎么表示呢?

我们设这个轴为w,样本点为Xi,其也是一个向量,那么现在这个Xi要映射到w轴上的话,可以向w轴做一个垂直的直线,那么其与w轴的交点就是我们对应的Xproject这一点,那么说白了我们要求的模的平方就是指向交点的这个直线,相当于我们要求将一个向量映射到另一个向量上对应的映射的长度是多少

实际上这种映射就是点乘的定义

我们知道现在这个w轴是一个方向向量,所以其模为1,那么式子就化简成

运用数学定理,很明显可以得出

那么我们带入之前的式子就可以得到我们真正要求的式子,即Xi与w点乘完以后的平方和再除以m以后的结果最大

这样我们的主成分分析法就是要求一个w轴,使得映射上去的点与w点乘完以后的平方和再除以m以后的结果最大,这样主成分分析法就变成了一个目标函数的最优化问题,求一个函数的最大值,我们就可以使用梯度上升法来解决

线性回归和这个是不一样的,最直观的不同在于线性回归的样本是关于这个新的垂直的方向是关于特征的方向,并不是垂直于这根直线的


用梯度上升法来求解PCA问题

我们说可以使用梯度上升法来解决主成分分析问题,那么怎么用梯度上升法来求解此类问题呢?

那么我们知道,求一个函数的最大值,关键是我们要求这个函数的梯度,对于上面最终的式子来说,除了w以外就没有未知数了,那么对应的梯度就是函数对w求偏导,整理合并以后可以写成

对这个式子进行向量化的处理,我们观察这个式子,我们可以发现其中的式子就是点乘的形式,其实际上每一项就是Xw这个向量和X中的第n列中的每一个元素相乘再相加,Xw可以写成这种行向量的形式

而上面的计算过程计算下来就是Xw和一个矩阵相乘,这个矩阵可以写成(其就是X这个矩阵,有m个样本,n个特征)

其最后将梯度的计算的向量化的结果就可以写成(经过转置之后符合要求的)

介就是最后的计算公式啦

我们可以在直接使用这个公式来进行计算,最后得到需要的结果



【笔记】主成分分析法PCA的原理及计算的相关教程结束。



推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 词袋模型的通俗介绍
    词,袋, ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • 本文详细介绍了商汤科技面试中涉及的CV算法面经内容,包括CornerNet的介绍与CornerPooling的解决方案、Mimic知识蒸馏的实现方式、MobileNet的特点、普通卷积和DW PW卷积的计算量推导、Residual结构的来源等。同时还讨论了在人脸关键点和检测中的mimic实现方式、pose对人脸关键点的提升作用、目标检测中可能遇到的问题以及处理检测类别冲突的方法。此外,还涉及了对机器学习的了解程度和相似度分析的问题。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • 数据结构与算法的重要性及基本概念、存储结构和算法分析
    数据结构与算法在编程领域中的重要性不可忽视,无论从事何种岗位,都需要掌握数据结构和算法。本文介绍了数据结构与算法的基本概念、存储结构和算法分析。其中包括线性结构、树结构、图结构、栈、队列、串、查找、排序等内容。此外,还介绍了图论算法、贪婪算法、分治算法、动态规划、随机化算法和回溯算法等高级数据结构和算法。掌握这些知识对于提高编程能力、解决问题具有重要意义。 ... [详细]
author-avatar
Ale__x小葡萄
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有