1. PCA 是干什么的?
PCA 是一种“数据降维”工具。它的核心思想是:
把复杂的数据变简单:比如你有 10 个维度的数据,PCA 可以帮你找到最重要的 2-3 个维度,同时尽量保留原始数据的信息。
去掉冗余信息:如果某些数据维度是重复的(比如身高和体重可能高度相关),PCA 可以帮你去掉这些冗余。
2. 举个例子
假设你有一堆学生的成绩数据,包括:
数学成绩
物理成绩
化学成绩
英语成绩
历史成绩
这些数据有 5 个维度(数学、物理、化学、英语、历史),但你可能发现:
数学和物理成绩高度相关(数学好的物理也好)。
英语和历史成绩也高度相关(英语好的历史也好)。
PCA 的作用就是:
把 5 个维度压缩成 2 个新的维度(比如“理科能力”和“文科能力”)。
这样你只需要看“理科能力”和“文科能力”这两个维度,就能大致了解学生的成绩情况。
3. PCA 的核心思想
PCA 的核心是找到数据中变化最大的方向(也就是最重要的信息),然后把这些方向作为新的维度。
具体步骤:
中心化数据:把数据调整到以 0 为中心(减去平均值)。
找方向:找到一个方向,使得数据在这个方向上的方差最大(也就是数据点在这个方向上分布最散)。
找第二个方向:找一个与第一个方向垂直的方向,且方差次大。
重复:直到找到足够多的方向(主成分)。
降维:只保留最重要的几个方向(主成分),丢掉其他的。
- PCA 的数学本质
PCA 的数学本质是:
协方差矩阵:计算数据各个维度之间的关系。
特征值和特征向量:找到数据变化最大的方向(特征向量),以及这些方向的重要性(特征值)。
投影:把原始数据投影到这些新方向上,得到降维后的数据。
4. PCA 的实际应用
PCA 的应用场景非常多:
图像压缩:比如一张图片有很多像素点,PCA 可以帮你找到最重要的像素组合,减少数据量。
数据可视化:比如你有 10 维数据,PCA 可以帮你降到 2 维,方便画图。
去噪:PCA 可以去掉数据中的噪声,保留主要信息。
5. 举个具体例子
假设你有以下数据(2 维数据,方便理解):
学生 数学成绩 (X) 物理成绩 (Y)
A 80 85
B 60 65
C 90 95
D 70 75
PCA 的步骤:
中心化:减去平均值(数学平均 75,物理平均 80)。
A: (5, 5)
B: (-15, -15)
C: (15, 15)
D: (-5, -5)
找方向:发现数据在 (1, 1) 这个方向变化最大(数学和物理成绩高度相关)。
降维:把数据投影到 (1, 1) 这个方向上,得到新的 1 维数据:
A: 7.07
B: -21.21
C: 21.21
D: -7.07
这样,原本 2 维的数据就变成了 1 维,同时保留了主要信息!
6. 总结
PCA 的作用:降维、去冗余、可视化、去噪。
PCA 的核心:找到数据变化最大的方向(主成分),用这些方向表示数据。
PCA 的优点:简化数据,减少计算量,同时尽量保留原始信息。
看完上面的有的同志要问了 什么是什么是投影????方向怎么算的,下面一 一说明:
方向计算:
(1, 1) 这个方向变化最大”是怎么算出来的??其实方向就是数据分布最“散”的方向,也就是方差最大的方向
计算协方差矩阵公式为:
其中:
Var(X)
Var(X) 是 X 的方差。
Cov(X, Y)
Cov(X, Y) 是 X 和 Y 的协方差。
方差:Var(X)= 125 Var(Y)=125
协方差:Cov(X, Y)=125
所以协方差矩阵为:
[
125 125
125 235
]
特征值分解
协方差矩阵的特征值和特征向量描述了数据变化的方向和大小。
特征值:表示数据在某个方向上的方差大小。
特征向量:表示数据变化的方向。
计算特征值和特征向量:λ1=250,λ2= 0.
特征向量:λ1=250是【1,1】(即 (1, 1) 方向)。
对应
𝜆2=0 的特征向量是【-1,1】
选择主成分
最大的特征值对应的特征向量就是数据变化最大的方向。
λ1=250是最大的特征值,对应的特征向量也就是 (1, 1) 方向。为什么是 (1, 1) 方向?因为数据在 (1, 1) 方向上变化最大,因为数学和物理成绩高度相关,数据点沿着 (1, 1) 方向分布最散。
投影:
投影就是把一个点“映射”到某个方向(直线)上。比如:
你有一个点 (5, 5),方向是 (1, 1)。
把这个点投影到 (1, 1) 方向上,就是找到这个点在 (1, 1) 这条直线上的“影子”。
投影的计算公式是:投影值= 方向向量的长度/数据点⋅方向向量.
具体步骤:
数据点:比如 (5, 5)。
方向向量:比如 (1, 1)。
点积:计算数据点和方向向量的点积。
方向向量的长度:计算方向向量的长度(模)。
投影值:用点积除以方向向量的长度。
具体例子
以数据点 (5, 5) 和方向 (1, 1) 为例:
步骤 1:计算点积,点积=5×1+5×1=10
步骤 2:计算方向向量的长度=
步骤 3:计算投影值
所以,数据点 (5, 5) 投影到 (1, 1) 方向上的值是 7.07。