@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 Form| Constructor 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, setResultpublic 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