主成分分析是指在尽量减少失真的前提下,将高维数据压缩成低微的方式。
减少失真是指最大化压缩后数据的方差。
记 P P P矩阵为 n × m n\times m n×m( n n n行 m m m列)的矩阵,表示一共有 m m m组数据,每组数据有 n n n个维度。
欲将此数据集降为 k k k维,即求 k × m k\times m k×m的矩阵 A A A。
思路是获得一种针对 n n n维的变换方法,将 n n n位列向量转为 k k k位列向量。然后对全部 m m m组数据分别应用此变换,这样就得到答案。
变换方法是使用形如 A = X P A=XP A=XP的算式。问题变为求 k × n k\times n k×n矩阵 X X X。
引入协方差的概念。
协方差是刻画两个列向量
X
=
{
x
1
,
x
2
,
…
,
x
n
}
T
,
Y
=
{
y
1
,
y
2
,
…
,
y
n
}
T
X=\{x_1,x_2,\dots,x_n\}^\text{T},Y=\{y_1,y_2,\dots,y_n\}^\text{T}
X={x1,x2,…,xn}T,Y={y1,y2,…,yn}T的相异程度。对于同一行来说,两个列向量在此行的数值相差越大,就会使协方差越大。
C
o
v
(
X
,
Y
)
=
∑
i
=
1
n
(
x
i
−
x
^
)
(
y
i
−
y
^
)
Cov(X,Y)=\sum_{i=1}^{n}{(x_i-\hat{x})(y_i-\hat{y})}
Cov(X,Y)=i=1∑n(xi−x^)(yi−y^)
接下来的部分需要线性代数理论进行推导,在此只给出结论。
对于数据集的 n n n个维度来说,方差越大,说明数据之间的差异越大,说明越能区分不同数据,说明此维度越重要,越应该被保留。可以用协方差刻画差异。
本例中将关于 n n n维的所有协方差写成一个 n n n阶方阵 Q Q Q,其中 Q i , j Q_{i,j} Qi,j表示 C o v ( P i , P j ) Cov(P_i,P_j) Cov(Pi,Pj), P i P_i Pi表示 P P P的第 i i i行,也就是所有数据的第 i i i个维度。文章来源:https://www.toymoban.com/news/detail-694733.html
至此便直接给出计算方法。文章来源地址https://www.toymoban.com/news/detail-694733.html
- 计算 Q Q Q;
- 求 Q Q Q的 n n n个特征值及其对应的特征(行)向量,将它们按照特征值从大到小的顺序排列,组成新的方阵 R R R;
- 取 R R R的前 k k k行,即 k × n k\times n k×n的矩阵 X X X;
- A = X P A=XP A=XP。
到了这里,关于主成分分析笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!