热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

pca各个向量之间的相关度_机器学习十大经典算法之PCA主成分分析

PCA主成分分析法简介主成分分析算法(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在

PCA主成分分析法简介

主成分分析算法(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数据维度,同时保留住较多的原数据点的特性。

PCA降维的目的,就是为了在尽量保证“信息量不丢失”的情况下,对原始特征进行降维,也就是尽可能将原始特征往具有最大投影信息量的维度上进行投影。将原特征投影到这些维度上,使降维后信息量损失最小。

总而言之,PCA的概念很简单:减少数据集的维数,同时保留尽可能多的主要信息。

PCA主要步骤去除平均值

计算协方差矩阵

计算协方差矩阵的特征值和特征向量

将特征值排序

保留前N个最大的特征值对应的特征向量

将原始特征转换到上面得到的N个特征向量构建的新空间中(最后两步,实现了特征压缩)

标准化

此步骤的目的是标准化输入数据集,使数据成比例缩小。

更确切地说,在使用PCA之前必须标准化数据的原因是PCA方法对初始变量的方差非常敏感。也就是说,如果初始变量的范围之间存在较大差异,那么范围较大的变量占的比重较大,和较小的变量相比(例如,范围介于0和100之间的变量较0到1之间的变量会占较大比重),这将导致主成分的偏差。通过将数据转换为同样的比例可以防止这个问题。

求每一个特征的平均值,然后对于所有的样本,每一个特征都减去自身的均值。

equation?tex=z%3D%5Cfrac%7Bvalue-mean%7D%7Bstandard+deviation%7D+%5C%5C

经过去均值处理之后,原始特征的值就变成了新的值,在这个新的norm_data的基础上,进行下面的操作。

计算协方差矩阵

此步骤的目的是了解输入数据集的变量相对于彼此平均值变化,换句话说,查看它们是否存在关系。因为有时候,变量由于高度相关,这样就会包含冗余信息。因此,为了识别变量的相关性,我们计算协方差矩阵。

下面以二维矩阵为例:

equation?tex=C%3D%5Cbegin%7Bbmatrix%7D+cov%28x_%7B1%7D%2Cx_%7B1%7D%29+%26cov%28x_%7B1%7D%2Cx_%7B1%7D%29+%5C%5C++cov%28x_%7B2%7D%2Cx_%7B1%7D%29+%26cov%28x_%7B2%7D%2Cx_%7B2%7D%29++%5Cend%7Bbmatrix%7D+%5C%5C

上述矩阵中,对角线上分别是特征x1和x2的方差,非对角线上是协方差。协方差大于0表示x1和x2。若有一个增,另一个也增;小于0表示一个增,一个减;协方差为0时,两者独立。协方差绝对值越大,两者对彼此的影响越大,反之越小。

计算协方差矩阵的特征值和特征向量

求协方差矩阵

equation?tex=C的特征值

equation?tex=%CE%BB和相对应的特征向量

equation?tex=u(每一个特征值对应一个特征向量):

equation?tex=Cu%3D%5Clambda+u+%5C%5C

特征值

equation?tex=%CE%BB会有

equation?tex=N个,每一个

equation?tex=%CE%BB_%7Bi%7D对应一个特征向量

equation?tex=u_%7Bi%7D,将特征值λ按照从大到小的顺序排序,选择最大的前k个,并将其相对应的k个特征向量拿出来,我们会得到一组{(λ1,u1),(λ2,u2),...,(λk,uk)}。

将原始特征投影到选取的特征向量上,得到降维后的新K维特征

这个选取最大的前k个特征值和相对应的特征向量,并进行投影的过程,就是降维的过程。对于每一个样本

equation?tex=Xi,原来的特征是

equation?tex=%28xi_1%EF%BC%8Cxi_2%2C%E2%80%A6%2Cxi_n%29%5ET,投影之后的新特征是

equation?tex=%28y%5Ei_1%EF%BC%8Cy%5Ei_2%2C...%2Cy%5Ei_k%29%5ET ,新特征的计算公式如下:

PCA算法的主要优点仅仅需要以方差衡量信息量,不受数据集以外的因素影响。

各主成分之间正交,可消除原始数据成分间的相互影响的因素。

计算方法简单,主要运算是特征值分解,易于实现。

PCA算法的主要缺点主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。

方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。

参考https://zhuanlan.zhihu.com/p/58663947

https://blog.csdn.net/lanyuelvyun/article/details/82384179



推荐阅读
  • 本文详细介绍了福昕软件公司开发的Foxit PDF SDK ActiveX控件(版本5.20),并提供了关于其在64位Windows 7系统和Visual Studio 2013环境下的使用方法。该控件文件名为FoxitPDFSDKActiveX520_Std_x64.ocx,适用于集成PDF功能到应用程序中。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • LambdaMART算法详解
    本文详细介绍了LambdaMART算法的背景、原理及其在信息检索中的应用。首先回顾了LambdaMART的发展历程,包括其前身RankNet和LambdaRank,然后深入探讨了LambdaMART如何结合梯度提升决策树(GBDT)和LambdaRank来优化排序问题。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • Windows 7 64位系统下Redis的安装与PHP Redis扩展配置
    本文详细介绍了在Windows 7 64位操作系统中安装Redis以及配置PHP Redis扩展的方法,包括下载、安装和基本使用步骤。适合对Redis和PHP集成感兴趣的开发人员参考。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 华为智慧屏:超越屏幕尺寸的智能进化
    继全球发布后,华为智慧屏于9月26日在上海正式亮相,推出65英寸和75英寸版本。该产品不仅在屏幕尺寸上有所突破,更在性能和智能化方面实现了显著提升。 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 本文总结了优化代码可读性的核心原则与技巧,通过合理的变量命名、函数和对象的结构化组织,以及遵循一致性等方法,帮助开发者编写更易读、维护性更高的代码。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 本文将继续探讨前端开发中常见的算法问题,重点介绍如何将多维数组转换为一维数组以及验证字符串中的括号是否成对出现。通过多种实现方法的解析,帮助开发者更好地理解和掌握这些技巧。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
author-avatar
天使犯罪de快乐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有