class MarkovClustering extends Clusterer with Error
The MarkovClustering
class implements a Markov Clustering Algorithm 'MCL'
and is used to cluster nodes in a graph. The graph is represented as an
edge-weighted adjacency matrix (a non-zero cell indicates nodes i and j are
connected).
The primary constructor takes either a graph (adjacency matrix) or a
Markov transition matrix as input. If a graph is passed in, the normalize
method must be called to convert it into a Markov transition matrix.
Before normalizing, it may be helpful to add self loops to the graph.
The matrix (graph or transition) may be either dense or sparse.
See the MarkovClusteringTest
object at the bottom of the file for examples.
- Alphabetic
- By Inheritance
- MarkovClustering
- Error
- Clusterer
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
addSelfLoops(weight: Double = 1.0): Unit
Add self-loops by setting the main diagonal to the weight parameter.
Add self-loops by setting the main diagonal to the weight parameter.
- weight
the edge weight on self-loops to be added.
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
classify(y: VectorD): Int
This clustering method is not applicable to graph clustering.
This clustering method is not applicable to graph clustering.
- y
unused parameter
- Definition Classes
- MarkovClustering → Clusterer
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
cluster(): Array[Int]
Cluster the nodes in the graph by interpreting the processed matrix t.
Cluster the nodes in the graph by interpreting the processed matrix t. Nodes not clustered will be in group 0; otherwise, they will be grouped with their strongest positive attractor.
- Definition Classes
- MarkovClustering → Clusterer
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
expand(): Unit
Expansion tends to grow clusters (flow along path in graph).
Expansion tends to grow clusters (flow along path in graph). Expand by raising the matrix t to the k-th power.
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
flaw(method: String, message: String): Unit
Show the flaw by printing the error message.
Show the flaw by printing the error message.
- method
the method where the error occurred
- message
the error message
- Definition Classes
- Error
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
getName(i: Int): String
Get the name of the i-th cluster.
Get the name of the i-th cluster.
- Definition Classes
- Clusterer
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
def
inflate(): Boolean
Inflation tends to strengthen strong connections and weaken weak ones.
Inflation tends to strengthen strong connections and weaken weak ones. Inflate by raising each cell to the r-th power and normalize column-by-column. If a cell is close to zero, set it to zero (prune). Also, detect convergence by making sure that the variance in each column is small enough.
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
name_(n: Array[String]): Unit
Set the names for the clusters.
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
normalize(): Unit
Normalize the matrix t so that each column sums to 1, i.e.0, convert the adjacency matrix of a graph into a Markov transition matrix.
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
processMatrix(): MatrixD
Return the processed matrix t.
Return the processed matrix t. The matrix is processed by repeated steps of expansion and inflation until convergence is detected.
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )