gov.sandia.cognition.learning.algorithm.pca.PrincipalComponentsAnalysis Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cognitive-foundry Show documentation
Show all versions of cognitive-foundry Show documentation
A single jar with all the Cognitive Foundry components.
/*
* File: PrincipalComponentsAnalysis.java
* Authors: Kevin R. Dixon
* Company: Sandia National Laboratories
* Project: Cognitive Foundry
*
* Copyright October 9, 2007, Sandia Corporation. Under the terms of Contract
* DE-AC04-94AL85000, there is a non-exclusive license for use of this work by
* or on behalf of the U.S. Government. Export of this program may require a
* license from the United States Government. See CopyrightHistory.txt for
* complete details.
*
*/
package gov.sandia.cognition.learning.algorithm.pca;
import gov.sandia.cognition.annotation.CodeReview;
import gov.sandia.cognition.annotation.PublicationReference;
import gov.sandia.cognition.annotation.PublicationType;
import gov.sandia.cognition.learning.algorithm.BatchLearner;
import gov.sandia.cognition.math.matrix.Vector;
import gov.sandia.cognition.util.CloneableSerializable;
import java.util.Collection;
/**
* Principal Components Analysis is a family of algorithms that map from a
* high-dimensional input space to a low-dimensional output space. This
* mapping attempts to capture the orthogonal components of maximum variance
* of the input space.
*
* @author Kevin R. Dixon
* @since 2.0
*
*/
@CodeReview(
reviewer="Kevin R. Dixon",
date="2008-07-23",
changesNeeded=false,
comments={
"Added PublicationReference to Wikipedia's article on PCA.",
"Minor change to javadoc.",
"Looks fine."
}
)
@PublicationReference(
author="Wikipedia",
title="Principal components analysis",
type=PublicationType.WebPage,
year=2008,
url="http://en.wikipedia.org/wiki/Principal_components_analysis",
notes="The Wikipedia page on PCA is a too opinionated, but the gist is there."
)
public interface PrincipalComponentsAnalysis
extends BatchLearner, PrincipalComponentsAnalysisFunction>,
CloneableSerializable
{
/**
* Gets the number of components used in the PCA dimension reduction.
* @return
* Number of components used in the PCA dimension reduction
*/
public int getNumComponents();
/**
* Gets the VectorFunction that maps from the input space to the reduced
* output space of "getNumComponents" dimensions.
* @return
* PCA function that reduces the dimensionality of the input space to
* a (hopefully) simpler and smaller output space
*/
public PrincipalComponentsAnalysisFunction getResult();
}