Package elki.datasource.filter.transform
Class ClassicMultidimensionalScalingTransform<I,O extends NumberVector>
- java.lang.Object
-
- elki.datasource.filter.transform.ClassicMultidimensionalScalingTransform<I,O>
-
- Type Parameters:
I- Input data typeO- Output vector type
- All Implemented Interfaces:
ObjectFilter
@Alias("mds") public class ClassicMultidimensionalScalingTransform<I,O extends NumberVector> extends java.lang.Object implements ObjectFilter
Rescale 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) PrimitiveDistance<? super I>distDistance function to use.(package private) NumberVector.Factory<O>factoryVector factory.private static LoggingLOGClass logger.(package private) inttdimTarget dimensionality
-
Constructor Summary
Constructors Constructor Description ClassicMultidimensionalScalingTransform(int tdim, PrimitiveDistance<? super I> dist, 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, PrimitiveDistance<? super I> dist)Compute the squared distance matrix.static voiddoubleCenterSymmetric(double[][] m)Double-center the given matrix (only upper triangle is used).MultipleObjectsBundlefilter(MultipleObjectsBundle objects)Filter a set of object packages.
-
-
-
Field Detail
-
LOG
private static final Logging LOG
Class logger.
-
dist
PrimitiveDistance<? super I> dist
Distance function to use.
-
tdim
int tdim
Target dimensionality
-
factory
NumberVector.Factory<O extends NumberVector> factory
Vector factory.
-
-
Constructor Detail
-
ClassicMultidimensionalScalingTransform
public ClassicMultidimensionalScalingTransform(int tdim, PrimitiveDistance<? super I> dist, NumberVector.Factory<O> factory)Constructor.- Parameters:
tdim- Target dimensionality.dist- Distance function to use.factory- Vector factory.
-
-
Method Detail
-
filter
public MultipleObjectsBundle filter(MultipleObjectsBundle objects)
Description copied from interface:ObjectFilterFilter a set of object packages.- Specified by:
filterin interfaceObjectFilter- Parameters:
objects- Object to filter- Returns:
- Filtered objects
-
computeSquaredDistanceMatrix
protected static <I> double[][] computeSquaredDistanceMatrix(java.util.List<I> col, 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.
-
-