机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。降维的原因,在周志华《机器学习》中用最近邻分类器给了一个解释——数据集需要满足密采样条件,以及高维计算下会有很多麻烦,甚至在尾数特别高的时候连计算内积都变的复杂,这种计算阻碍称为“维数灾难”。其他的原因还有过滤噪音等。
多维缩放(MIDS)
假设样本数m(),样本间的距离矩阵
,其第i行第j列的元素为
是
到
的距离。
这里降维的目标是得到样本在的
维空间里的表示:
且任意两个样本之间的欧氏距离不变。即(
)
令内积矩阵,
有
dist2ij=||zi||2+||zj||2−2zTizj
=bii+bjj−2bij
为便于计算,令Z被中心化,即质心在原点,则,则:
m∑i=1dist2ij=m∑i=1bii+mbjj−2m∑i=1bij
=tr(B)+mbjj
m∑j=1dist2ij=tr(B)+mbii
m∑i=1m∑j=1dist2ij=mtr(B)+mm∑j=1bjj=2m tr(B)
令
dist2i.=1mm∑i=1dist2ij
dist2.j=1mm∑j=1dist2ij
dist2..=1m2m∑i=1m∑j=1dist2ij
则可以由上式得:
bij=−12(dist2ij−dist2i.−dist2.j+dist2..)
由此就可以在保持样本距离矩阵不变并求出内积矩阵B。
接下来求矩阵Z:
可以把B特征值分解为(这是写到现在为止学了线代唯一还记得的:))
特征值按从大到小排序,令,因为降维后往往距离与原始距离尽可能接近,不必严格相等,所以只需取最大的
个特征即可。而Z即可表达为:
Z=˜Λ12˜VT∈Rd′∗m
求出Z矩阵后,MIDS也就结束了。如果Z满足,则此变换为线性变换。
主成分分析(PCA)
将d维的样本降维至d’维,相当于用一个d'维超平面让所有人样本点投影到这个超平面上。而为了使这个超平面尽可能完整的表达样本点的性质,被削减的维度部分的偏离程度必然要尽可能的小。
两个性质:
- 最近重构性:样本点到这个超平面的距离尽可能近
- 最大可分性:样本点在在这个超平面上的投影尽可能展开(方差尽可能大)
从这两个性质出发,都可以推导出同样的结果,从最大可分性出发:,则为了方差最大化,求:
maxW ∑izizTi=max∑iWTxixTiW
则,优化目标可以写成:
maxW tr(WTXXTW)
因为不关心W大小,只关心超平面的方向,故默认W为单位矩阵
运用拉格朗日乘数法,得到
XXTωi=λiωi
最后,对协方差矩阵进行特征值分解,即可得到d'个按大小排序的特征值
以及对应的特征向量
也就是主成分分析的解。
降维的个数由使用者决定。
多维缩放和主成分分析看上去方法还挺相似的,都是保留最大的d'个特征值,那么矩阵的秩也变为d',势必会舍弃一部分信息来做到降维,而这部分微量信息也往往和噪声有关,它们的舍弃一定程度上能达到去躁的效果。
李政轩老师的PCA和KPCA讲解视频,非常详细易懂www.powercam.cc/slide/6553
核化PCA(KPCA)
假设是样本点
在高维空间的像,即通过映射
,即
。
则由上述结果可得,新的式子为
ZZTωi=λiωi
可得
ωj=1λj(m∑i=1zizTi)ωj=m∑i=1zizTiωjλj
=m∑i=1ziαji
其中
因为不清楚的具体形式,于是引入核函数:
κ(xi,xj)=ϕ(xi)Tϕ(xj)
由上式可以得到
Kαj=λjαj
为
对应的核矩阵
同样,这也是特征值分解问题,解出最大的d'个特征值对应的特征向量即可。
个人更推荐观看李政轩的讲解视频,推导过程也更为清晰,这里的过程是参考周志华《机器学习》的,矩阵的行列关系没有细说,看起来容易似懂不懂。