View source: R/consensus_evaluate.R
consensus_evaluate | R Documentation |
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,
lower = 0,
upper = 1
)
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 |
lower |
the lower bound that determines what is ambiguous |
upper |
the upper bound that determines what is ambiguous |
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.