gov.sandia.cognition.learning.algorithm
Interface BatchLearner<DataType,ResultType>

Type Parameters:
DataType - The type of the data that the algorithm uses to perform the learning. For example, a Collection<InputOutputPair<Vector, Double>> or String.
ResultType - The type of object created by the learning algorithm. For example, a FeedforwardNeuralNetwork.
All Superinterfaces:
Cloneable, CloneableSerializable, Serializable
All Known Subinterfaces:
AnytimeBatchLearner<DataType,ResultType>, BatchAndIncrementalLearner<DataType,ResultType>, BatchClusterer<DataType,ClusterType>, BatchCostMinimizationLearner<CostParametersType,ResultType>, BayesianEstimator<ObservationType,ParameterType,PosteriorType>, BayesianEstimatorPredictor<ObservationType,ParameterType,PosteriorType>, BayesianRegression<OutputType,PosteriorType>, ConjugatePriorBayesianEstimator<ObservationType,ParameterType,ConditionalType,BeliefType>, ConjugatePriorBayesianEstimatorPredictor<ObservationType,ParameterType,ConditionalType,BeliefType>, DeciderLearner<InputType,OutputType,CategoryType,DeciderType>, DistributionEstimator<ObservationType,DistributionType>, DistributionWeightedEstimator<ObservationType,DistributionType>, FunctionMinimizer<InputType,OutputType,EvaluatorType>, IncrementalEstimator<DataType,DistributionType,SufficientStatisticsType>, KernelizableBinaryCategorizerOnlineLearner, LinearizableBinaryCategorizerOnlineLearner<InputType>, LineMinimizer<EvaluatorType>, MarkovChainMonteCarlo<ObservationType,ParameterType>, ParameterCostMinimizer<ResultType>, ParticleFilter<ObservationType,ParameterType>, PrincipalComponentsAnalysis, RecursiveBayesianEstimator<ObservationType,ParameterType,BeliefType>, RootBracketer, RootFinder, SupervisedBatchAndIncrementalLearner<InputType,OutputType,ResultType>, SupervisedBatchLearner<InputType,OutputType,ResultType>, VectorThresholdMaximumGainLearner<OutputType>
All Known Implementing Classes:
AbstractAnytimeBatchLearner, AbstractAnytimeFunctionMinimizer, AbstractAnytimeLineMinimizer, AbstractAnytimeSupervisedBatchLearner, AbstractBaggingLearner, AbstractBatchAndIncrementalLearner, AbstractBaumWelchAlgorithm, AbstractBracketedRootFinder, AbstractConjugatePriorBayesianEstimator, AbstractIncrementalEstimator, AbstractKalmanFilter, AbstractKernelizableBinaryCategorizerOnlineLearner, AbstractLinearCombinationOnlineLearner, AbstractMarkovChainMonteCarlo, AbstractMinimizerBasedParameterCostMinimizer, AbstractOnlineBudgetedKernelBinaryCategorizerLearner, AbstractOnlineKernelBinaryCategorizerLearner, AbstractOnlineLinearBinaryCategorizerLearner, AbstractParameterCostMinimizer, AbstractParticleFilter, AbstractPrincipalComponentsAnalysis, AbstractRootFinder, AbstractSupervisedBatchAndIncrementalLearner, AbstractVectorThresholdMaximumGainLearner, AdaBoost, AdaptiveRegularizationOfWeights, AffinityPropagation, AgglomerativeClusterer, AggressiveRelaxedOnlineMaximumMarginAlgorithm, BaggingCategorizerLearner, BaggingRegressionLearner, Ballseptron, BatchMultiPerceptron, BaumWelchAlgorithm, BayesianLinearRegression, BayesianLinearRegression.IncrementalEstimator, BayesianRobustLinearRegression, BayesianRobustLinearRegression.IncrementalEstimator, BernoulliBayesianEstimator, BetaBinomialDistribution.MomentMatchingEstimator, BetaDistribution.MomentMatchingEstimator, BetaDistribution.WeightedMomentMatchingEstimator, BinaryBaggingLearner, BinaryCategorizerSelector, BinaryVersusCategorizer.Learner, BinomialBayesianEstimator, BinomialDistribution.MaximumLikelihoodEstimator, CategorizationTreeLearner, CategoryBalancedBaggingLearner, CategoryBalancedIVotingLearner, CompositeBatchLearnerPair, ConfidenceWeightedDiagonalDeviation, ConfidenceWeightedDiagonalDeviationProject, ConfidenceWeightedDiagonalVariance, ConfidenceWeightedDiagonalVarianceProject, ConstantLearner, DefaultDataDistribution.Estimator, DefaultDataDistribution.WeightedEstimator, DirichletProcessClustering, DirichletProcessMixtureModel, DiscreteNaiveBayesCategorizer.Learner, DistributionParameterEstimator, DivergencesEvaluator.Learner, EvaluatorToCategorizerAdapter.Learner, ExponentialBayesianEstimator, ExponentialDistribution.MaximumLikelihoodEstimator, ExponentialDistribution.WeightedMaximumLikelihoodEstimator, ExtendedKalmanFilter, FisherLinearDiscriminantBinaryCategorizer.ClosedFormSolver, FletcherXuHybridEstimation, Forgetron, Forgetron.Basic, Forgetron.Greedy, FunctionMinimizerBFGS, FunctionMinimizerConjugateGradient, FunctionMinimizerDFP, FunctionMinimizerDirectionSetPowell, FunctionMinimizerFletcherReeves, FunctionMinimizerGradientDescent, FunctionMinimizerLiuStorey, FunctionMinimizerNelderMead, FunctionMinimizerPolakRibiere, FunctionMinimizerQuasiNewton, GammaDistribution.MomentMatchingEstimator, GammaDistribution.WeightedMomentMatchingEstimator, GammaInverseScaleBayesianEstimator, GaussianContextRecognizer.Learner, GaussianProcessRegression, GaussNewtonAlgorithm, GeneralizedHebbianAlgorithm, GeneticAlgorithm, GeometricDistribution.MaximumLikelihoodEstimator, IdentityLearner, ImportanceSampling, InputOutputTransformedBatchLearner, IVotingCategorizerLearner, KalmanFilter, KernelAdatron, KernelBasedIterativeRegression, KernelBinaryCategorizerOnlineLearnerAdapter, KernelPerceptron, KernelPrincipalComponentsAnalysis, KernelWeightedRobustRegression, KMeansClusterer, KMeansClustererWithRemoval, KNearestNeighborExhaustive.Learner, KNearestNeighborKDTree.Learner, LaplaceDistribution.MaximumLikelihoodEstimator, LaplaceDistribution.WeightedMaximumLikelihoodEstimator, LatentDirichletAllocationVectorGibbsSampler, LatentSemanticAnalysis, LeastSquaresEstimator, LevenbergMarquardtEstimation, LinearBasisRegression, LinearRegression, LineMinimizerBacktracking, LineMinimizerDerivativeBased, LineMinimizerDerivativeFree, LocallyWeightedFunction.Learner, LogisticRegression, LogNormalDistribution.MaximumLikelihoodEstimator, LogNormalDistribution.WeightedMaximumLikelihoodEstimator, MaximumAPosterioriCategorizer.Learner, MaximumLikelihoodDistributionEstimator, MeanLearner, MetropolisHastingsAlgorithm, MinimizerBasedRootFinder, MixtureOfGaussians.EMLearner, MixtureOfGaussians.Learner, MostFrequentLearner, MultiCategoryAdaBoost, MultinomialBayesianEstimator, MultivariateDecorrelator.DiagonalCovarianceLearner, MultivariateDecorrelator.FullCovarianceLearner, MultivariateGaussian.IncrementalEstimator, MultivariateGaussian.IncrementalEstimatorCovarianceInverse, MultivariateGaussian.MaximumLikelihoodEstimator, MultivariateGaussian.WeightedMaximumLikelihoodEstimator, MultivariateGaussianMeanBayesianEstimator, MultivariateGaussianMeanCovarianceBayesianEstimator, MultivariateLinearRegression, NearestNeighborExhaustive.Learner, NearestNeighborKDTree.Learner, NegativeBinomialDistribution.MaximumLikelihoodEstimator, NegativeBinomialDistribution.WeightedMaximumLikelihoodEstimator, OnlineBaggingCategorizerLearner, OnlineBinaryMarginInfusedRelaxedAlgorithm, OnlineKernelPerceptron, OnlineKernelRandomizedBudgetPerceptron, OnlineMultiPerceptron, OnlineMultiPerceptron.ProportionalUpdate, OnlineMultiPerceptron.UniformUpdate, OnlinePassiveAggressivePerceptron, OnlinePassiveAggressivePerceptron.AbstractSoftMargin, OnlinePassiveAggressivePerceptron.LinearSoftMargin, OnlinePassiveAggressivePerceptron.QuadraticSoftMargin, OnlinePerceptron, OnlineRampPassiveAggressivePerceptron, OnlineShiftingPerceptron, OnlineVotedPerceptron, OptimizedKMeansClusterer, ParallelBaumWelchAlgorithm, ParallelDirichletProcessMixtureModel, ParallelizedGeneticAlgorithm, ParallelizedKMeansClusterer, ParallelLatentDirichletAllocationVectorGibbsSampler, ParameterAdaptableBatchLearnerWrapper, ParameterDerivativeFreeCostMinimizer, ParameterDifferentiableCostMinimizer, PartitionalClusterer, Perceptron, PoissonBayesianEstimator, PoissonDistribution.MaximumLikelihoodEstimator, PoissonDistribution.WeightedMaximumLikelihoodEstimator, PolynomialFunction.Regression, PrimalEstimatedSubGradient, ProbabilisticLatentSemanticAnalysis, Projectron, Projectron.LinearSoftMargin, RandomSubspace, RandomSubVectorThresholdLearner, RegressionTreeLearner, RejectionSampling, RelaxedOnlineMaximumMarginAlgorithm, RemoveOldestKernelPerceptron, RootBracketExpander, RootFinderBisectionMethod, RootFinderFalsePositionMethod, RootFinderNewtonsMethod, RootFinderRiddersMethod, RootFinderSecantMethod, SamplingImportanceResamplingParticleFilter, ScalarDataDistribution.Estimator, ScalarMixtureDensityModel.EMLearner, SequencePredictionLearner, SequentialMinimalOptimization, SimpleStatisticalSpellingCorrector.Learner, SimulatedAnnealer, StandardDistributionNormalizer.Learner, Stoptron, StudentTDistribution.MaximumLikelihoodEstimator, StudentTDistribution.WeightedMaximumLikelihoodEstimator, SuccessiveOverrelaxation, ThinSingularValueDecomposition, TimeSeriesPredictionLearner, UniformDistribution.MaximumLikelihoodEstimator, UniformDistributionBayesianEstimator, UnivariateGaussian.IncrementalEstimator, UnivariateGaussian.MaximumLikelihoodEstimator, UnivariateGaussian.WeightedMaximumLikelihoodEstimator, UnivariateGaussianMeanBayesianEstimator, UnivariateGaussianMeanVarianceBayesianEstimator, UnivariateLinearRegression, VectorFunctionToScalarFunction.Learner, VectorNaiveBayesCategorizer.BatchGaussianLearner, VectorNaiveBayesCategorizer.Learner, VectorNaiveBayesCategorizer.OnlineLearner, VectorThresholdGiniImpurityLearner, VectorThresholdHellingerDistanceLearner, VectorThresholdInformationGainLearner, VectorThresholdVarianceLearner, WeightedMeanLearner, WeightedMostFrequentLearner, WinnerTakeAllCategorizer.Learner, Winnow

@CodeReview(reviewer="Kevin R. Dixon",
            date="2008-07-22",
            changesNeeded=false,
            comments="Interface looks fine.")
public interface BatchLearner<DataType,ResultType>
extends CloneableSerializable

The BatchLearner interface defines the general functionality of an object that is the implementation of a data-driven, batch machine learning algorithm. It unifies the interfaces for both supervised and unsupervised learning, but as such is extremely general. The interface defines that a learning algorithm takes in some type of data and produces some type of object as output from the data.

Typically the input to the learning algorithm will be some collection of data (training data) and the output will be some form of pattern recognizer (classifier/categorizer).

The design pattern for machine learning algorithms is to have all the parameters and configuration of the algorithm set on the BatchLearner object (usually as a Java Bean) and then the data is passed in using the learn method to create the result object of the learning algorithm.

The interface is for a "batch" machine learning algorithm because the call to the learn method is expected to create a usable object from scratch using the provided data.

If you implement this without really using a learning algorithm you will make the authors very sad (especially Justin).

Since:
2.0
Author:
Justin Basilico, Kevin R. Dixon
See Also:
IncrementalLearner

Method Summary
 ResultType learn(DataType data)
          The learn method creates an object of ResultType using data of type DataType, using some form of "learning" algorithm.
 
Methods inherited from interface gov.sandia.cognition.util.CloneableSerializable
clone
 

Method Detail

learn

ResultType learn(DataType data)
The learn method creates an object of ResultType using data of type DataType, using some form of "learning" algorithm.

Parameters:
data - The data that the learning algorithm will use to create an object of ResultType.
Returns:
The object that is created based on the given data using the learning algorithm.