@Title(value="Clustering by label") @Description(value="Cluster points by a (pre-assigned!) label. For comparing results with a reference clustering.") @Alias(value="de.lmu.ifi.dbs.elki.algorithm.clustering.ByLabelClustering") @Priority(value=-100) public class ByLabelClustering extends AbstractAlgorithm<Clustering<Model>> implements ClusteringAlgorithm<Clustering<Model>>
ByLabelClustering.Parameterizer.MULTIPLE_ID needs to be set.
TODO: handling of data sets with no labels?| Modifier and Type | Class and Description |
|---|---|
static class |
ByLabelClustering.Parameterizer
Parameterization class.
|
| Modifier and Type | Field and Description |
|---|---|
private static Logging |
LOG
The logger for this class.
|
private boolean |
multiple
Allow multiple cluster assignment.
|
private java.util.regex.Pattern |
noisepattern
Pattern to recognize noise clusters by.
|
ALGORITHM_ID| Constructor and Description |
|---|
ByLabelClustering()
Constructor without parameters
|
ByLabelClustering(boolean multiple,
java.util.regex.Pattern noisepattern)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
private void |
assign(java.util.HashMap<java.lang.String,DBIDs> labelMap,
java.lang.String label,
DBIDRef id)
Assigns the specified id to the labelMap according to its label
|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
protected Logging |
getLogger()
Get the (STATIC) logger for this class.
|
private java.util.HashMap<java.lang.String,DBIDs> |
multipleAssignment(Relation<?> data)
Assigns the objects of the database to multiple clusters according to their
labels.
|
Clustering<Model> |
run(Database database)
Runs the algorithm.
|
Clustering<Model> |
run(Relation<?> relation)
Run the actual clustering algorithm.
|
private java.util.HashMap<java.lang.String,DBIDs> |
singleAssignment(Relation<?> data)
Assigns the objects of the database to single clusters according to their
labels.
|
private static final Logging LOG
private boolean multiple
private java.util.regex.Pattern noisepattern
public ByLabelClustering(boolean multiple,
java.util.regex.Pattern noisepattern)
multiple - Allow multiple cluster assignmentsnoisepattern - Noise patternpublic ByLabelClustering()
public Clustering<Model> run(Database database)
Algorithmrun in interface Algorithmrun in interface ClusteringAlgorithm<Clustering<Model>>run in class AbstractAlgorithm<Clustering<Model>>database - the database to run the algorithm onpublic Clustering<Model> run(Relation<?> relation)
relation - The data input we useprivate java.util.HashMap<java.lang.String,DBIDs> singleAssignment(Relation<?> data)
data - the database storing the objectsprivate java.util.HashMap<java.lang.String,DBIDs> multipleAssignment(Relation<?> data)
data - the database storing the objectsprivate void assign(java.util.HashMap<java.lang.String,DBIDs> labelMap, java.lang.String label, DBIDRef id)
labelMap - the mapping of label to idslabel - the label of the object to be assignedid - the id of the object to be assignedpublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithmgetInputTypeRestriction in interface AlgorithmgetInputTypeRestriction in class AbstractAlgorithm<Clustering<Model>>protected Logging getLogger()
AbstractAlgorithmgetLogger in class AbstractAlgorithm<Clustering<Model>>Copyright © 2019 ELKI Development Team. License information.