summaryrefslogtreecommitdiff
path: root/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial
diff options
context:
space:
mode:
Diffstat (limited to 'elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial')
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByLabelClustering.java41
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByLabelHierarchicalClustering.java3
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByLabelOrAllInOneClustering.java1
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByModelClustering.java16
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/TrivialAllInOne.java5
-rw-r--r--elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/TrivialAllNoise.java5
6 files changed, 47 insertions, 24 deletions
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByLabelClustering.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByLabelClustering.java
index 29006f01..d2ba1b38 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByLabelClustering.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByLabelClustering.java
@@ -47,6 +47,7 @@ import de.lmu.ifi.dbs.elki.database.ids.HashSetModifiableDBIDs;
import de.lmu.ifi.dbs.elki.database.ids.ModifiableDBIDs;
import de.lmu.ifi.dbs.elki.database.relation.Relation;
import de.lmu.ifi.dbs.elki.logging.Logging;
+import de.lmu.ifi.dbs.elki.utilities.Alias;
import de.lmu.ifi.dbs.elki.utilities.documentation.Description;
import de.lmu.ifi.dbs.elki.utilities.documentation.Title;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer;
@@ -65,16 +66,18 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.PatternParameter;
*
* If an assignment of an object to multiple clusters is desired, the labels of
* the object indicating the clusters need to be separated by blanks and the
- * flag {@link #MULTIPLE_ID} needs to be set.
+ * flag {@link Parameterizer#MULTIPLE_ID} needs to be set.
*
* TODO: handling of data sets with no labels?
*
* @author Erich Schubert
+ * @since 0.2
*
* @apiviz.uses de.lmu.ifi.dbs.elki.data.ClassLabel
*/
@Title("Clustering by label")
@Description("Cluster points by a (pre-assigned!) label. For comparing results with a reference clustering.")
+@Alias("de.lmu.ifi.dbs.elki.algorithm.clustering.ByLabelClustering")
public class ByLabelClustering extends AbstractAlgorithm<Clustering<Model>> implements ClusteringAlgorithm<Clustering<Model>> {
/**
* The logger for this class.
@@ -82,24 +85,12 @@ public class ByLabelClustering extends AbstractAlgorithm<Clustering<Model>> impl
private static final Logging LOG = Logging.getLogger(ByLabelClustering.class);
/**
- * Flag to indicate that multiple cluster assignment is possible. If an
- * assignment to multiple clusters is desired, the labels indicating the
- * clusters need to be separated by blanks.
- */
- public static final OptionID MULTIPLE_ID = new OptionID("bylabelclustering.multiple", "Flag to indicate that only subspaces with large coverage " + "(i.e. the fraction of the database that is covered by the dense units) " + "are selected, the rest will be pruned.");
-
- /**
- * Pattern to recognize noise clusters by.
- */
- public static final OptionID NOISE_ID = new OptionID("bylabelclustering.noise", "Pattern to recognize noise classes by their label.");
-
- /**
- * Holds the value of {@link #MULTIPLE_ID}.
+ * Allow multiple cluster assignment.
*/
private boolean multiple;
/**
- * Holds the value of {@link #NOISE_ID}.
+ * Pattern to recognize noise clusters by.
*/
private Pattern noisepattern = null;
@@ -248,8 +239,26 @@ public class ByLabelClustering extends AbstractAlgorithm<Clustering<Model>> impl
* @apiviz.exclude
*/
public static class Parameterizer extends AbstractParameterizer {
+ /**
+ * Flag to indicate that multiple cluster assignment is possible. If an
+ * assignment to multiple clusters is desired, the labels indicating the
+ * clusters need to be separated by blanks.
+ */
+ public static final OptionID MULTIPLE_ID = new OptionID("bylabelclustering.multiple", "Flag to indicate that only subspaces with large coverage " + "(i.e. the fraction of the database that is covered by the dense units) " + "are selected, the rest will be pruned.");
+
+ /**
+ * Parameter to specify the pattern to recognize noise clusters by.
+ */
+ public static final OptionID NOISE_ID = new OptionID("bylabelclustering.noise", "Pattern to recognize noise classes by their label.");
+
+ /**
+ * Allow multiple cluster assignment.
+ */
protected boolean multiple;
+ /**
+ * Pattern to recognize noise clusters by.
+ */
protected Pattern noisepat;
@Override
@@ -272,4 +281,4 @@ public class ByLabelClustering extends AbstractAlgorithm<Clustering<Model>> impl
return new ByLabelClustering(multiple, noisepat);
}
}
-} \ No newline at end of file
+}
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByLabelHierarchicalClustering.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByLabelHierarchicalClustering.java
index e246c4e6..d48efe68 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByLabelHierarchicalClustering.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByLabelHierarchicalClustering.java
@@ -47,6 +47,7 @@ import de.lmu.ifi.dbs.elki.database.ids.HashSetModifiableDBIDs;
import de.lmu.ifi.dbs.elki.database.ids.ModifiableDBIDs;
import de.lmu.ifi.dbs.elki.database.relation.Relation;
import de.lmu.ifi.dbs.elki.logging.Logging;
+import de.lmu.ifi.dbs.elki.utilities.Alias;
import de.lmu.ifi.dbs.elki.utilities.documentation.Description;
import de.lmu.ifi.dbs.elki.utilities.documentation.Title;
@@ -64,11 +65,13 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Title;
* TODO: Noise handling (e.g. allow the user to specify a noise label pattern?)
*
* @author Erich Schubert
+ * @since 0.2
*
* @apiviz.uses de.lmu.ifi.dbs.elki.data.ClassLabel
*/
@Title("Hierarchical clustering by label")
@Description("Cluster points by a (pre-assigned!) label. For comparing results with a reference clustering.")
+@Alias("de.lmu.ifi.dbs.elki.algorithm.clustering.ByLabelHierarchicalClustering")
public class ByLabelHierarchicalClustering extends AbstractAlgorithm<Clustering<Model>> implements ClusteringAlgorithm<Clustering<Model>> {
/**
* The logger for this class.
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByLabelOrAllInOneClustering.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByLabelOrAllInOneClustering.java
index 12af74ba..7de4c4f0 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByLabelOrAllInOneClustering.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByLabelOrAllInOneClustering.java
@@ -39,6 +39,7 @@ import de.lmu.ifi.dbs.elki.database.relation.Relation;
* "all-in-one" clustering.
*
* @author Erich Schubert
+ * @since 0.2
*/
public class ByLabelOrAllInOneClustering extends ByLabelClustering {
/**
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByModelClustering.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByModelClustering.java
index 9832ea4a..0583ceb5 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByModelClustering.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/ByModelClustering.java
@@ -56,6 +56,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.PatternParameter;
* reference result / golden standard used by the generator).
*
* @author Erich Schubert
+ * @since 0.5.0
*
* @apiviz.uses Model
*/
@@ -68,12 +69,7 @@ public class ByModelClustering extends AbstractAlgorithm<Clustering<Model>> impl
private static final Logging LOG = Logging.getLogger(ByModelClustering.class);
/**
- * Pattern to recognize noise clusters with
- */
- public static final OptionID NOISE_ID = new OptionID("bymodel.noise", "Pattern to recognize noise models by their label.");
-
- /**
- * Holds the value of {@link #NOISE_ID}.
+ * Pattern to recognize noise clusters with.
*/
private Pattern noisepattern = null;
@@ -144,6 +140,14 @@ public class ByModelClustering extends AbstractAlgorithm<Clustering<Model>> impl
* @apiviz.exclude
*/
public static class Parameterizer extends AbstractParameterizer {
+ /**
+ * Parameter to specify the pattern to recognize noise clusters with.
+ */
+ public static final OptionID NOISE_ID = new OptionID("bymodel.noise", "Pattern to recognize noise models by their label.");
+
+ /**
+ * Pattern to recognize noise clusters with
+ */
protected Pattern noisepat;
@Override
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/TrivialAllInOne.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/TrivialAllInOne.java
index 64c103c3..188db3e9 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/TrivialAllInOne.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/TrivialAllInOne.java
@@ -34,6 +34,7 @@ import de.lmu.ifi.dbs.elki.data.type.TypeUtil;
import de.lmu.ifi.dbs.elki.database.ids.DBIDs;
import de.lmu.ifi.dbs.elki.database.relation.Relation;
import de.lmu.ifi.dbs.elki.logging.Logging;
+import de.lmu.ifi.dbs.elki.utilities.Alias;
import de.lmu.ifi.dbs.elki.utilities.documentation.Description;
import de.lmu.ifi.dbs.elki.utilities.documentation.Title;
@@ -44,9 +45,11 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Title;
* Useful for evaluation and testing.
*
* @author Erich Schubert
+ * @since 0.2
*/
@Title("Trivial all-in-one clustering")
@Description("Returns a 'tivial' clustering which just considers all points to be one big cluster.")
+@Alias("de.lmu.ifi.dbs.elki.algorithm.clustering.TrivialAllInOne")
public class TrivialAllInOne extends AbstractAlgorithm<Clustering<Model>> implements ClusteringAlgorithm<Clustering<Model>> {
/**
* The logger for this class.
@@ -77,4 +80,4 @@ public class TrivialAllInOne extends AbstractAlgorithm<Clustering<Model>> implem
protected Logging getLogger() {
return LOG;
}
-} \ No newline at end of file
+}
diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/TrivialAllNoise.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/TrivialAllNoise.java
index db4cb8dd..4db4dfed 100644
--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/TrivialAllNoise.java
+++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/algorithm/clustering/trivial/TrivialAllNoise.java
@@ -34,6 +34,7 @@ import de.lmu.ifi.dbs.elki.data.type.TypeUtil;
import de.lmu.ifi.dbs.elki.database.ids.DBIDs;
import de.lmu.ifi.dbs.elki.database.relation.Relation;
import de.lmu.ifi.dbs.elki.logging.Logging;
+import de.lmu.ifi.dbs.elki.utilities.Alias;
import de.lmu.ifi.dbs.elki.utilities.documentation.Description;
import de.lmu.ifi.dbs.elki.utilities.documentation.Title;
@@ -43,9 +44,11 @@ import de.lmu.ifi.dbs.elki.utilities.documentation.Title;
* Useful for evaluation and testing.
*
* @author Erich Schubert
+ * @since 0.2
*/
@Title("Trivial all-noise clustering")
@Description("Returns a 'trivial' clustering which just considers all points as noise points.")
+@Alias("de.lmu.ifi.dbs.elki.algorithm.clustering.TrivialAllNoise")
public class TrivialAllNoise extends AbstractAlgorithm<Clustering<Model>> implements ClusteringAlgorithm<Clustering<Model>> {
/**
* The logger for this class.
@@ -76,4 +79,4 @@ public class TrivialAllNoise extends AbstractAlgorithm<Clustering<Model>> implem
protected Logging getLogger() {
return LOG;
}
-} \ No newline at end of file
+}