机器学习——降维算法学习总结

logos515 / 2023-07-24 / 原文

降维算法学习

一、PDA(主成分分析)算法

假设有n个m维向量,需要降到k维
PDA的目标是最大化组内方差,最小化组间协方差
步骤:

  1. 中心化:计算这n个向量在每一个维度上的均值,得到m维的均值向量,再用每一个向量减去这个均值向量。
  2. 计算这n个向量的协方差矩阵。
  3. 提取协方差矩阵的特征值和特征向量,将特征值按从大到小的顺序排列,提取对应的前k个特征向量,即为新空间的基。
  4. 将所有特征向量单位化后按行排列成一个k行m列的矩阵A,将需要转换的向量按列排列成一个m行n列的矩阵B,A×B得到一个k行n列的矩阵D,D的每一列即为降维后的新向量。

二、MDS(多维尺度变换)算法

假设有n个m维向量,需要降到k维
MDS的目标是降维并保持向量之间的距离尽量不变
步骤:

  1. 计算这n个向量的距离矩阵,得到一个n行n列的矩阵A
  2. 计算内积矩阵:$ B=AA^T $
  3. 提取矩阵B的特征值和特征向量
  4. 将特征值从大到小排序,提取前k个特征值对应的特征向量作为新空间的基

三、Isomap Embedding(等距特征映射)算法

假设有n个m维向量,需要降到k维
基本与MDS相同,区别在于不再使用欧氏距离表示两个点之间的距离,而是使用最短路径的长度代替。

如何计算最短路径:
首先采用KNN算法找出每一个点的k个邻接点,如果两个点互相是彼此的邻接点,那么连接这两个点,如是构建出邻域图。然后根据这张图计算任意两点之间的路径长度,代替欧氏距离,再套用MDS的方法即可。