【机器学习】主成分分析(PCA):数据降维的艺术

news2024/9/30 11:33:20

鑫宝Code

🌈个人主页: 鑫宝Code
🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础
💫个人格言: "如无必要,勿增实体"


文章目录

  • 主成分分析(PCA):数据降维的艺术
    • 引言
    • PCA的基本概念
    • PCA的步骤
      • 数据预处理
      • 协方差矩阵
      • 特征值分解
      • 主成分的选择
      • 数据投影
    • PCA的应用场景
      • 1. 数据可视化
      • 2. 数据压缩
      • 3. 异常检测
      • 4. 特征提取
    • PCA的优缺点
      • 优点
      • 缺点
    • 结论

主成分分析(PCA):数据降维的艺术

在这里插入图片描述

引言

在数据科学和机器学习领域,处理高维数据是一项挑战。随着维度的增加,数据的复杂性和计算成本也随之上升,这便是所谓的“维度灾难”。主成分分析(Principal Component Analysis,PCA)作为一种经典的数据降维技术,通过寻找数据中的主要变化方向,将高维数据投影到低维空间,从而在保留数据主要信息的同时,简化数据结构,提升算法效率。本文将深入探讨PCA的工作原理、步骤、应用场景以及优缺点,旨在为读者提供一份全面的PCA指南。

PCA的基本概念

PCA的核心思想是通过变换坐标轴,将数据投影到一个新的坐标系上,使得第一轴(称为第一主成分)上的数据方差最大,第二轴(第二主成分)上的数据方差次之,且与第一轴正交,以此类推。这个新的坐标系是由原数据集的协方差矩阵的特征向量构成的,特征向量的方向对应着数据变化最大的方向。

PCA的步骤

数据预处理

假设我们有数据集 X \mathbf{X} X, n n n m m m列,每一行代表一个样本,每一列代表一个特征。PCA的第一步是对数据进行预处理,主要是中心化数据,即减去每一列(特征)的平均值,使数据集的每一列均值为0。

X c = X − μ \mathbf{X_c} = \mathbf{X} - \mu Xc=Xμ

其中, μ \mu μ X \mathbf{X} X的列均值向量。

协方差矩阵

在这里插入图片描述

接下来,计算数据集的协方差矩阵 C \mathbf{C} C,它描述了数据中各特征之间的线性关系。

C = 1 n − 1 X c T X c \mathbf{C} = \frac{1}{n-1}\mathbf{X_c}^T\mathbf{X_c} C=n11XcTXc

协方差矩阵是 m × m m \times m m×m的对称矩阵,其中 C i j \mathbf{C}_{ij} Cij表示第 i i i个特征和第 j j j个特征之间的协方差。

特征值分解

协方差矩阵 C \mathbf{C} C的特征值和特征向量非常重要,因为特征向量指向数据的主要变化方向,而特征值表示在该方向上的方差大小。

v \mathbf{v} v C \mathbf{C} C的一个特征向量, λ \lambda λ为其对应的特征值,满足:

C v = λ v \mathbf{Cv} = \lambda\mathbf{v} Cv=λv

主成分的选择

PCA通过选择协方差矩阵的前(k)个最大特征值对应的特征向量作为主成分。这些特征向量构成矩阵 P \mathbf{P} P,其中每一列都是一个特征向量。

P = [ v 1 , v 2 , . . . , v k ] \mathbf{P} = [\mathbf{v}_1, \mathbf{v}_2, ..., \mathbf{v}_k] P=[v1,v2,...,vk]

其中, v i \mathbf{v}_i vi C \mathbf{C} C的第 ( i ) (i) (i)个最大特征值对应的特征向量。

数据投影

最后,将原始数据集 X c \mathbf{X_c} Xc投影到由前 k k k个主成分构成的新空间中,得到降维后的数据集 Y \mathbf{Y} Y

Y = X c P \mathbf{Y} = \mathbf{X_c}\mathbf{P} Y=XcP

这样, Y \mathbf{Y} Y就是一个 n × k n \times k n×k的矩阵,每一行代表一个样本在降维后空间中的表示。

PCA的应用场景

1. 数据可视化

PCA常用于高维数据的可视化,通过将数据降至二维或三维,便于直观地观察数据的分布和结构。
在这里插入图片描述

2. 数据压缩

在图像和信号处理中,PCA可用于数据压缩,去除冗余信息,减少存储和传输成本。

3. 异常检测

通过PCA降维后,异常值往往在低维空间中更为突出,因此PCA也被用于异常检测。

4. 特征提取

PCA可以用于提取数据中的关键特征,为后续的机器学习模型提供更有意义的输入。

PCA的优缺点

优点

  1. 简单易懂:PCA的概念直观,易于理解和实现。
  2. 降维效果好:能够有效减少数据维度,同时保留大部分数据信息。
  3. 去噪:PCA在降维的过程中,可以去除数据中的噪声。

缺点

  1. 信息损失:尽管PCA能够保留数据的主要变化方向,但在降维过程中不可避免地会丢失一些信息。
  2. 非线性数据:PCA基于线性变换,对于非线性数据结构可能无法很好地捕捉。
  3. 解释性:降维后的主成分可能难以直接与原始特征对应,降低了模型的解释性。

结论

PCA作为一项基础而强大的数据降维技术,在数据科学和机器学习中扮演着重要角色。通过PCA,我们不仅可以有效处理高维数据,还能够在数据可视化、压缩、异常检测等多个方面发挥重要作用。然而,PCA并非万能,其在处理非线性数据和解释性方面存在局限性,因此在实际应用中,应根据数据特性和具体需求,合理选择和应用PCA。随着数据科学的不断发展,PCA也将与其他降维技术一起,持续为数据科学家们提供有力的分析工具。

End

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ssm华天计算机面试刷题系统-计算机毕业设计源码22543

摘 要 华天计算机面试刷题系统是一款基于SSM(Spring、Spring MVC、MyBatis)框架、利用Java编程语言和MySQL数据库,开发的在线学习和测试平台。系统利用SSM框架及前端开发技术,实现了模块化开发和管理,前后端交互以及数…

【数据结构和算法的概念等】

目录 一、数据结构1、数据结构的基本概念2、数据结构的三要素2.1 数据的逻辑结构2.2 数据的存储(物理)结构2.3 数据的运算 二、算法1、算法概念2、算法的特性及特点3、算法分析 一、数据结构 1、数据结构的基本概念 数据: 是所有能输入到计…

利用SpringBoot+rabbitmq 实现邮件异步发送,保证100%投递成功

在之前的文章中,我们详细介绍了 SpringBoot 整合 mail 实现各类邮件的自动推送服务。 但是这类服务通常不稳定,当出现网络异常的时候,会导致邮件推送失败。 本篇文章将介绍另一种高可靠的服务架构,实现邮件 100% 被投递成功。类…

基于Java中的SSM框架实现水稻朔源信息系统项目【项目源码】

基于Java中的SSM框架实现水稻朔源信息系统演示 SSM框架 SSM框架是基于Spring、SpringMVC以及Mybatis实现的针对JAVA WEB端应用的开发框架,通过SSM框架结构可以实现以上三种框架的优点集合,从而实现更加高效便捷的系统开发和呈现。该框架结构通过Spring框…

红日靶场----(二)2.信息收集

上期我们已经猜解到了MySQL的账号密码。 这期我们开始目录枚举,我们知道目录枚举能不能获得有用的信息,需要强大的字典。 只有字典强大才能精准的爆破到目录及文件,下面我会介绍一个强大的字典文件。 目录枚举之SecLists字典: …

面试题 22:解释 Python 中的成员运算符?

欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

如何恢复永久删除的婚礼照片

我们的生活就像一本记忆剪贴簿,充满了褪色和模糊的快照。尽管我们想记住事情并留住快乐的回忆,但随着时间的流逝,它们会被冲走。为了避免这种情况并记住这些记忆,我们以照片的形式捕捉瞬间。这有助于缓解和分享那些快乐的时刻。但…

SpringIOC原理

SpringIOC原理 1.概念 Spring通过一个配置文件描述Bean及Bean之间的依赖关系,利用Java语言的反射功能实例化Bean并建立Bean之间的依赖关系。Spring的IOC容器在完成这些底层工作的基础上,还提供了Bean实例缓存、生命周期管理、Bean实例代理、事件发布、…

手机回收站视频过期怎么恢复?跟随这2个方法解锁新技能

各位看官,是不是有时候一不留神,手机里的珍贵视频就不翼而飞了?然后你疯狂地寻找,心里五味杂陈,就像热锅上的蚂蚁一样团团转。视频过期怎么恢复,到底怎样才能找回来呢?别担心,今天小…

园区电表4G/Lora远程无线通讯-安科瑞自助缴费系统

项目案例:张江高科产业园 背景 上海张江高科技园区自1992年成立以来,经过近二十年的开发, 园区构筑了生物医药创新链,集成电路产业链和软件产业链的框架。园区建有国家上海生物医药科技产业基地、国家信息产业基地、国家集成电路…

基于vue的地图特效(飞线和标注)

这段代码的主要功能是在页面加载完成后,初始化一个 echarts 地图图表,并配置了相关的地理数据、散点数据、线条数据以及样式效果,最后在指定的 div 元素中进行展示。 需要再vue中的框架实现,不能单独直接运行。 标注 type: effe…

STM32G474使用HRTIM触发多路ADC采样,通过DMA传输,通过串口打印显示,实现PWM中间时刻采样,避免开关噪声

本工程使用CUBEIDE进行配置以及编译调试,使用的硬件为STM32G474官方开发板NUCLEO-G474RE CUBEIDE配置 HRTIM配置 本章工程使用HRTIM定时器进行ADC的触发,打开主定时器,子定时器A,B,C。(本工程未使用到A与C定时器,配置…

绝地归来!英伟达等提出JeDi:无需微调,个性化图像生成新SOTA![CVPR 2024]

文章链接:https://arxiv.org/pdf/2407.06187 github链接:https://research.nvidia.com/labs/dir/jedi 本文提出了一种无需微调的文本生成图像方法,采用了新颖的联合图像扩散模型。 提出了一种简单且可扩展的数据合成流程,用于生成…

kafka.common.KafkaException: Socket server failed to bind to xx:9092

部署分布式集群的时候遇到的错误。 解决方案: 修改config下的server.properties,添加 listenersPLAINTEXT://:9092 advertised.listenersPLAINTEXT://自己的服务器ip:9092 然后重新启动,检查进程是否存在ps -aux | grep kafka。 成功启动。

微信小程序 - 本地存储 增加有效期

小程序的本地存储API提供了wx.setStorageSync和wx.setStorage来存储数据,注意的是,小程序的本地存储并没有明确的有效期设置,存储的数据在不超过限制的情况下,会一直保留。 一、小程序本地存储API 小程序的本地存储API提供了设置…

全网最全的接口文档速成

文章目录 接口文档内容前言1. 前后端分离开发1.1 介绍1.2 开发流程1.3 前端技术栈 2. Yapi2.1 介绍2.2 使用2.2.1 准备2.2.2 定义接口2.2.3 导出接口文档2.2.4 导入接口文档 3. Swagger3.1 介绍3.2 使用方式3.3 查看接口文档3.4 常用注解3.4.1 问题说明3.4.2 注解介绍3.4.3 注解…

【C++高阶】高效数据存储:理解并模拟实现红黑树Map与Set

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:了解 红黑树 🌹🌹期待您的关注 🌹🌹 ❀模拟实现Map与Set 📒1.…

【RHCE】转发服务器实验

1.在本地主机上操作 2.在客户端操作设置主机的IP地址为dns 3.测试,客户机是否能ping通

PHP禁止IP访问和IP段访问(代码实例)

PHP禁止IP和IP段访问 实现IP限制是Web开发中常见的需求之一&#xff0c;它可以用于限制特定IP地址的访问权限。在PHP中&#xff0c;我们可以通过一些方法来实现IP限制。 <?//禁止某个IP$banned_ip array ("127.0.0.1",//"119.6.20.66","192.168.…

使用CANoe创建仿真项目并执行

使用CANoe创建开关控制灯亮灯灭的仿真环境 一、创建仿真工程 1.在某盘符下创建一个文件夹&#xff0c;命名为testpanel(自定义&#xff0c;与项目相关)&#xff0c;在文件夹testpanel下面分别创建CANdb、Panels和Nodes文件目录 2.打开CANoe&#xff0c;单击File→New&#xff…