Evaluate, trim, and reweigh algorithms
Evaluates algorithms on internal/external validation indices. Poor performing algorithms can be trimmed from the ensemble. The remaining algorithms can be given weights before use in consensus functions.
consensus_evaluate( data, ..., cons.cl = NULL, ref.cl = NULL, k.method = NULL, plot = FALSE, trim = FALSE, reweigh = FALSE, n = 5 )
data |
data matrix with rows as samples and columns as variables |
... |
any number of objects outputted from |
cons.cl |
matrix of cluster assignments from consensus functions such as
|
ref.cl |
reference class |
k.method |
determines the method to choose k when no reference class is
given. When |
plot |
logical; if |
trim |
logical; if |
reweigh |
logical; if |
n |
an integer specifying the top |
This function always returns internal indices. If ref.cl
is not NULL
,
external indices are additionally shown. Relevant graphical displays are also
outputted. Algorithms are ranked across internal indices using Rank
Aggregation. Only the top n
algorithms are kept, the rest are trimmed.
consensus_evaluate
returns a list with the following elements
k
: if ref.cl
is not NULL
, this is the number of distinct classes
in the reference; otherwise the chosen k
is determined by the one giving
the largest mean PAC across algorithms
pac
: a data frame showing the PAC for each combination of algorithm
and cluster size
ii
: a list of data frames for all k showing internal evaluation
indices
ei
: a data frame showing external evaluation indices for k
trim.obj
: A list with 4 elements
alg.keep
: algorithms kept
alg.remove
: algorithms removed
rank.matrix
: a matrix of ranked algorithms for every internal
evaluation index
top.list
: final order of ranked algorithms
E.new
: A new version of a consensus_cluster
data object
# Consensus clustering for multiple algorithms set.seed(911) x <- matrix(rnorm(500), ncol = 10) CC <- consensus_cluster(x, nk = 3:4, reps = 10, algorithms = c("ap", "km"), progress = FALSE) # Evaluate algorithms on internal/external indices and trim algorithms: # remove those ranking low on internal indices set.seed(1) ref.cl <- sample(1:4, 50, replace = TRUE) z <- consensus_evaluate(x, CC, ref.cl = ref.cl, n = 1, trim = TRUE) str(z, max.level = 2)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.