scalation.analytics

MarkovClustering

class MarkovClustering extends Clustering with Error

This 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.

Linear Supertypes
Error, Clustering, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. MarkovClustering
  2. Error
  3. Clustering
  4. AnyRef
  5. Any
Visibility
  1. Public
  2. All

Instance Constructors

  1. new MarkovClustering(t: MatrixD, k: Int = 2, r: Double = 2.0)

    t

    either an adjacency matrix of a graph or a Markov transition matrix

    k

    the strength of expansion

    r

    the strength of inflation

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. def addSelfLoops(weight: Double = 1.): 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.

  7. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  8. 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
    MarkovClusteringClustering
  9. def clone(): AnyRef

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  10. 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
    MarkovClusteringClustering
  11. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  13. 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.

  14. def finalize(): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  15. 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
  16. final def getClass(): java.lang.Class[_]

    Definition Classes
    AnyRef → Any
  17. def getName(i: Int): String

    Get the name of the i-th cluster.

    Get the name of the i-th cluster.

    Definition Classes
    Clustering
  18. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  19. def inflate(): Boolean

    Inflation tends to strenthen strong connections and weaken weak ones.

    Inflation tends to strenthen 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.

  20. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  21. def name_(n: Array[String]): Unit

    Set the names for the clusters.

    Set the names for the clusters.

    n

    the array of names

    Definition Classes
    Clustering
  22. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  23. def normalize(): Unit

    Normalize the matrix t so that each column sums to 1, i.

    Normalize the matrix t so that each column sums to 1, i.e., convert the adjacency matrix of a graph into a Markov transition matrix.

  24. final def notify(): Unit

    Definition Classes
    AnyRef
  25. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  26. 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.

  27. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  28. def toString(): String

    Definition Classes
    AnyRef → Any
  29. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  30. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  31. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()

Inherited from Error

Inherited from Clustering

Inherited from AnyRef

Inherited from Any