1 - 线性降维
样本在高维情形下会出现数据样本稀疏(因为样本不是均匀分布在每个维度表示的空间中),距离计算困难(欧式距离也不如人想象的那么有效),可视化困难,容易过拟合等问题。所以不论是机器学习,还是人类理解角度,高维都是个不喜欢的话题(当然对于低维样本线性不可分而上升到高维线性可分的情形并不是这里指的情况)。
因为基于大多人类观测和收集到的样本,与学习任务密切相关的也许只是某些低维分布。所以如果适当的降维,可以让样本在所需维度上达到更密集的分布,且距离计算问题也能缓解不少。
一般来说,想要获得低维子空间,最简单的是对原始高维空间进行线性变换。给定 d 维空间中的样本
其中 W∈Rd×d′ 是变换矩阵, X′∈Rd′×N 是样本在新坐标空间中的表达。变换矩阵 W 可以看成是 d′ 个 d 维基向量,
基于线性变换来降维的方法称为线性降维方法,不同的线性降维方法基本上就是对低维子空间的性质有不同要求,对降维效果的评估,就是比较降维前后学习器的性能。其中主成分分析是一种无监督的线性降维方法,线性判别分析(LDA)是一种有监督线性降维方法。
2 - PCA
PCA是一种降维方法,其可以用来1)可视化;2)预处理;3)建模;4)压缩。
假设有 N 个样本
这可以看成是一个线性变换的形式:
其中 W 是一个 d×d′ 的变换矩阵; xi 为一个低维样本表示的列向量, wi 为矩阵 W 的第 i 个列向量。矩阵
为了学习这个模型,对该模型建立目标函数,这里采用最小二乘方法:
这里的限制使得求得的变换矩阵式一个正交矩阵,即等同于:
其中 x′ 所在空间的坐标系为潜在坐标系。具体过程如下:
1)先计算原有样本矩阵基于样本的均值向量:
2):计算原有样本矩阵中心化后的协方差均值矩阵:
3):对上述矩阵进行矩阵分解,并计算其特征值和特征向量:
其中 Λ 是由特征值组成的对角矩阵 Λ=diag(λ1,...λd) ; V 是对应特征值的特征向量,且该矩阵是正交矩阵即, V=[V1,...Vd] , VTV=I
对特征值矩阵进行从大到小排序,选取足够多精度的特征值(即丢弃特征值较小的)
4):用保留的特征值对应的特征向量组成正交矩阵 W=[V1,...Vd′]
5):从而新的样本为 x′i=WT(xi−b) , i∈1,2,...,N
2.1 为什么选取特征值较大的,而不是较小的
假设投影后空间的坐标系为 W={
w1,w2,w3,...wd′} ,且其两两正交,且原始样本已经进行了中心化,即均值为0。原始样本 {
xi} 在新空间中投影为 {
x′i} ,且 x′ij=wTjxi ,是 {
x′i} 在低维坐标系下第 j 维的坐标值。以此重构得到
基于整个训练集,原样本点 xi 与基于新空间样本点重构的样本点 x^i 之间距离为: