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

PCA(主成分分析)极简推导理解 一 数据视角

鸽了一周,是时候开始写东西了。
期中考试考完才写,这是一种报复社会的行为(确信)。
建议大家阅读时多想象图像/画图,对理解很有帮助。

1.降维数据

提示:这是未中心化的非标准版本。为了便于理解我们从这里出发。至于中心化在干什么,后面会讲哒~
想象你有一堆数据 $ \vec{x_1}, \vec{x_2}, ... \vec{x_n} $,每一个数据都是一个向量。
每个数据如果有 \(m\) 维,那么就需要 \(nm\) 个数字来表示这些数据。

但是,这些数据可能是有规律的。 比如可能虽然它们是3维向量,但它们都分布在某个2维子空间(平面)里,只是我们测量时略有误差导致它们看起来分布在3维立体空间中。如果我们把这些数据降到2维,那么我们不但能用更少的空间储存这些向量数据,还能看出隐藏的规律。

所以,我们要对数据降维。也就是选取某些向量 $ \vec{z_1}, \vec{z_2}, ... \vec{z_d} $ ,然后将$ \vec{x_i}$近似表示成它们的线性组合 \(\vec{x_i} \approx \sum \lambda_iz_i\),这样就使得数据从n维被降成了d维。换句话说,相当于在$ \vec{z_1}, \vec{z_2}, ... \vec{z_d} $ 张成的线性空间 \(V_z\) 中找到一些向量 \(\vec{x_1'}, \vec{x_2}', ... \vec{x_n}'\),使得对所有 \(i\), 有
\(\vec{x_i}' \approx \vec{x_i}\).

但是怎么保证降维的误差不要太大呢?很简单,我们可以通过选取恰当的 $ \vec{z_1}, \vec{z_2}, ... \vec{z_d} $ (等价于选取恰当的 \(V_z\) ),然后再选取恰当的 \(\vec{x_1'}, \vec{x_2}', ... \vec{x_n}'\) ,使得每个\(\vec{x_i}\)到$ \vec{x_i}’$的距离都比较小。

但是怎么衡量误差小不小呢?只要计算距离平方的和 \(\Delta=\sum (\vec{x_i}- \vec{x_i}’)^2\)就可以。(为什么是距离的平方和?数学上这跟勾股定理有关系,工程上这比较方便优化。以后再讲。)

http://www.jsqmd.com/news/689337/

相关文章:

  • OpenOCD配置文件详解:手把手教你为STM32F1/F4定制自己的仿真器接口
  • 解决Tauri配置系统实战难题:从Null值穿透到配置合并的完整指南
  • Axure项目实战:中继器
  • 校园二手交易平台 NABCD
  • 终极Docker镜像安全指南:如何用Dive揪出CVE漏洞隐患
  • 别再全局开启`-fcontracts`!企业级项目合约分级管控模型(Critical/Monitor/DevOnly三级策略,兼容CMake+Conan+CI/CD流水线)
  • 别再死记硬背Inception了!从VGG到Xception,一文搞懂深度可分离卷积的‘解耦’思想
  • Kubernetes集群安全终极指南:从加密配置到证书管理深度解析
  • feedparser解析器架构深度剖析:StrictXMLParser vs LooseXMLParser对比指南
  • feedparser完全指南:Python中解析Atom和RSS feed的终极教程
  • 2026年3月专业的汽车音响升级门店推荐,汽车音响升级/奔驰音响改装/宝马音响改装,汽车音响升级旗舰店哪家专业 - 品牌推荐师
  • 如何快速上手 LaTeX2e:10 个实用技巧让排版变得简单
  • AI驱动决策:CTO破解数据迷雾的终极指南
  • 警惕!孩子用AI辅导越学越懒?这4款引导类工具,让AI帮娃不废娃 - 品牌测评鉴赏家
  • NS-USBLoader完整指南:Switch玩家的三合一文件管理神器,轻松搞定游戏安装与系统注入
  • LabML云训练解决方案:在远程服务器上运行分布式任务
  • YOLOv5至YOLOv12升级:农作物害虫检测系统的设计与实现(完整代码+界面+数据集项目)
  • DiffusionDet训练完全指南:从数据准备到模型优化
  • 科学素养培养的几种常见辅助方式,不同学段侧重不同 - 品牌测评鉴赏家
  • 3个高效管理B站视频资源的BilibiliDown实战指南
  • 保姆级教程:用Python和VASP模拟金刚石结构各向异性(附代码)
  • 车载式气象站
  • Nightingale 夜莺监控系统 - 自愈实战:从告警触发到服务重启的自动化闭环
  • YOLOv5至YOLOv12升级:鸟类识别系统的设计与实现(完整代码+界面+数据集项目)
  • 从TensorFlow/PyTorch数据加载到模型训练:彻底搞懂Numpy reshape的order参数(以图像数据为例)
  • 汽车上的‘经济舱’网络:深入聊聊LIN总线在车窗、车灯控制里的那些事儿
  • Mesa图形库的“翻译官”角色:以Panfrost驱动为例,看开源GPU栈如何工作
  • 剪映自动化终极指南:如何用Python批量处理1000个视频项目
  • 72小时响应!Xiaomi Home Integration安全问题处理全流程优化指南
  • MySQL学习日记:关于MVCC及一些八股总结