参考: http://blog.codinglabs.org/articles/pca-tutorial.html
引用例子
A⋅B=|A|cos(a)
设向量B的模为1,则A与B的内积值等于A向B所在直线投影的矢量长度
其实就是将B看成是一个基。
比如说原来在(0,1),(1,0)这个基下,(2,3)。
要求在这一组基的坐标,就可以直接内积
写成矩阵的形式就是:
数学表达
一般的,如果我们有M个N维向量,想将其变换为由R个N维向量表示的新空间中,那么首先将R个基按行组成矩阵A,然后将向量按列组成矩阵B,那么两矩阵的乘积AB就是变换结果,其中AB的第m列为A中第m列变换后的结果。
⎛⎝⎜⎜⎜⎜p11p21⋮pR1………p1Np2N⋮pRN⎞⎠⎟⎟⎟⎟R×N⎛⎝⎜⎜⎜⎜a11a12⋮a1N………aM1aM2⋮pMN⎞⎠⎟⎟⎟⎟N×M≜⎛⎝⎜⎜⎜⎜p1p2⋮pR⎞⎠⎟⎟⎟⎟(a1a2…aM)=⎛⎝⎜⎜⎜⎜p1a1p2a1⋮pRa1p1a2p2a2⋮pRa2……⋱…p1aMp2aM⋮pRaM⎞⎠⎟⎟⎟⎟R×M
(
p
11
…
p
1
N
p
21
…
p
2
N
⋮
⋮
p
R
1
…
p
R
N
)
R
×
N
(
a
11
…
a
M
1
a
12
…
a
M
2
⋮
⋮
a
1
N
…
p
M
N
)
N
×
M
≜
(
p
1
p
2
⋮
p
R
)
(
a
1
a
2
…
a
M
)
=
(
p
1
a
1
p
1
a
2
…
p
1
a
M
p
2
a
1
p
2
a
2
…
p
2
a
M
⋮
⋮
⋱
⋮
p
R
a
1
p
R
a
2
…
p
R
a
M
)
R
×
M
- 第一个矩阵
R个N维向量
的基,按行看 - 第二个矩阵
M个N维向量
,按列看,表示第M个数据 - 两个矩阵相乘的结果:
- 列解释:
和第二个矩阵对应,对应的列就是a矩阵在p这个基矩阵下的坐标。 - 元素解释:
比如 p1a1 p 1 a 1 表示的是 a1 a 1 在 p1 p 1 这个基方向上的矢量投影
- 列解释:
结论
两个矩阵相乘的意义是将右边矩阵中的每一列列向量变换到左边矩阵中每一行行向量为基所表示的空间中去
R是可以小于N的,这样也就实现了
降低维度
,原来是a矩阵是M个N维的
,现在通过R个N维的基矩阵,变成了M个R维
也就是说如果基的数量少于向量本身的维数,则可以达到降维的效果。基的个数可以决定降维后数据的维度。