class MarkovClusterer extends Clusterer with Error
The MarkovClusterer
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 MarkovClustererTest
object at the bottom of the file for examples.
- Alphabetic
- By Inheritance
- MarkovClusterer
- Error
- Clusterer
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
MarkovClusterer(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
-
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
calcCentroids(x: MatriD, to_c: Array[Int], sz: VectoI, cent: MatriD): Unit
Calculate the centroids based on current assignment of points to clusters and update the 'cent' matrix that stores the centroids in its rows.
Calculate the centroids based on current assignment of points to clusters and update the 'cent' matrix that stores the centroids in its rows.
- x
the data matrix holding the points {x_i = x(i)} in its rows
- to_c
the cluster assignment array
- sz
the sizes of the clusters (number of points)
- cent
the matrix holding the centroids in its rows
- Definition Classes
- Clusterer
-
def
centroids: MatriD
Return the centroids.
Return the centroids. Should only be called after 'train'.
- Definition Classes
- MarkovClusterer → Clusterer
-
def
checkOpt(x: MatriD, to_c: Array[Int], opt: Double): Boolean
Check to see if the sum of squared errors is optimum.
Check to see if the sum of squared errors is optimum.
- x
the data matrix holding the points
- to_c
the cluster assignments
- opt
the known (from human/oracle) optimum
- Definition Classes
- Clusterer
-
def
classify(y: VectoD): Int
This clustering method is not applicable to graph clustering.
This clustering method is not applicable to graph clustering.
- y
unused parameter
- Definition Classes
- MarkovClusterer → Clusterer
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
def
cluster: Array[Int]
Return the cluster assignment vector.
Return the cluster assignment vector. Should only be called after
train
.- Definition Classes
- MarkovClusterer → Clusterer
-
def
csize: VectoI
Return the sizes of the centroids.
Return the sizes of the centroids. Should only be called after 'train'.
- Definition Classes
- MarkovClusterer → Clusterer
-
def
distance(u: VectoD, cn: MatriD, kc_: Int = -1): VectoD
Compute the distances between vector/point 'u' and the points stored as rows in matrix 'cn'
Compute the distances between vector/point 'u' and the points stored as rows in matrix 'cn'
- u
the given vector/point (u = x_i)
- cn
the matrix holding several centroids
- kc_
the number of centroids so far
- Definition Classes
- Clusterer
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
flaw(method: String, message: String): Unit
- Definition Classes
- Error
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
initCentroids(): Boolean
- Definition Classes
- Clusterer
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
name(c: Int): String
Return the name of the 'c'-th cluster.
-
def
name_(nm: Strings): 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., convert the adjacency matrix of a graph into a Markov transition matrix.
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
processMatrix(): MatriD
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.
-
def
setStream(s: Int): Unit
Set the random stream to 's'.
Set the random stream to 's'. Method must be called in implemeting classes before creating any random generators.
- s
the new value for the random number stream
- Definition Classes
- Clusterer
-
def
sse(x: MatriD, c: Int, to_c: Array[Int]): Double
Compute the sum of squared errors from the points in cluster 'c' to the cluster's centroid.
Compute the sum of squared errors from the points in cluster 'c' to the cluster's centroid.
- x
the data matrix holding the points
- c
the current cluster
- to_c
the cluster assignments
- Definition Classes
- Clusterer
-
def
sse(x: MatriD, to_c: Array[Int]): Double
Compute the sum of squared errors within all clusters, where error is indicated by e.g., the distance from a point to its centroid.
Compute the sum of squared errors within all clusters, where error is indicated by e.g., the distance from a point to its centroid.
- x
the data matrix holding the points
- to_c
the cluster assignments
- Definition Classes
- Clusterer
-
def
sst(x: MatriD): Double
Compute the sum of squares total for all the points from the mean.
Compute the sum of squares total for all the points from the mean.
- x
the data matrix holding the points
- Definition Classes
- Clusterer
-
val
stream: Int
- Attributes
- protected
- Definition Classes
- Clusterer
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
train(): MarkovClusterer
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
- MarkovClusterer → Clusterer
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated