1.K近邻
k 近邻(k-Nearest Neighbor,简称 kNN)学习是一种常用的监督学习方法,其工作机制非常简单: 给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测,通常,在分类任务中可使用“投票法”,即选择这k 个样本中出现最多的类别标记作为预测结果;在回归任务中可使用“平均法”,即将这个样本的实值输出标记的平均值作为预测结果;还可基于距离远近进行加权平均或加权投票,距离越近的样本权重越大.
k 近邻学习有一个明显特点: 它似乎没有显式的训练过程!事实上,它是“懒惰学习”(lazy learning)的著名代表,此类学习技术在训练阶段仅仅是把样本保存起来,训练时间开销为零,待收到测试样本后再进行处理; 相应的,那些在训练阶段就对样本进行学习处理的方法,称为“急切学习”(eager learning).
2.低维嵌入
事实上,在高维情形下出现的数据样本稀疏、距离计算困难等问题是所有机器学习方法共同面临的严重障碍,被称为“维数灾难”(curse of dimensionality).缓解维数灾难的一个重要途径是降维(dimension reduction),亦称“维数约简”,即通过某种数学变换将原始高维属性空间转变为一个低维“子空间”(subspace),在这个子空间中样本密度大幅提高,距离计算也变得更为容易
其中,MDS算法会计算高维空间中样本点之间的距离,然后尝试在低维空间中找到一组点的坐标,使得这些点之间的距离与高维空间中的距离尽可能一致。通过这种方式,MDS能够在降维的同时保留数据点之间的相对距离关系,从而帮助我们更好地理解数据的结构和关系。
3.主成分分析
对于正交属性空间的样本点,如果希望找到一个超平面(直线的高维推广)对所有样本进行恰当的表达。
若存在这样的超平面,那么它大概应具有这样的性质:
- 最近重构性:样本点到这个超平面的距离都足够近
- 最大可分性: 样本点在这个超平面上的投影能尽可能分开
主成分分析(Principal Component Analysis,PCA)是一种常用的数据分析方法,它的主要目的是通过降维技术,用较少的变量来代替原来较多的变量,同时尽可能保留原始数据中的信息。这种方法可以帮助我们更好地理解和处理高维数据。
主成分分析的基本原理是将原始数据中的多个变量通过线性变换转换为新的变量,这些新变量被称为主成分。第一主成分是具有最大方差的线性组合,第二主成分是与第一主成分正交且具有次大方差的线性组合,以此类推。通过这种方式,主成分分析能够将原始数据中的信息压缩到少数几个主成分中,从而实现降维的目的。在这个过程中,PCA的目标可以看作是寻找一个超平面进行映射,超平面需要满足上述最近易构性和最大可分性。
- 数据的表示:假设我们有M个N维的数据向量,这些数据可以组成一个M×N的矩阵X。每一行代表一个数据点,每一列代表一个特征。我们的目标是将这些N维数据降到K维(K < N)。
-
数据的中心化:在进行PCA之前,通常需要对数据进行中心化处理,即使得数据的均值为0。这可以通过从每个特征中减去其均值来实现。中心化后的数据矩阵仍然用X表示。
-
协方差矩阵的计算:接下来,计算数据的协方差矩阵C。协方差矩阵是一个N×N的矩阵,其元素表示不同特征之间的协方差。协方差矩阵反映了数据在不同特征方向上的分布和相关性。C = (1/M) * X^T * X 注意:这里的X是中心化后的数据矩阵,X^T表示X的转置。
- 特征值和特征向量的计算:对协方差矩阵C进行特征分解,得到其特征值和对应的特征向量。特征向量构成了新的坐标系,而特征值表示了数据在新坐标系上的方差。C * V = λ * V其中,V是特征向量,λ是对应的特征值。
-
选择主成分:
将特征值按照从大到小的顺序排列,选择前K个最大的特征值所对应的特征向量。这些特征向量构成了新的K维坐标系,即主成分。 -
数据的降维:
将原始数据投影到选定的主成分上,得到降维后的数据。这可以通过计算原始数据与主成分的内积来实现。降维后的数据 = X * V_selected;其中,V_selected是选定的主成分(特征向量)组成的矩阵。
需要注意的是,在实际应用中,可能需要对特征值进行归一化处理,以使得新的坐标系的尺度一致。此外,PCA假设数据的方差最大程度地保留了数据的信息,因此在某些情况下可能并不适用。在选择使用PCA时,需要根据具体的数据特性和应用场景进行评估。
4 核化线性降维
线性降维方法假设从高维空间到低维空间的函数映射是线性的,然而,在不少现实任务中,可能需要非线性映射才能找到恰当的低维嵌入。
与核化支持向量机原理相同,核化PCA也可以通过核处理从而实现非线性超平面映射,从而解决非线性映射问题。
5.流形学习
流形学习(manifold learning)是一类借鉴了拓扑流形概念的降维方法,它基于一种假设:若低维流形嵌入到高维空间中,则数据样本在高维空间的分布虽然看上去十分复杂,但在局部上仍具有欧氏空间的性质。因此,可以容易地在局部建立降维映射关系,然后再设法将局部映射关系推广到全局,实现数据的降维或可视化。
设我们有一个三维空间中的数据集,这些数据点实际上是由一个二维流形(例如,一个卷曲的曲面)嵌入在三维空间中产生的。在三维空间中观察这些数据点,它们可能看起来非常复杂且难以分析。但是,如果我们能够将这个三维数据集映射回其原始的二维流形上,我们就可以更容易地理解数据的内在结构和关系。
(1)等度量映射
等度量映射(Isometric Mapping,简称Isomap)的基本出发点,是认为低维流形嵌入到高维空间之后,直接在高维空间中计算直线距离具有误导性,因为高维空间中的直线距离在低维嵌入流形上是不可达的。也就是说,这是一个二维的流形,这条红色直线是压根不存在的,如图 10.7(a)所示,低维嵌入流形上两点间的距离是“测地线”(geodesic)距离:即沿着S形平面的距离。
那么,如何计算测地线距离呢?这时我们可利用流形在局部上与欧氏空间同胚这个性质,对每个点基于欧氏距离找出其近邻点,然后就能建立一个近邻连接图,图中近邻点之间存在连接,而非近邻点之间不存在连接,于是,计算两点之间测地线距离的问题就转变为计算近邻连接图上两点之间的最短路径问题
从图 10.7(b)可看出基于近邻距离近能获得低维流形上测地线距离很好的近似.在近邻连接图上计算两点间的最短路径,可采用著名的 Dkstra 算法或Floyd 算法,在得到任意两点的距离之后就可通过MDS 方法来获得样本点在低维空间中的坐标图
对近邻图的构建通常有两种做法
- 一种是指定近邻点个数,例如欧氏距离最近的 k 个点为近邻点这样得到的近邻图称为k近邻图;
- 另一种是指定距离阈值 ,距离小于 的点被认为是近邻点,这样得到的近邻图称为近邻图
两种方式均有不足,例如若近邻范围指定得较大,则距离很远的点可能被误认为近邻,这样就出现“短路”问题;近邻范围指定得较小,则图中有些区域可能与其他区域不存在连接,这样就出现“断路”问题短路与断路都会给后续的最短路径计算造成误导。
(2)局部线性嵌入
局部线性嵌入(Locally Linear Embedding,LLE)是一种非常重要的降维方法,尤其适用于在降维时保持样本的局部线性特征。
该方法基于流形学习的思想,可以将高维数据映射到低维空间中,同时保持数据的局部几何结构不变。LLE的基本思想是通过保持每个数据点与其最近邻之间的线性关系,来描述数据的局部几何结构。其主要步骤包括:
- 找邻居:对于每个点,找到它的最近的几个邻居。这些邻居点在原始的纸面上(或高维空间中)是线性相关的。
- 计算权重:对于每个点,计算它与邻居点之间的线性关系的权重。这些权重描述了如何用一个点的邻居来重构这个点。
- 嵌入:现在,你尝试将这些点和它们的权重放到一个平面上(或低维空间中),同时尽量保持每个点与其邻居之间的权重关系不变。
6.度量学习
度量学习是希望找到针对于样本属性的距离度量,以达到与降维寻找低维空间的异曲同工之妙。
传统的平方欧式距离:
对属性加上权重:
于是得到了马式距离:
度量学习的目标是学习一个距离函数,使得在这个距离度量下,相似的样本之间的距离尽可能小,不相似的样本之间的距离尽可能大。这可以被视为一种有监督的学习方法,因为它需要使用标签信息(即样本之间的相似性或差异性)来学习距离度量。然而,也存在无监督的度量学习方法,这些方法主要依赖于样本之间的内在结构或分布。