10. 降维与度量学习
10.1 k近邻学习
k近邻学习(knn)是一种监督学习算法,它直接使用测试样本和训练样本,没有显示的训练过程,工作机制如下:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个邻居的信息来进行预测。通常,对于不同类型的任务,使用的预测方法不同:
- 分类任务:投票法,选择k个样本中出现最多的类别标记作为预测结果
- 回归任务:平均法,将k个样本的实值输出标记的平均值作为预测结果
此外,还可以基于距离远近进行加权平衡或加权投票,距离越近的样本权重越大。
knn为懒惰学习的著名代表,此类学习在训练阶段仅仅是把训练样本保存起来,训练时间开销为0,待收到测试样本之后再进行处理。
急切学习:在训练阶段就对训练样本进行学习处理的学习方法。
knn算法的核心在于k值的选取和距离的度量
knn虽然简单,但是它的泛化错误率不超过贝叶斯最优分类器的错误率的两倍。
10.2 低维嵌入
上一小节的讨论是基于一个重要假设:任意测试样本 x x x附近任意小的 θ \theta θ距离范围内总能找到一个训练样本,即训练样本的采样密度足够大。但是,这种假设在现实任务中常常很难满足,若属性维数较多时,要保证每个测试样本都有对应的训练样本,对样本数量的要求非常大。
这种在高维情形下出现的样本稀疏、距离计算困难等问题,是所有机器学习方法共同面临的严重阻碍,被称为维数灾难。缓解维数灾难的一个重要途径是降维,即通过某种数学变换将原始高维属性空间转变为一个低维子空间,这个子空间中样本密度大幅度提高,距离计算也更为容易。
高维数据样本中,与学习任务密切相关的某个低维分布即为高维空间的一个低维嵌入(embedding)。
上图中,原始高维空间中的样本点在降维后的低维嵌入子空间中更容易进行学习。
经典降维方法:多维缩放(MDS)
不管是使用核函数升维还是对数据降维,我们都希望原始空间样本点之间的距离在新空间中基本保持不变,这样才不会使得原始空间样本之间的关系及总体分布发生较大的改变。“多维缩放”(MDS)正是基于这样的思想,MDS要求原始空间样本之间的距离在降维后的低维空间中得以保持。
注:
令降维后的样本坐标矩阵Z被中心化,中心化是指将每个样本向量减去整个样本集的均值向量,故所有样本向量求和得到一个零向量。这样易知:矩阵B的每一列以及每一列求和均为0,因为提取公因子后都有一项为所有样本向量的和向量。
图片来源文章链接
由B的特性以及式(10.3),可推得:
由(10.3)到(10.9)可得 b i j b_{ij} bij的表达式:
推导过程:
由式(10.10)可知,我们可以通过降维前后保持不变的距离矩阵D计算出每一个 b i j b_{ij} bij,从而求解内积矩阵B( B = Z T Z B=Z^TZ B=