发现其实还有很多知识点还未整理和掌握,包括降维、模型评估、特征选择、稀疏学习、聚类算法等。在实践中穿插着整理和学习吧。先从降维方法开始。
线性降维
欲获得低维子空间,最简单的方法就是对原始高维空间进行线性变换。
给定样本
X∈Rn×m
X
∈
R
n
×
m
,即有
m
m
个数据样本,每个样本有个特征(
n
n
维),记为,线性变换
Z=WTX
Z
=
W
T
X
之后得到
k
k
维空间中的样本,
WT∈Rk×n
W
T
∈
R
k
×
n
是变换矩阵,也被称为基,可以看做有
k
k
个维的基向量,即
W=(w1,w2,...,wk)∈Rk×n
W
=
(
w
1
,
w
2
,
.
.
.
,
w
k
)
∈
R
k
×
n
其中
wl
w
l
(
l
l
取)是基向量,可表示为:
样本 X X 在维坐标系的投影是: Z=WTX Z = W T X
我们可以看出
用 zi z i 恢复 xi x i 得到恢复数据 x^i=∑j=1kz(j)iwj=Wzi x ^ i = ∑ j = 1 k z i ( j ) w j = W z i 。
我们可以发现样本X的特征维数由 xi x i 的 n n 维变为的 k k 维
主成分分析(PCA)
主成分分析(Principal Component Analysis,简称PCA),是最常用的一种降维方法。 其主要思路可以从两个方向来理解。
第一、最近重构性,即样本点到投影的超平面的距离都越小越好;
第二、最大可分性,即样本点在这个超平面上的投影尽可能分开。
因此优化思路即为最小化投影距离或者最大化投影方差。
假设数据样本都已进行了中心化,即;再假定投影变换后得到的新坐标系
{w1,w2,...,wk}
{
w
1
,
w
2
,
.
.
.
,
w
k
}
,假设其中任选两个基向量
wl
w
l
和
wm
w
m
都是正交的(
l≠m
l
≠
m
),也就是
wTlwm=0
w
l
T
w
m
=
0
,则
W
W
是正交基,为标准正交基向量(
l
l
取),
||wl||2=wTlwl=1
|
|
w
l
|
|
2
=
w
l
T
w
l
=
1
。
x^i=∑j=1kz(j)iwj=Wzi
x
^
i
=
∑
j
=
1
k
z
i
(
j
)
w
j
=
W
z
i
,
zi=WTxi
z
i
=
W
T
x
i
。
最近重构性(最小化投影距离)
现在考虑整个训练数据集,原样本点
xi
x
i
与基于投影重构的样本点
x^i
x
^
i
之间的距离为:
∑i=1m||x^i−xi||2=∑i=1m||∑j=1kz(j)iwj−xi||2=∑i=1m[(Wzi)T(Wzi)−2(Wzi)Txi+x2i]=∑i=1m(zTiWTWzi−2zTiWTxi+x2i)=∑i=1m(zTizi−2zTizi+x2i)=∑i=1m(−zTizi+x2i)=−tr(WT(∑i=1mx2i)W)+∑i=1mx2i
∑
i
=
1
m
|
|
x
^
i
−
x
i
|
|
2
=
∑
i
=
1
m
|
|
∑
j
=
1
k
z
i
(
j
)
w
j
−
x
i
|
|
2
=
∑
i
=
1
m
[
(
W
z
i
)
T
(
W
z
i
)
−
2
(
W
z
i
)
T
x
i
+
x
i
2
]
=
∑
i
=
1
m
(
z
i
T
W
T
W
z
i
−
2
z
i
T
W
T
x
i
+
x
i
2
)
=
∑
i
=
1
m
(
z
i
T
z
i
−
2
z
i
T
z
i
+
x
i
2
)
=
∑
i
=
1
m
(
−
z
i
T
z
i
+
x
i
2
)
=
−
t
r
(
W
T
(
∑
i
=
1
m
x
i
2
)
W
)
+
∑
i
=
1
m
x
i
2
tr指的是矩阵的迹,即主对角线上各个元素总和,因为
∑i=1mx2i=XXT
∑
i
=
1
m
x
i
2
=
X
X
T
,所以
−tr(WT(∑i=1mx2i)W)=−tr(WTXXTW)
−
t
r
(
W
T
(
∑
i
=
1
m
x
i
2
)
W
)
=
−
t
r
(
W
T
X
X
T
W
)
我们为了让这个距离最小,应调整基w使得−tr(wTXXTw)最小
我
们
为
了
让
这
个
距
离
最
小
,
应
调
整
基
w
使
得
−
t
r
(
w
T
X
X
T
w
)
最
小
优化问题可以写为:
优
化
问
题
可
以
写
为
:
minw−tr(WTXXTW)
min
w
−
t
r
(
W
T
X
X
T
W
)
s.t. WTW=I
s
.
t
.
W
T
W
=
I
I为单位矩阵
I
为
单
位
矩
阵
最大可分性(最大化投影方差)
换一个角度来考虑,我们也可以通过使所有样本点的投影尽可能分开来找到最好的
W
W
。若所有样本点的投影能尽可能分开,则应该使投影后样本点的方差最大化。
是个协方差矩阵,一个对称的矩阵,而且对角线是各个维度上的方差。因此投影后样本点的方差为
∑i=1mWTxixTiW=tr(WTXXTW)
∑
i
=
1
m
W
T
x
i
x
i
T
W
=
t
r
(
W
T
X
X
T
W
)
因此优化问题可以写为:
因
此
优
化
问
题
可
以
写
为
:
maxw tr(WTXXTW)
max
w
t
r
(
W
T
X
X
T
W
)
s.t. WTW=I
s
.
t
.
W
T
W
=
I
和上面最近重构性思路的优化问题等价。
使用拉格朗日乘子法可得
XXTwi=λiwi
X
X
T
w
i
=
λ
i
w
i
,对协方差矩阵
XXT
X
X
T
进行特征值分解,将求得的特征值排序:
λ1≥λ2≥...≥λn
λ
1
≥
λ
2
≥
.
.
.
≥
λ
n
,取前
k
k
个特征值对应的特征向量构成,这就是主成分分析的解。
算法描述
输入:样本集
D={x1,x2,...,xm};
D
=
{
x
1
,
x
2
,
.
.
.
,
x
m
}
;
低维空间维数
k
k
.
输出:降维后样本集
过程:
①对所有样本进行中心化:
xi−1m∑i=1mxi→xi
x
i
−
1
m
∑
i
=
1
m
x
i
→
x
i
;
②计算样本的协方差矩阵
XXT
X
X
T
;
③对协方差矩阵
XXT
X
X
T
做特征值分解;
④取最大的
k
k
个特征值所对应的特征向量构成
⑤对样本集
D
D
中每个样本的投影
⑥输出样本
D′=(z1,z2,...,zm)
D
′
=
(
z
1
,
z
2
,
.
.
.
,
z
m
)
样本的协方差矩阵
XXT
X
X
T
:
cov(x(k),x(t))=∑i=1m(x(k)i−x¯(k))(x(t)i−x¯(t))m−1
c
o
v
(
x
(
k
)
,
x
(
t
)
)
=
∑
i
=
1
m
(
x
i
(
k
)
−
x
¯
(
k
)
)
(
x
i
(
t
)
−
x
¯
(
t
)
)
m
−
1
,
k,t
k
,
t
取
1,2,..,n
1
,
2
,
.
.
,
n
若是样本是经过中心化过后的样本,则
x¯(k)=0
x
¯
(
k
)
=
0
,
k
k
取
式子变为:
cov(x(k),x(t))=∑i=1mx(k)ix(t)im−1
c
o
v
(
x
(
k
)
,
x
(
t
)
)
=
∑
i
=
1
m
x
i
(
k
)
x
i
(
t
)
m
−
1
协方差矩阵(样本为
n
n
维)写作:
低维空间维数
k
k
:
一般低维空间维数由用户事先指定,也可以通过在
k
k
值不同的低维空间对开销较小的学习器进行交叉验证来选取较好的值。从重构的角度还可以设置一个重构阈值,例如
t=95%
t
=
95
%
,然后选取使下式成立的最小
k
k
值:
PCA优缺点
PCA算法的主要优点有:
1.仅仅需要以方差衡量信息量,不受数据集以外的因素影响。
2.各主成分之间正交,可消除原始数据成分间的相互影响的因素。
3.计算方法简单,主要运算是特征值分解,易于实现。
PCA算法的主要缺点有:
1.主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。
2.方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。
PCA算法可用于高维数据可视化。因为一个高维数据集是无法用图形表示的,所以我们可以通过PCA降维方法把它降成二维或三维数据来可视化。
参考:
1. http://www.cnblogs.com/pinard/p/6239403.html
2.《机器学习》