一.等度量映射算法(Isomap)
算法前提:MDS算法,MDS是基于距离度量的数据降维算法,要求高维数据降维成低维数据后,样本点的相对位置关系不变。
Isomap算法是基于前面所讲的MDS算法,不同之处在于isomap用测地距离替代了MDS中欧式空间的距离,这样能更好的拟合流行体数据。(主要针对多维流行结构)
算法流程:
(1)针对高维中每个点,对其k紧邻的点构建邻接矩阵(非k近邻距离视为无穷大);
(2)用最短路径算法(Floyd算法或者Dijkstra算法)计算k近邻点之间的测地距离;
(3)利用更新过的距离矩阵,使用MDS算法进行降维。
算法优点:
通过保持数据点之间的测地距离,能够有效地揭示数据的内在结构和非线性关系
算法缺点:
(1)对邻域选择敏感:Isomap算法的降维效果受近邻点选择的影响较大,不同的近邻点选择可能 导致不同的降维结果;
(2)无法处理非线性结构:Isomap算法对于非线性结构的流形数据降维效果不佳;
(3)对于大规模数据计算较为耗时;
二.局部线性嵌入算法(LLE)
核心思想:假设高维数据可以在局部近似为线性的,即对于任意一个数据点,可以用其邻域内的其他数据点进行线性表示。LLE算法通过优化每个数据点的局部线性重构权重,找到一组低维坐标使得每个数据点的重构误差最小,从而得到原始高维数据在低维空间中的嵌入。
几何意义:使得样本点在低维空间的投影点能保持高维中点的线性关系
算法流程:
(1)对于给定的高维数据集X,首先确定每个数据点的k个最近邻点。这可以通过计算欧氏距离或其他距离度量来实现;
(2)对于每个数据点xi,计算其重构权重Wi,使得xi可以被其k个最近邻点线性表示,且重构误差最小。这可以通过求解一个局部加权最小二乘问题来实现。
(3)利用步骤2中计算得到的重构权重W,寻找一组低维嵌入坐标Y,使得每个数据点yi的重构误差之和最小。这可以转化为一个特征值分解问题来解决。
算法推导过程:(重中之重)
步骤2目标函数如下:(求高维中的W矩阵)
(m表示m个n维向量,用周围k个点来线性表示一个点)
我们不妨令,则上面问题可以转化为以下问题:
其中表示k维全为1的列向量;
利用拉格朗日乘子法可以得到:
由于含有未知量λ,我们利用条件 对上述结果进行归一化可得:
因此我们可以基于上式构造出权重矩阵W;此时W是m×k维度,为了进行步骤3,我们将那些不在邻域位置的W的位置取值为0,将其扩展到m×m维度。
而对于步骤3,我们是为了找到低维中可以近似保持k近邻的这种线性关系的一组点,所以我们的优化函数如下:
不妨令,则利用拉格朗日乘子法可以以下结果:
(这里值得注意的是这里最后的写法是按照原论文的写法,写成这么麻烦应该是数据按行放的原因,如果按列放的话,就不需要那么多转置了)
因此最后的矩阵Y由特征分解得到的最小的d个特征值所对应的d个特征向量组成。(记得转置)
LLE算法的缺点:
(1)LLE 算法需要进行稠密采样;
(2)该算法的局部邻域参数 k、嵌入维数 d 和信号中的噪声,会影响高维空间的降维效果;
(3)LLE 无法处理等距流形等。
三.局部判别嵌入算法(LDE)
LDE算法是LLE和LDA两种算法的结合体,该算法通过求解一个优化问题来学习每个类的子流形的嵌入。嵌入到低维子空间后,同一类的数据点保持其固有的邻域关系,而不同类的相邻点不再相互粘附。
首先明确此算法首先狗在两个权重矩阵,一个同类权重矩阵 ,一个不同类权重矩阵 ,构造方法与之前构造邻近的权重矩阵一样,这里只是分了类别。
目标函数:
观察此优化函数,我们不难知道其目的就是在最化类间散度的1同时最小化类内散度,同时保持了数据局部几何结构。
利用拉格朗日乘子法如下:
由于优化过程与LPP类似,这里直接给出结果,LPP具体可以看我另一篇博客:
最后可以转化为以下求解广义特征值的问题:
----- 以上为本人学习机器学习这门课总结出的一些知识点,有错误或者疑问可以评论区交流,欢迎指正!!!