1 K近邻学习
K近邻(K-Nearest Neighbors,KNN)是一种基本且直观的监督学习算法,常用于分类和回归问题。在KNN中,输入是特征空间中的数据点,其输出是该数据点的类别标签(分类问题)或值(回归问题)。KNN的核心思想是,如果一个样本在特征空间中的k个最近邻居中的大多数属于某个类别,则该样本也属于这个类别,并且可以用这k个最近邻居的值的平均值来估计该样本的值。
KNN的工作原理如下:
- 计算待分类样本与训练集中所有样本的距离(通常使用欧氏距离或其他距离度量)。
- 根据距离找到离待分类样本最近的k个样本。
- 对于分类问题,采用多数投票的方式确定待分类样本的类别。对于回归问题,采用这k个样本的平均值作为待分类样本的预测值。
KNN其实没有显式的训练过程,它是懒惰学习的代表,而之前学的是急切学习,
懒惰学习(lazy learning)是一种与主动学习(eager learning)相对应的机器学习范式。在懒惰学习中,模型在训练阶段仅仅是将训练数据存储起来,而不进行实质性的学习或模型构建。当需要进行预测时,才根据训练数据进行计算和推理,即“懒惰”地延迟了学习过程。
但是KNN的前提是样本之间的距离足够小,也就是样本密度足够大
设想如果我们选定一个距离,这个距离内竟然没有任何相邻样本,这时候怎么用KNN呢?同时高维度的距离计算也很不容易。
那么对于高维情况下出现的数据样本稀疏,距离计算困难等问题,在机器学习被称作维数灾难
因而我们需要降维
2 降维方式一——多维嵌入
多维缩放(Multidimensional Scaling,MDS)是一种经典的降维技术,用于将高维数据映射到低维空间中,同时保持数据点之间的相对距离关系。MDS的目标是在低维空间中找到一组点的配置,使得它们之间的距离尽可能地与原始高维空间中的距离相似。
MDS可以分为两种类型:度量MDS和非度量MDS。
- 度量MDS:保持样本间的实际距离。在这种情况下,MDS试图找到在低维空间中最能代表高维空间中距离的点的配置。
- 非度量MDS:只保持样本间的顺序关系,不考虑实际距离值。非度量MDS通常用于处理排序或相对距离信息的情况。
MDS常用于可视化高维数据,帮助人们更好地理解数据的结构和关系。例如,在分析文本数据时,可以使用MDS将文档映射到二维空间,从而可视化文档之间的相似性。
3 降维方式二——主成分分析
主成分分析(Principal Component Analysis,PCA)是一种常用的降维技术,用于将高维数据集映射到低维空间中,同时保持数据集的主要特征。PCA的目标是通过线性变换将原始数据映射到一个新的坐标系中,使得映射后的数据在各个维度上的方差尽可能大,以此来减少数据的维度。
PCA的步骤如下:
- 对数据集进行中心化处理,即将每个特征的均值减去该特征在整个数据集上的均值,使得数据的均值为零。
- 计算数据集的协方差矩阵。
- 对协方差矩阵进行特征值分解,得到特征值和特征向量。
- 选择前k个最大特征值对应的特征向量构成变换矩阵,其中k为降维后的维度。
- 将数据集投影到由选定的特征向量构成的新空间中,得到降维后的数据集。
需要注意的是,PCA假设数据集在一个线性子空间中,并且最大化样本方差的线性变换会得到最好的结果。因此,在应用PCA之前,需要确保数据集符合这些假设。
以上两种方式都是线性的,有些时候需要非线性的降维方式
4 降维方式三——核化线性降维
核化线性降维是一种将核方法(Kernel Methods)与线性降维技术相结合的方法,用于处理非线性可分的数据集。传统的线性降维技术如主成分分析(PCA)只能处理线性可分的数据,无法很好地捕捉非线性数据的结构。而核化线性降维通过将数据映射到高维空间,并在高维空间中进行线性降维,从而可以更好地处理非线性数据。
核化线性降维的基本思想是,在将数据映射到高维空间之后,利用核技巧(Kernel Trick)将高维空间中的内积操作替换为核函数的计算,从而避免了直接计算高维空间的特征向量,减少了计算复杂度。具体步骤如下:
- 使用核函数将原始数据映射到高维空间中。
- 在高维空间中应用传统的线性降维技术,如PCA。
- 将降维后的数据映射回原始空间。
常用的核函数包括线性核、多项式核、高斯核(RBF核)等。选择合适的核函数是核化线性降维的关键,不同的核函数适用于不同类型的数据集。
5 降维方式四——流形学习
5.1 等度量映射
等度量映射(Isomap,Isometric Mapping)是流形学习(Manifold Learning)中的一种方法,用于从高维数据中恢复低维流形的结构。等度量映射试图在保持数据点之间测地距离(geodesic distance)不变的情况下,将高维数据映射到低维空间中,从而能够更好地捕捉数据的非线性结构。
等度量映射的基本思想是首先通过近邻图(neighborhood graph)来估计数据点之间的测地距离,然后利用多维缩放(MDS)等技术将高维数据映射到低维空间中,使得在低维空间中的欧氏距离尽可能地近似于在高维空间中的测地距离。
等度量映射的步骤如下:
- 构建近邻图:对于每个数据点,找到其k个最近邻居,构建近邻图。
- 估计测地距离:通过近邻图计算数据点之间的测地距离,通常使用最短路径算法(如Dijkstra算法)来计算。
- 降维:将估计的测地距离作为输入,使用多维缩放(MDS)等技术将高维数据映射到低维空间中。
等度量映射能够有效地处理高维数据中的非线性结构,并且对于一些实际问题,如人脸识别、图像处理等,取得了良好的效果。然而,等度量映射也有一些局限性,如对于噪声敏感、计算复杂度较高等。
5.2 局部线性嵌入
局部线性嵌入(Locally Linear Embedding,LLE)是一种流形学习方法,用于将高维数据映射到低维空间中,同时保持数据点之间的局部线性关系。LLE的基本思想是将每个数据点表示为其最近邻数据点的线性组合,并在低维空间中保持这种线性关系,从而实现降维。
局部线性嵌入的步骤如下:
- 对于每个数据点,找到其k个最近邻居。
- 对于每个数据点,通过最小化其与最近邻点之间的局部线性关系来计算其在低维空间中的表示。
- 构建低维空间的表示矩阵,使得原始数据点在低维空间中的重构误差最小。
- 可选地,对表示矩阵进行降维处理。
局部线性嵌入的优点包括能够保持数据的局部结构、对噪声鲁棒性较好以及对非线性流形的适应能力。然而,LLE也有一些缺点,如对参数选择敏感、计算复杂度较高等。
局部线性嵌入在许多领域中都有应用,如图像处理、模式识别、生物信息学等,能够帮助提取数据的关键特征并进行可视化。
参考
[1] 周志华《机器学习》