@CodeReview(reviewer="Kevin R. Dixon", date="2008-07-23", changesNeeded=false, comments={"Minor changes to javadoc.","Looks fine."}) public class ThinSingularValueDecomposition extends AbstractPrincipalComponentsAnalysis
EigenvectorPowerIteration
algorithm to find successive
components. This method is extremely fast to converge, produces accurate
estimates of eigenvectors, and is computationally and memory efficient.
In my experience, this approach has been uniformly superior to the
GeneralizedHebbianAlgorithm
approach to computing singular vectors
(in terms of accuracy, memory, and computation time).EigenvectorPowerIteration
,
Serialized FormConstructor and Description |
---|
ThinSingularValueDecomposition(int numComponents)
Creates a new instance of ThinSingularValueDecomposition
|
ThinSingularValueDecomposition(int numComponents,
PrincipalComponentsAnalysisFunction learned)
Creates a new instance of ThingSingularValueDecomposition
|
Modifier and Type | Method and Description |
---|---|
PrincipalComponentsAnalysisFunction |
learn(java.util.Collection<Vector> data)
Creates a PrincipalComponentsAnalysisFunction based on the number of
components and the given data.
|
static PrincipalComponentsAnalysisFunction |
learn(java.util.Collection<Vector> data,
int numComponents)
Creates a PrincipalComponentsAnalysisFunction based on the number of
components and the given data.
|
clone, getNumComponents, getResult, setNumComponents, setResult
public ThinSingularValueDecomposition(int numComponents)
numComponents
- Number of components to extract from the data, must be greater than zeropublic ThinSingularValueDecomposition(int numComponents, PrincipalComponentsAnalysisFunction learned)
numComponents
- Number of components to extract from the data, must be greater than zerolearned
- Vector function that maps the input space onto a numComponents-dimension
Vector representing the directions of maximal variance (information
gain). The i-th row in the matrix approximates the i-th column of the
"U" matrix of the Singular Value Decomposition.public PrincipalComponentsAnalysisFunction learn(java.util.Collection<Vector> data)
data
- Dataset of which compute the PCA, with each Vector of equal dimensionpublic static PrincipalComponentsAnalysisFunction learn(java.util.Collection<Vector> data, int numComponents)
data
- Dataset of which compute the PCA, with each Vector of equal dimensionnumComponents
- Number of components to extract from the data, must be greater than zero