近日,根据这篇博客所阐述的思想,我主要讲讲马尔科夫聚类的主要步骤。
马尔科夫聚类属于图聚类的一种,图可分有向图或无向图,根据权重又可划分有权重与无权重,无权重的连接图所代表的连接矩阵,0代表两点有边可连,反之为1,有权重的矩阵元素值代表权重大小
下面给出无向图无权重的聚类示例
输入:连接图矩阵,expansion系数e,inflation系数r |
输出:聚类表 |
1.输入连接图矩阵 2.添加自环,即假设无向图有N个点,构成的连接图矩阵为T,T(i,i)=1 3.对矩阵中的元素标准化,即单个元素除以其所在列和 4.进行迭代循环 5.扩展矩阵,进行expansion操作,每次对矩阵先进行叉乘操作,叉乘e幂次,再点乘r幂次 6.继续标准化 7.记录此次迭代的状态矩阵T 8.重复5-7过程,每次迭代后,将迭代结果的状态概率矩阵与上次矩阵做对比,若每个位置上的元素对应值一致,则停止迭代 9.输出 |
顺便值得一说的是,我们不知道矩阵在第几次迭代时会收敛,因此迭代次数尽量大些。
至于有权重的无向图,添加自环后,权重值可以用exp(-1*abs(x1-x2))表示,这里假设样本1与2 的特征值为x1,x2,再进行标准化,即单元素除以其所在列和。
对上述有疑问的可以参考我所看的这篇博客:马尔科夫聚类-ML
想要看我自己写的源代码请戳这:代码案例(有图例)