diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/math/linearalgebra/pca/PCARunner.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/math/linearalgebra/pca/PCARunner.java | 36 |
1 files changed, 15 insertions, 21 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/math/linearalgebra/pca/PCARunner.java b/src/de/lmu/ifi/dbs/elki/math/linearalgebra/pca/PCARunner.java index 91447024..2bfbaa8d 100644 --- a/src/de/lmu/ifi/dbs/elki/math/linearalgebra/pca/PCARunner.java +++ b/src/de/lmu/ifi/dbs/elki/math/linearalgebra/pca/PCARunner.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.math.linearalgebra.pca; 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 @@ -23,18 +23,15 @@ package de.lmu.ifi.dbs.elki.math.linearalgebra.pca; along with this program. If not, see <http://www.gnu.org/licenses/>. */ - import de.lmu.ifi.dbs.elki.data.NumberVector; import de.lmu.ifi.dbs.elki.database.ids.DBIDs; -import de.lmu.ifi.dbs.elki.database.ids.distance.DistanceDBIDList; +import de.lmu.ifi.dbs.elki.database.ids.DoubleDBIDList; import de.lmu.ifi.dbs.elki.database.relation.Relation; -import de.lmu.ifi.dbs.elki.distance.distancevalue.NumberDistance; import de.lmu.ifi.dbs.elki.math.linearalgebra.EigenvalueDecomposition; import de.lmu.ifi.dbs.elki.math.linearalgebra.Matrix; import de.lmu.ifi.dbs.elki.math.linearalgebra.SortedEigenPairs; import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer; import de.lmu.ifi.dbs.elki.utilities.optionhandling.OptionID; -import de.lmu.ifi.dbs.elki.utilities.optionhandling.Parameterizable; import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.Parameterization; import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; @@ -53,10 +50,8 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameters.ObjectParameter; * @apiviz.landmark * @apiviz.uses PCAResult oneway - - «create» * @apiviz.composedOf CovarianceMatrixBuilder - * - * @param <V> Vector type */ -public class PCARunner<V extends NumberVector<?>> implements Parameterizable { +public class PCARunner { /** * Parameter to specify the class to compute the covariance matrix, must be a * subclass of {@link CovarianceMatrixBuilder}. @@ -72,14 +67,14 @@ public class PCARunner<V extends NumberVector<?>> implements Parameterizable { /** * The covariance computation class. */ - protected CovarianceMatrixBuilder<V> covarianceMatrixBuilder; + protected CovarianceMatrixBuilder covarianceMatrixBuilder; /** * Constructor. * * @param covarianceMatrixBuilder Class for computing the covariance matrix */ - public PCARunner(CovarianceMatrixBuilder<V> covarianceMatrixBuilder) { + public PCARunner(CovarianceMatrixBuilder covarianceMatrixBuilder) { super(); this.covarianceMatrixBuilder = covarianceMatrixBuilder; } @@ -90,7 +85,7 @@ public class PCARunner<V extends NumberVector<?>> implements Parameterizable { * @param database the database used * @return PCA result */ - public PCAResult processDatabase(Relation<? extends V> database) { + public PCAResult processDatabase(Relation<? extends NumberVector> database) { return processCovarMatrix(covarianceMatrixBuilder.processDatabase(database)); } @@ -101,7 +96,7 @@ public class PCARunner<V extends NumberVector<?>> implements Parameterizable { * @param database the database used * @return PCA result */ - public PCAResult processIds(DBIDs ids, Relation<? extends V> database) { + public PCAResult processIds(DBIDs ids, Relation<? extends NumberVector> database) { return processCovarMatrix(covarianceMatrixBuilder.processIds(ids, database)); } @@ -110,10 +105,9 @@ public class PCARunner<V extends NumberVector<?>> implements Parameterizable { * * @param results a collection of QueryResults * @param database the database used - * @param <D> distance type * @return PCA result */ - public <D extends NumberDistance<D, ?>> PCAResult processQueryResult(DistanceDBIDList<D> results, Relation<? extends V> database) { + public PCAResult processQueryResult(DoubleDBIDList results, Relation<? extends NumberVector> database) { return processCovarMatrix(covarianceMatrixBuilder.processQueryResults(results, database)); } @@ -145,7 +139,7 @@ public class PCARunner<V extends NumberVector<?>> implements Parameterizable { * * @return covariance matrix builder in use */ - public CovarianceMatrixBuilder<V> getCovarianceMatrixBuilder() { + public CovarianceMatrixBuilder getCovarianceMatrixBuilder() { return covarianceMatrixBuilder; } @@ -154,7 +148,7 @@ public class PCARunner<V extends NumberVector<?>> implements Parameterizable { * * @param covarianceBuilder New covariance matrix builder. */ - public void setCovarianceMatrixBuilder(CovarianceMatrixBuilder<V> covarianceBuilder) { + public void setCovarianceMatrixBuilder(CovarianceMatrixBuilder covarianceBuilder) { this.covarianceMatrixBuilder = covarianceBuilder; } @@ -165,24 +159,24 @@ public class PCARunner<V extends NumberVector<?>> implements Parameterizable { * * @apiviz.exclude */ - public static class Parameterizer<V extends NumberVector<?>> extends AbstractParameterizer { + public static class Parameterizer extends AbstractParameterizer { /** * The covariance computation class. */ - protected CovarianceMatrixBuilder<V> covarianceMatrixBuilder; + protected CovarianceMatrixBuilder covarianceMatrixBuilder; @Override protected void makeOptions(Parameterization config) { super.makeOptions(config); - ObjectParameter<CovarianceMatrixBuilder<V>> covarianceP = new ObjectParameter<>(PCA_COVARIANCE_MATRIX, CovarianceMatrixBuilder.class, StandardCovarianceMatrixBuilder.class); + ObjectParameter<CovarianceMatrixBuilder> covarianceP = new ObjectParameter<>(PCA_COVARIANCE_MATRIX, CovarianceMatrixBuilder.class, StandardCovarianceMatrixBuilder.class); if(config.grab(covarianceP)) { covarianceMatrixBuilder = covarianceP.instantiateClass(config); } } @Override - protected PCARunner<V> makeInstance() { - return new PCARunner<>(covarianceMatrixBuilder); + protected PCARunner makeInstance() { + return new PCARunner(covarianceMatrixBuilder); } } }
\ No newline at end of file |