summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/math/linearalgebra/pca/PCARunner.java
diff options
context:
space:
mode:
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.java36
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