降维与度量学习
本篇是西瓜书第十讲的总结,一些细节其他相关的博文有推导。
懒惰学习,kNN
懒惰学习预处理数据没有显式对数据运算的学习过程,而仅仅是储存下来,直到判别才开始利用数据。最典型的懒惰学习是kNN,除此之外懒惰学习含有懒惰决策树和懒惰朴素贝叶斯,与之相对的概念是急切学习。
kNN理想情况下的泛化误差可以估计,不超过贝叶斯最优分类器的两倍。
kNN实际情况下因为维度过高导致数据稀疏造成维度灾难,所以需要降维。
降维
MDS降维
在不损失数据距离矩阵的秩情况下可以保距降维,如果目标维度更低,对距离矩阵做主成分分析即可。MDS降维的核心是尽量保距。
PCA降维
PCA降维是一种无监督的线性维度规约。规约的子空间可以由两种思路导出:
1.最近重构性,子空间距离原向量尽量近。
2.最大可分性,子空间内投影尽量分开。
PCA降维需要中心化,而且对协方差矩阵的主成分分析往往由对数据矩阵的奇异值分解代替。
LDA
LDA是一种有监督的线性维度规约。规约子空间可以由以下思路导出:
1.投影类间分开
2.投影类内聚拢
用两者比值广义瑞利熵刻画。、
核化的维度规约
KPCA
KLDA
流形学习
等距离映射
注意到流行局部与欧式空间同胚。那么比较近的点可以用欧式距离代替流形上的测地线距离了。
至于比较近,可以用前k近或者距离小于阈值来刻画,这是两种常见的算法。
然后定义了局部距离,全局距离可以用Floyd或者Dijkstra传递刻画。
最后得到了距离矩阵,即获得了流形上的距离,再用MDS将流形转化为保距的欧式空间。完成了维度规约。这就是Isomap算法。
但是对于新加入的点,没有好的规约方式,只能考虑在旧的点和新的欧式空间之间建立有监督学习,来预测新的点的规约结果。
局部线性嵌入
LLE算法思路是假设每个点可以用领域内的其他点以权值和为1线性组合而成,使得误差尽量小,得到系数。然后在低维空间内根据系数,以最小误差嵌入点。
转化为优化问题就是:
m
i
n
L
(
w
i
j
)
=
∑
i
=
1
m
∣
∣
x
i
−
∑
j
∈
Q
i
w
i
j
x
j
∣
∣
2
2
min\ L(w_{ij})= \sum\limits_{i=1}^m||x_i-\sum\limits_{j\in Q_i}w_{ij}x_j||_2^2
min L(wij)=i=1∑m∣∣xi−j∈Qi∑wijxj∣∣22
m
i
n
L
(
z
i
)
=
∑
i
=
1
m
∣
∣
z
i
−
∑
j
∈
Q
i
w
i
j
z
j
∣
∣
2
2
min\ L(z_{i})= \sum\limits_{i=1}^m||z_i-\sum\limits_{j\in Q_i}w_{ij}z_j||_2^2
min L(zi)=i=1∑m∣∣zi−j∈Qi∑wijzj∣∣22
后一步可以转化为:
m
i
n
L
(
Z
)
=
t
r
(
Z
M
Z
T
)
s
.
t
.
Z
Z
T
=
I
min\ L(Z)=tr(ZMZ^T)\\ s.t. ZZ^T=I
min L(Z)=tr(ZMZT)s.t.ZZT=I
可以用主成分分析获得嵌入向量对应的Z。
度量学习
马尔科夫距离
称半正定对称矩阵
M
=
P
P
T
M=PP^T
M=PPT为度量矩阵,则
∣
∣
x
∣
∣
M
2
=
x
T
M
x
||x||_M^2=x^TMx
∣∣x∣∣M2=xTMx
注意到以前的算法中的欧式距离只是马氏距离的特例,认为属性(基)之间正交,事实上不一定,可以用马氏距离表示属性间的关联。
NFC
西瓜书上举了一个典型例子就是NFC,去学习M,同时得到副产品P用于维度规约。