STK++ 0.9.13
Dimension Reduction.

The project Reduct propose a set of classes for computing dimension Reduction (or feature extraction) of a data set. More...

Namespaces

namespace  STK::Reduct
 This namespace encloses all variables and constant specific to the Reduct project.
 

Classes

class  STK::ILinearReduct< Array, Weights >
 A ILinearReduct is an interface base class for reduction method using linear reduction. More...
 
class  STK::IReducer< Array, Weights >
 Interface base class for reducing methods. More...
 
class  STK::LocalVariance< Array >
 A LocalVariance is an implementation of the abstract ILinearReduct class. More...
 
class  STK::ProjectedVariance< Array >
 A ProjectedVariance is an implementation of the abstract ILinearReduct interface. More...
 

Enumerations

enum  STK::Reduct::TypeReduction { STK::Reduct::unknown_reduction_ =0 , STK::Reduct::localVariance_ , STK::Reduct::totalVariance_ , STK::Reduct::mds_ }
 dimension reduction we can apply to the original data set. More...
 

Functions

TypeReduction STK::Reduct::stringToTypeReduction (String const &type)
 convert a String to a TypeReduction.
 
String STK::Reduct::typeReductionToString (TypeReduction const &type)
 convert a TypeReduction to a String.
 

Detailed Description

The project Reduct propose a set of classes for computing dimension Reduction (or feature extraction) of a data set.

Feature extraction transforms the data in the high-dimensional space to a space of fewer dimensions. The data transformation may be linear, as in principal component analysis (PCA), but many nonlinear dimensionality reduction techniques also exist.

The main linear technique for dimensionality reduction, principal component analysis, performs a linear mapping of the data to a lower dimensional space in such a way that the variance of the data in the low-dimensional representation is maximized.

If the data is non-linear it is possible to unfold the underlying support of the data set using the local variance which try to preserve the neighborhood variations of the original data set.

An alternative approach to neighborhood preservation is through the minimization of a cost function that measures differences between distances in the input and output spaces. Important examples of such techniques include classical multidimensional scaling (which is identical to PCA in somme cases), Isomap (which uses geodesic distances in the data space), diffusion maps (which uses diffusion distances in the data space), t-SNE (which minimizes the divergence between distributions over pairs of points), and curvilinear component analysis.

Enumeration Type Documentation

◆ TypeReduction

dimension reduction we can apply to the original data set.

Enumerator
unknown_reduction_ 

unknown reduction

localVariance_ 

total projected variance (pca)

totalVariance_ 

multidimensional scaling

mds_ 

Definition at line 52 of file STK_Reduct_Util.h.

53{
61 , mds_
62};
@ totalVariance_
multidimensional scaling
@ localVariance_
total projected variance (pca)
@ unknown_reduction_
unknown reduction

Function Documentation

◆ stringToTypeReduction()

TypeReduction STK::Reduct::stringToTypeReduction ( String const type)
inline

convert a String to a TypeReduction.

Parameters
typethe String we want to convert
Returns
the TypeReduction represented by the String type. if the string does not match any known name, the unknown_ type is returned.

Definition at line 113 of file STK_Reduct_Util.h.

114{
115 if (toUpperString(type) == toUpperString(_T("totalVariance"))) return totalVariance_;
116 if (toUpperString(type) == toUpperString(_T("localVariance"))) return localVariance_;
117 if (toUpperString(type) == toUpperString(_T("mds"))) return mds_;
118 return unknown_reduction_;
119}
#define _T(x)
Let x unmodified.
String const & toUpperString(String &s)
convert the characters of the String to upper case
Definition STK_String.h:134

References _T, STK::Reduct::localVariance_, STK::Reduct::mds_, STK::Reduct::totalVariance_, STK::toUpperString(), and STK::Reduct::unknown_reduction_.

◆ typeReductionToString()

String STK::Reduct::typeReductionToString ( TypeReduction const type)
inline

convert a TypeReduction to a String.

Parameters
typethe type of reduction we want to convert
Returns
the string associated to this type.

Definition at line 125 of file STK_Reduct_Util.h.

126{
127 if (type == totalVariance_) return String(_T("totalVariance"));
128 if (type == localVariance_) return String(_T("localVariance"));
129 if (type == mds_) return String(_T("mds"));
130 return String(_T("unknown"));
131}
std::basic_string< Char > String
STK fundamental type of a String.

References _T, STK::Reduct::localVariance_, STK::Reduct::mds_, and STK::Reduct::totalVariance_.