【机器学习】主成分分析实现案例 (PCA)

一、说明

        这篇文章的目的是提供主成分分析(PCA)的完整和简化的解释。我们将逐步介绍它是如何工作的,这样每个人都可以理解并使用它,即使是那些没有强大数学背景的人。

        PCA是网络上广泛覆盖的机器学习方法,并且有一些关于它的很棒的文章,但是许多人在这个主题上花费了太多时间,而我们大多数人只是想知道它是如何以简化的方式工作的。

        主成分分析可以分为五个步骤。我将介绍每个步骤,提供PCA正在做什么的逻辑解释,并简化数学概念,如标准化,协方差,特征向量和特征值,而不关注如何计算它们。

二、如何进行主成分分析?

  • 标准化连续初始变量的范围
  • 计算协方差矩阵以识别相关性
  • 计算协方差矩阵的特征向量和特征值以识别主成分
  • 创建特征向量以决定要保留哪些主成分
  • 沿主分量轴重铸数据

        首先,一些基本(和简短)的背景对于上下文是必要的。

三、主成分分析 (PCA) 概述 

2.1  什么是主成分分析?

        主成分分析(PCA)是一种降维方法,通常用于降低大型数据集的维数,方法是将大型变量集转换为仍包含大型数据集中大部分信息的较小变量集。

        减少数据集的变量数量自然是以牺牲准确性为代价的,但降维的诀窍是用一点准确性来换取简单性。因为较小的数据集更容易探索和可视化,并且使机器学习算法的数据点分析更加容易和快捷,而无需处理无关的变量。

        因此,总而言之,PCA的想法很简单 - 减少数据集的变量数量,同时保留尽可能多的信息。

2.2 PCA的分步说明

        第 1 步:标准化
        此步骤的目的是标准化连续初始变量的范围,以便每个变量对分析的贡献相同。

        更具体地说,在PCA之前执行标准化至关重要的原因是后者对初始变量的方差非常敏感。也就是说,如果初始变量的范围之间存在较大差异,则范围较大的变量将主导范围较小的变量(例如,范围在 0 到 100 之间的变量将主导范围在 0 到 1 之间的变量),这将导致结果偏差。因此,将数据转换为可比较的比例可以防止此问题。

        在数学上,这可以通过减去平均值并除以每个变量的每个值的标准差来完成。

        标准化完成后,所有变量都将转换为相同的比例。

        第 2 步:协方差矩阵计算
        此步骤的目的是了解输入数据集的变量如何与平均值相互变化,或者换句话说,查看它们之间是否存在任何关系。因为有时,变量高度相关,以至于它们包含冗余信息。因此,为了识别这些相关性,我们计算协方差矩阵。

        协方差矩阵是一个 p × p 对称矩阵(其中 p 是维数),其条目是与初始变量的所有可能对关联的协方差。例如,对于具有 3 个变量 x、y 和 z 的三维数据集,协方差矩阵是 3×3 的数据矩阵,来自:

三维数据的协方差矩阵。

        

        由于变量与自身的协方差是其方差(Cov(a,a)=Var(a)),因此在主对角线(从左上到右下)中,我们实际上具有每个初始变量的方差。由于协方差是可交换的(Cov(a,b)=Cov(b,a)),协方差矩阵的条目相对于主对角线是对称的,这意味着上三角形和下三角形部分相等。

        我们作为矩阵条目的协方差告诉我们变量之间的相关性是什么?

        实际上,协方差的符号很重要:

  • 如果为正,则:两个变量一起增加或减少(相关)
  • 如果为负,则:一个增加,另一个减少(负相关)

        现在我们知道协方差矩阵只不过是一个总结所有可能的变量对之间相关性的表,让我们进入下一步。

        步骤 3:计算协方差矩阵的特征向量和特征值以识别主成分
        特征向量和特征值是我们需要从协方差矩阵计算以确定数据主成分的线性代数概念。在解释这些概念之前,让我们首先了解主成分的含义。

        主成分是构造为初始变量的线性组合或混合的新变量。这些组合的完成方式是,新变量(即主成分)不相关,并且初始变量中的大部分信息被压缩或压缩到第一个分量中。所以,这个想法是 10 维数据给你 10 个主分量,但 PCA 试图在第一个分量中放置最大可能的信息,然后在第二个分量中放置最大剩余信息,依此类推,直到得到下面碎石图所示的东西。

每个 PC 的方差百分比(信息)

        以这种方式组织主组件中的信息将允许您在不丢失太多信息的情况下降低维数,这是通过丢弃信息量低的组件并将剩余组件视为新变量来实现的。

        这里要认识到的重要一点是,主成分的可解释性较差,并且没有任何实际意义,因为它们被构造为初始变量的线性组合。

        从几何上讲,主成分表示解释最大方差量的数据方向,即捕获数据大部分信息的线。这里的方差和信息之间的关系是,一条线携带的方差越大,沿它的数据点的离散度就越大,沿一条线的离差越大,它拥有的信息就越多。简单地说,只需将主分量视为新轴,这些轴提供了查看和评估数据的最佳角度,以便更好地看到观测值之间的差异。

三、PCA 如何构造主成分

        由于数据中的变量与变量一样多的主成分,因此主成分的构造方式是,第一个主成分占数据集中最大可能的方差。例如,假设我们数据集的散点图如下所示,我们可以猜出第一个主成分吗?是的,它大约是与紫色标记匹配的线,因为它穿过原点,并且它是点(红点)投影最分散的线。或者从数学上讲,它是最大化方差(从投影点(红点)到原点的平方距离的平均值)的线。

        第二个主成分的计算方式相同,条件是它与第一个主成分不相关(即垂直于)第一个主成分,并且它占下一个最高方差。

        这一直持续到计算出总共 p 个主成分,等于原始变量数。

        现在我们理解了主成分的含义,让我们回到特征向量和特征值。您首先需要了解的是它们总是成对出现,因此每个特征向量都有一个特征值。它们的数量等于数据的维度数。例如,对于三维数据集,有 3 个变量,因此有 3 个特征向量和 3 个相应的特征值。

        事不宜迟,特征向量和特征值是上述所有魔力的幕后推手,因为协方差矩阵的特征向量实际上是方差最大(信息最多)的轴的方向,我们称之为主分量。特征值只是附加到特征向量的系数,它给出了每个主成分中携带的方差量。

        通过按特征值从高到低的顺序对特征向量进行排序,您可以按显著性顺序获得主分量。

3.1 主成分分析示例:

        假设我们的数据集是二维的,有 2 个变量 x,y,协方差矩阵的特征向量和特征值如下:

        如果我们按降序对特征值进行排名,我们得到 λ1>λ2,这意味着对应于第一个主成分 (PC1) 的特征向量是 v1,对应于第二个主成分 (PC2) 的特征向量是v2。

        在获得主分量后,为了计算每个分量所占的方差(信息)的百分比,我们将每个分量的特征值除以特征值的总和。如果我们在上面的例子上应用它,我们发现 PC1 和 PC2 分别承载了 96% 和 4% 的数据方差。

        第 4 步:特征向量
        正如我们在上一步中看到的,计算特征向量并按其特征值降序对它们进行排序,使我们能够按显著性顺序找到主分量。在此步骤中,我们要做的是选择是保留所有这些分量还是丢弃那些重要性较低的分量(低特征值),并与剩余的分量形成一个我们称之为特征向量的向量矩阵。

        因此,特征向量只是一个矩阵,它将我们决定保留的组件的特征向量作为列。这使其成为降维的第一步,因为如果我们选择仅将 p 特征向量(分量)排除在 n 之外,则最终数据集将只有 p 维。

3.2 主成分分析示例:

        继续上一步中的示例,我们可以同时使用特征向量 v1 和 v2 形成一个特征向量:

        或者丢弃特征向量 v 2,这是重要性较小的特征向量,并仅形成 v1 的特征向量:

        丢弃特征向量 v2 会将维数降低 1,从而导致最终数据集中的信息丢失。但鉴于 v 2 只携带了 4% 的信息,因此损失并不重要,我们仍将拥有 v96 携带的 1% 的信息。

        因此,正如我们在示例中所看到的,您可以选择是保留所有组件还是丢弃重要性较低的组件,具体取决于您要查找的内容。因为如果您只想根据不相关的新变量(主成分)来描述数据,而不寻求降低维度,则不需要省略不太重要的组件。

        步骤 5:沿主分量轴重新转换数据
        在前面的步骤中,除了标准化之外,您不会对数据进行任何更改,只需选择主成分并形成特征向量,但输入数据集始终保持原始轴(即初始变量)。

        在此步骤(即最后一步)中,目的是使用使用协方差矩阵的特征向量形成的特征向量,将数据从原始轴重新定向到主分量表示的轴(因此称为主分量分析)。这可以通过将原始数据集的转置乘以特征向量的转置来完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/5365.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue计算属性与监听器

文章目录 计算属性配置项 computedHTML 结构Vue 实例数据方法计算属性绑定数据和方法完整代码 监听器配置项 watch简单类型写法深度监听写法 计算属性配置项 computed 使用 Vue 实现一个商品价格计算器,设置一个初始单价,初始数量为 1,用户可…

Android之OkHttp框架的分析

Okhttp是Android开发常用的一个网络请求框架,下面将按照自己的理解将okhttp分为三条主线进行分析。 文章目录 使用方式OkHttp第一条主线:请求发送到哪里去了?OkHttp第二条主线:请求是如何被消费的?OkHttp第三条主线&a…

《PyTorch深度学习实践》第十讲 卷积神经网络(基础篇)

b站刘二大人《PyTorch深度学习实践》课程第十讲卷积神经网络(基础篇)笔记与代码:https://www.bilibili.com/video/BV1Y7411d7Ys?p10&vd_sourceb17f113d28933824d753a0915d5e3a90 上一讲中MNIST数据集的例子采用的是全连接神经网络&#…

ModaHub魔搭社区:向量数据库Milvus产品问题(三)

目录 Milvus 的数据落盘逻辑是怎样的? Mishards 推荐的配置是什么? Mishards 支持 RESTful API 吗? 什么是归一化?Milvus 中为什么有时候需要归一化? 为什么欧氏距离和内积在计算向量相似度时的结果不一致&#x…

算法与数据结构(六)

一、图 一、临接表 表示方法如下: 带权值的无向图的构建: #define MaxInt 32767 // 极大值 #define MVNum 100 // 最大定点数 typedef int ArcType; // 边的权值类型 typedef char VerTexType; // 顶点数据类型//弧(边)的结点结构 st…

当金融风控遇上人工智能,众安金融的实时特征平台实践

导读:随着企业数字化转型升级,线上业务呈现多场景、多渠道、多元化的特征。数据要素价值的挖掘可谓分秒必争,业务也对数据的时效性和灵活性提出了更高的要求。在庞大分散、高并发的数据来源背景下,数据的实时处理能力成为企业提升…

Maven中依赖使用范围

IDEA中help中show Log in Explorer可以查看idea日志 依赖使用范围 构建包含的流程:编译 ,测试 ,运行 ,打包 ,安装 ,部署 comile test package install deploy 使用标签 1:compile 缺省值 伴随者…

VRP基础操作

目录 一、华为VRP 1.1、VRP介绍 1.2、设备管理接口 1.3、Console口登录 1.4、参数配置 二、华为VRP命令行基础 2.1、真机设备初始化启动 2.2、命令行视图 2.3、命令行功能 2.4、命令行在线帮助 2.5、配置系统时钟 2.6、配置标题消息 2.7、命令等级 2.8、用户界面…

突破性5G NTN技术,美格智能携手高通发布卫星物联网连接方案

通信技术的快速发展,使得万物互联成为现实,物联网深刻影响我们的生活方式。目前,全球物联网连接主要由WiFi、蓝牙和蜂窝网络等几类技术支撑。数据显示,蜂窝基站的陆地覆盖率约为20%,而海洋覆盖率则不到5%。 这意味着陆…

Docker数据卷与容器的挂载

什么是Docker数据卷: 数据卷(Volumes)是宿主机中的一个目录或文件,当容器目录和数据卷目录绑定后,对方的修改会立即同步。一个数据卷可以被多个容器同时挂载,一个容器也可以被挂载多个数据卷。简单来说数据卷本质其实是…

FPGA的软核、硬核、固核

“核” 现在的FPGA设计,规模巨大而且功能复杂,因此设计的每一个部分都从头开始是不切实际的。一种解决的办法是:对于较为通用的部分可以重用现有的功能模块,而把主要的时间和资源用在设计中的那些全新的、独特的部分。这就像是你在…

20kV高精度可调高压稳压测试电源的学习与使用

一:应用范围 A: 二极管反向耐压测试 B: 二极管反向漏电流测试 C: 高压电容耐压测试 D: 玻璃釉电阻非线性性能测试 E:氙灯击穿电压测试 F: 材料耐压测试 二、特点 高精度恒流恒压高压输出源 它拥有0~20kV的电压输出能力, 0.005%的电压分辨率精度, 0.1uA的电 …