summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/visualization/visualizers/scatterplot/cluster/EMClusterVisualization.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/visualization/visualizers/scatterplot/cluster/EMClusterVisualization.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/visualizers/scatterplot/cluster/EMClusterVisualization.java33
1 files changed, 14 insertions, 19 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/visualizers/scatterplot/cluster/EMClusterVisualization.java b/src/de/lmu/ifi/dbs/elki/visualization/visualizers/scatterplot/cluster/EMClusterVisualization.java
index 9a5df4e4..98dc004f 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/visualizers/scatterplot/cluster/EMClusterVisualization.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/visualizers/scatterplot/cluster/EMClusterVisualization.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.visualizers.scatterplot.cluster;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2013
+ Copyright (C) 2014
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -32,8 +32,6 @@ import org.w3c.dom.Element;
import de.lmu.ifi.dbs.elki.data.Cluster;
import de.lmu.ifi.dbs.elki.data.Clustering;
-import de.lmu.ifi.dbs.elki.data.DoubleVector;
-import de.lmu.ifi.dbs.elki.data.NumberVector;
import de.lmu.ifi.dbs.elki.data.model.EMModel;
import de.lmu.ifi.dbs.elki.data.model.MeanModel;
import de.lmu.ifi.dbs.elki.data.model.Model;
@@ -71,7 +69,7 @@ import de.lmu.ifi.dbs.elki.visualization.visualizers.scatterplot.AbstractScatter
* @author Robert Rödler
*
* @apiviz.stereotype factory
- * @apiviz.uses EMClusterVisualization oneway - - «create»
+ * @apiviz.uses Instance oneway - - «create»
*/
public class EMClusterVisualization extends AbstractVisFactory {
/**
@@ -92,8 +90,8 @@ public class EMClusterVisualization extends AbstractVisFactory {
}
@Override
- public Instance<DoubleVector> makeVisualization(VisualizationTask task) {
- return new Instance<>(task);
+ public Instance makeVisualization(VisualizationTask task) {
+ return new Instance(task);
}
@Override
@@ -103,7 +101,7 @@ public class EMClusterVisualization extends AbstractVisFactory {
for(Clustering<?> c : clusterings) {
if(c.getAllClusters().size() > 0) {
// Does the cluster have a model with cluster means?
- Clustering<MeanModel<DoubleVector>> mcls = findMeanModel(c);
+ Clustering<MeanModel> mcls = findMeanModel(c);
if(mcls != null) {
Collection<ScatterPlotProjector<?>> ps = ResultUtil.filterResults(baseResult, ScatterPlotProjector.class);
for(ScatterPlotProjector<?> p : ps) {
@@ -120,15 +118,14 @@ public class EMClusterVisualization extends AbstractVisFactory {
/**
* Test if the given clustering has a mean model.
*
- * @param <NV> Vector type
* @param c Clustering to inspect
* @return the clustering cast to return a mean model, null otherwise.
*/
@SuppressWarnings("unchecked")
- private static <NV extends NumberVector<?>> Clustering<MeanModel<NV>> findMeanModel(Clustering<?> c) {
+ private static Clustering<MeanModel> findMeanModel(Clustering<?> c) {
final Model firstModel = c.getAllClusters().get(0).getModel();
- if(c.getAllClusters().get(0).getModel() instanceof MeanModel<?> && firstModel instanceof EMModel<?>) {
- return (Clustering<MeanModel<NV>>) c;
+ if(c.getAllClusters().get(0).getModel() instanceof MeanModel && firstModel instanceof EMModel) {
+ return (Clustering<MeanModel>) c;
}
return null;
}
@@ -140,12 +137,10 @@ public class EMClusterVisualization extends AbstractVisFactory {
*
* @apiviz.has EMModel oneway - - visualizes
* @apiviz.uses GrahamScanConvexHull2D
- *
- * @param <NV> Type of the NumberVector being visualized.
*/
// TODO: nicer stacking of n-fold hulls
// TODO: can we find a proper sphere for 3+ dimensions?
- public class Instance<NV extends NumberVector<?>> extends AbstractScatterplotVisualization {
+ public class Instance extends AbstractScatterplotVisualization {
/**
* Generic tags to indicate the type of element. Used in IDs, CSS-Classes
* etc.
@@ -155,7 +150,7 @@ public class EMClusterVisualization extends AbstractVisFactory {
/**
* The result we work on
*/
- Clustering<EMModel<NV>> clustering;
+ Clustering<EMModel> clustering;
private static final double KAPPA = SVGHyperSphere.EUCLIDEAN_KAPPA;
@@ -187,16 +182,16 @@ public class EMClusterVisualization extends AbstractVisFactory {
addCSSClasses(svgp);
// PCARunner
- PCARunner<NV> pcarun = ClassGenericsUtil.parameterizeOrAbort(PCARunner.class, new EmptyParameterization());
+ PCARunner pcarun = ClassGenericsUtil.parameterizeOrAbort(PCARunner.class, new EmptyParameterization());
- Iterator<Cluster<EMModel<NV>>> ci = clustering.getAllClusters().iterator();
+ Iterator<Cluster<EMModel>> ci = clustering.getAllClusters().iterator();
for(int cnum = 0; cnum < clustering.getAllClusters().size(); cnum++) {
- Cluster<EMModel<NV>> clus = ci.next();
+ Cluster<EMModel> clus = ci.next();
DBIDs ids = clus.getIDs();
if(ids.size() > 0) {
Matrix covmat = clus.getModel().getCovarianceMatrix();
- NV centroid = clus.getModel().getMean();
+ Vector centroid = clus.getModel().getMean();
Vector cent = new Vector(proj.fastProjectDataToRenderSpace(centroid));
// Compute the eigenvectors