Skip to content

基于C++实现马尔可夫聚类算法用于对图进行聚类,使用karate等数据集进行了实验。

Notifications You must be signed in to change notification settings

Wlzzzz-del/The-Markov-Cluster-Algorithm-MCL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Markov Cluster Algorithm

The MCL algorithm invented by Stjn van Dongen is short for the Markov Cluster Algorithm, a fast and scalable unsupervised cluster algorithm for graphs based on simulation of flow in graphs.
detail of MCL

Algorthm Steps

  1. input a graph, Expansion $e$, Inflation $r$
  2. build adj_matrix
  3. add self_loop for every nodes(selected)
  4. normolization adj_matrix
  5. count the power of adj_matrix
  6. inflate by matrix built from r
  7. loop step5 and step6 until collect
  8. turn the adj_matrix to result

about project

data.cpp is some functions to process graph into matrix

mcl.cpp is the algorithm , you can regulate the value in main.cpp

chamelon is another algorithm , I tried to combine them but havn't done.

if dataset is large, the performance maybe worse on the runtime.And the matrix can't be stored in the memory.

It is a black hole...

I will try to combine these two algorithm in the future.And optimize the way of store and runtime. we can seperate the matrix to some block and store in disk, and write w/r functions.

how to find me?

my blog: melowlz.top
my wechat: xxscoder

About

基于C++实现马尔可夫聚类算法用于对图进行聚类,使用karate等数据集进行了实验。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages