机器学习之主成分分析(手推公式版)
Posted 夏小悠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习之主成分分析(手推公式版)相关的知识,希望对你有一定的参考价值。
前言
主成分分析 ( P r i n c i p a l (Principal (Principal C o m p o n e n t Component Component A n a l y s i s , P C A ) Analysis,PCA) Analysis,PCA)是最常用的一种降维算法,它属于无监督学习方法,主要用于发现数据中的基本结构,即数据中变量(特征)之间的关系,是数据分析中超有力的工具。
1. 降维
在开始之前,先说说何为数据的维度(Dimensions)
,在我的理解中是这样的:
对于二维数据,像Excel
表格那样,它的shape
是(m,n)
,也就是m行n列
,一般认为m行
表示的就是m
个样本,n列
表示n
个特征,这个时候维度就是n
,降维就是压缩n
,取个极限就是n
被压缩到1,此时就是二维数据讲到了一位数据。
对于三维数据,像图像那样,除了有高度(height)
和宽度(weight)
这两个维度外,还有通道(channel)
,此时的降维就是空间映射,将三维空间映射到二维空间,说白了就是将数据从三维坐标系中转变到二维坐标系中。
由于三维空间无法表示超过三维的高维空间,可以想象一下,对于更高维的数据,像深度学习中很常见的张量(batch,height,weight,channel)
,以图像为例可以理解为(图像数量,图像的高度,图像的宽度,图像的通道数)
,降维也是如此。
标量 ( s c a l a r ) (scalar) (scalar):一个数,零维数组,其shape为(),一般用小写字母表示 x x x;
向量 ( v e c t o r ) (vector) (vector):一列数,一维数组,其shape为(m,),一般用加粗的小写字母表示 x \\bm x x;
矩阵 ( m a t r i x ) (matrix) (matrix):m行n列,二维数组,其shape为(m,n)一般用大写字母表示 X X X;
张量 ( t e n s o r ) (tensor) (tensor):三维及以上数组,其shape为(height,weight,channel)或(batch,height,weight,channel)。
降维 ( D i m e n s i o n (Dimension (Dimension R e d u c t i o n ) Reduction) Reduction),即通过某种数学变换将原始的高维特征空间转变为一个低维的子空间,在这个子空间中样本密度大幅提高,特征数量减少,计算起来更为容易。
2. 奇异值分解SVD
奇异值分解
(
S
i
n
g
u
l
a
r
(Singular
(Singular
V
a
l
u
e
Value
Value
D
e
c
o
m
p
o
s
i
t
i
o
n
,
S
V
D
)
Decomposition,SVD)
Decomposition,SVD)是一种矩阵因子分解方法,除了被应用于推荐系统、自然语言处理等领域外,还被应用于降维算法中进行特征分解。
矩阵的奇异值分解是指,对任意一个非零的
m
×
n
m\\times n
m×n实矩阵
A
,
A
∈
R
m
×
n
A,A\\in \\mathbb {R^{m\\times n}}
A,A∈Rm×n,都可以表示为以下三个实矩阵的乘积形式,即进行矩阵的因子分解:
A
=
U
Σ
V
T
A=U\\Sigma V^T
A=UΣVT 其中
U
U
U是
m
m
m阶正交矩阵,
V
V
V是
n
n
n阶正交矩阵,
Σ
\\Sigma
Σ是
m
×
n
m\\times n
m×n对角矩阵,对角线上的元素由降序排列的非负的矩阵
A
A
A的奇异值组成的,
U
Σ
V
T
U\\Sigma V^T
UΣVT称为矩阵
A
A
A的奇异值分解,又称为完全奇异值分解。
正交矩阵 ( o r t h o g o n a l (orthogonal (orthogonal m a t r i x ) matrix) matrix),满足 A A T = I , 即 A T = A − 1 AA^T=I,即A^T=A^{-1} AAT=I,即AT=A−1的矩阵(任意一个列向量的内积为1,任意两个列向量的内积为0,即正交矩阵是由两两正交的单位向量组成的,也可以说是由规范正交基组成的)。
对角矩阵 ( d i a g o n a l (diagonal (diagonal m a t r i x ) matrix) matrix),除主对角线之外,其余元素皆为0的矩阵。
奇异值 ( s i n g u l a r (singular (singular v a l u e ) value) value),通俗点说就是特征值的平方根,可见奇异值都是非负的。在线性代数中,特征值与特征向量是这样定义的: A x = λ x A\\bm x=\\lambda \\bm x Ax=λx 其中, x \\bm x x为方阵 A A A的特征向量, λ \\lambda λ为方阵 A A A的特征值。
而求解奇异值时不要求矩阵 A A A是方阵,因为矩阵 A A A是 m × n m\\times n m×n实矩阵,那么矩阵 A T A A^TA ATA则是 n n n阶实对称矩阵,实对称矩阵必然可以对角化,即一定存在一个 n n n阶正交矩阵 V V V,使得 V T ( A T A ) V = Λ V^T(A^TA)V=\\Lambda VT(ATA)V=Λ,其中 Λ \\Lambda Λ是 n n n阶对角矩阵,其对角线上的元素由实对称矩阵 A T A A^TA ATA的特征值组成。
由此,可以先求出实对称矩阵 A T A A^TA ATA的特征值 λ i \\lambda_i λi,然后开根号即可得矩阵 A A A的奇异值,即 σ i = λ i \\sigma_i=\\sqrt {\\lambda_i} σi=λi
2.1 紧奇异值分解
紧奇异值分解
(
c
o
m
p
a
c
t
(compact
(compact
s
i
n
g
u
l
a
r
singular
singular
v
a
l
u
e
value
value
d
e
c
o
m
p
o
s
i
t
i
o
n
)
decomposition)
decomposition)是与原始矩阵等秩的奇异值分解。假设有
m
×
n
m\\times n
m×n实矩阵
A
A
A,其秩为
r
a
n
k
(
A
)
=
r
,
r
≤
m
i
n
(
m
,
n
)
rank(A)=r,r\\leq min(m,n)
rank(A)=r,r≤min(m,n),则称
U
r
Σ
r
V
r
T
U_r\\Sigma_r V_r^T
UrΣrVrT为矩阵
A
A
A的紧奇异值分解,即
A
=
U
r
Σ
r
V
r
T
A=U_r\\Sigma_r V_r^T
A=UrΣrVrT 其中
U
r
U_r
Ur是
m
×
r
m\\times r
m×r矩阵,由完全奇异值分解中
U
U
U的前
以上是关于机器学习之主成分分析(手推公式版)的主要内容,如果未能解决你的问题,请参考以下文章