Package elki.datasource.filter.transform
Class ClassicMultidimensionalScalingTransform<I,O extends elki.data.NumberVector>
- java.lang.Object
-
- elki.datasource.filter.transform.ClassicMultidimensionalScalingTransform<I,O>
-
- Type Parameters:
I- Input data typeO- Output vector type
- All Implemented Interfaces:
elki.datasource.filter.ObjectFilter
@Alias("mds") public class ClassicMultidimensionalScalingTransform<I,O extends elki.data.NumberVector> extends java.lang.Object implements elki.datasource.filter.ObjectFilterRescale the data set using multidimensional scaling, MDS. Note: the current implementation is rather expensive, both memory- and runtime wise. Don't use for large data sets! Instead, have a look atFastMultidimensionalScalingTransformwhich uses power iterations instead.- Since:
- 0.6.0
- Author:
- Erich Schubert
-
-
Field Summary
Fields Modifier and Type Field Description (package private) elki.distance.PrimitiveDistance<? super I>distDistance function to use.(package private) elki.data.NumberVector.Factory<O>factoryVector factory.private static elki.logging.LoggingLOGClass logger.(package private) inttdimTarget dimensionality
-
Constructor Summary
Constructors Constructor Description ClassicMultidimensionalScalingTransform(int tdim, elki.distance.PrimitiveDistance<? super I> dist, elki.data.NumberVector.Factory<O> factory)Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static <I> double[][]computeSquaredDistanceMatrix(java.util.List<I> col, elki.distance.PrimitiveDistance<? super I> dist)Compute the squared distance matrix.static voiddoubleCenterSymmetric(double[][] m)Double-center the given matrix (only upper triangle is used).elki.datasource.bundle.MultipleObjectsBundlefilter(elki.datasource.bundle.MultipleObjectsBundle objects)
-
-
-
Constructor Detail
-
ClassicMultidimensionalScalingTransform
public ClassicMultidimensionalScalingTransform(int tdim, elki.distance.PrimitiveDistance<? super I> dist, elki.data.NumberVector.Factory<O> factory)Constructor.- Parameters:
tdim- Target dimensionality.dist- Distance function to use.factory- Vector factory.
-
-
Method Detail
-
filter
public elki.datasource.bundle.MultipleObjectsBundle filter(elki.datasource.bundle.MultipleObjectsBundle objects)
- Specified by:
filterin interfaceelki.datasource.filter.ObjectFilter
-
computeSquaredDistanceMatrix
protected static <I> double[][] computeSquaredDistanceMatrix(java.util.List<I> col, elki.distance.PrimitiveDistance<? super I> dist)Compute the squared distance matrix.- Parameters:
col- Input datadist- Distance function- Returns:
- Distance matrix.
-
doubleCenterSymmetric
public static void doubleCenterSymmetric(double[][] m)
Double-center the given matrix (only upper triangle is used). For improved numerical precision, we perform incremental updates to the mean values, instead of computing a large sum and then performing division.- Parameters:
m- Matrix to double-center.
-
-