马尔科夫链聚类算法MATLAB实现

一、算法步骤

1.输入一个无向图,Expansion的幂e和Inflation的参数r。

2.创建邻接矩阵。

3.对每个结点添加自循环(可选的)。

4.标准化矩阵(每个元素除以所在列的所有元素之和)。

5.计算矩阵的第e次幂。

6.用参数r对求得的矩阵进行Inflation处理。

7.重复第5步和第6步,直到状态稳定不变(收敛)。

8.把最终结果矩阵转换成聚簇。

二、实例1:

  1. 输入:一个非全连通图,Expansion 时的参数ee和 Inflation 的参数rr。

马尔科夫链聚类算法MATLAB实现

马尔科夫链聚类算法MATLAB实现

 6. 重复步骤5和6,直到达到稳定

 7. 将结果矩阵转化为聚簇,由于本例中是将有边的置为1,而本例的四个节点都是相连的,所以四个最后结果是四个节点为一个组,下面来举个特殊点的例子。

三、实例2

(1)如下图所示:

马尔科夫链聚类算法MATLAB实现

(2)邻接矩阵+自环得到的矩阵

马尔科夫链聚类算法MATLAB实现

(3)结果:节点2,3,5聚在一起

马尔科夫链聚类算法MATLAB实现

四、实例3:

(1)如下图所示

马尔科夫链聚类算法MATLAB实现

(2)邻接矩阵+自环得到的矩阵

马尔科夫链聚类算法MATLAB实现

(3)结果:节点1,2,4一组,5,6,7一组

马尔科夫链聚类算法MATLAB实现

源代码请查阅链接:https://download.****.net/download/RobotMujie/12667177