当前位置: 首页 > news >正文

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


鑫宝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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C语言 | Leetcode C语言题解之第226题翻转二叉树
  • DP学习——观察者模式
  • 代码随想录算法训练营day76 | Floyd 算法精讲、A * 算法精讲
  • STM32 - PWR 笔记
  • 【国产开源可视化引擎Meta2d.js】鹰眼地图
  • 算法小练之 位运算基础
  • 百数教学——表单提交校验,为数据准确保驾护航
  • 试用笔记之-汇通Exe可执行文件之pe分析
  • Jenkins构建python项目
  • hf-mirror (huggingface 的国内镜像)
  • 【深度学习基础】环境搭建 Linux报错bash: conda: command not found...
  • [C++]: 模板进阶
  • 【Nvidia+AI相机】涂布视觉检测方案专注提高锂电池质量把控标准
  • 数据分析入门指南:表结构数据(三)
  • MySQL8之mysql-community-devel的作用
  • JS 中的深拷贝与浅拷贝
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 2017 年终总结 —— 在路上
  • C学习-枚举(九)
  • Js基础知识(四) - js运行原理与机制
  • js中forEach回调同异步问题
  • ReactNativeweexDeviceOne对比
  • yii2中session跨域名的问题
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 微信小程序设置上一页数据
  • 项目管理碎碎念系列之一:干系人管理
  • 一些关于Rust在2019年的思考
  • 译有关态射的一切
  • 优化 Vue 项目编译文件大小
  • 在weex里面使用chart图表
  • hi-nginx-1.3.4编译安装
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • #13 yum、编译安装与sed命令的使用
  • #define
  • $ git push -u origin master 推送到远程库出错
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (30)数组元素和与数字和的绝对差
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (C++)八皇后问题
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (分类)KNN算法- 参数调优
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (学习日记)2024.02.29:UCOSIII第二节
  • (游戏设计草稿) 《外卖员模拟器》 (3D 科幻 角色扮演 开放世界 AI VR)
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • ***php进行支付宝开发中return_url和notify_url的区别分析