com.rapidminer.operator.learner.bayes
Class LinearDiscriminantAnalysis

java.lang.Object
  extended by com.rapidminer.tools.AbstractObservable<Operator>
      extended by com.rapidminer.operator.Operator
          extended by com.rapidminer.operator.learner.AbstractLearner
              extended by com.rapidminer.operator.learner.bayes.LinearDiscriminantAnalysis
All Implemented Interfaces:
ConfigurationListener, PreviewListener, ResourceConsumer, CapabilityProvider, Learner, ParameterHandler, LoggingHandler, Observable<Operator>
Direct Known Subclasses:
QuadraticDiscriminantAnalysis, RegularizedDiscriminantAnalysis

public class LinearDiscriminantAnalysis
extends AbstractLearner

This operator performs a linear discriminant analysis (LDA). This method tries to find the linear combination of features which best separate two or more classes of examples. The resulting combination is then used as a linear classifier. LDA is closely related to ANOVA (analysis of variance) and regression analysis, which also attempt to express one dependent variable as a linear combination of other features or measurements. In the other two methods however, the dependent variable is a numerical quantity, while for LDA it is a categorical variable (i.e. the class label).

LDA is also closely related to principal component analysis (PCA) and factor analysis in that both look for linear combinations of variables which best explain the data. LDA explicitly attempts to model the difference between the classes of data. PCA on the other hand does not take into account any difference in class.

Author:
Sebastian Land

Field Summary
 
Fields inherited from interface com.rapidminer.operator.learner.CapabilityProvider
PROPERTY_RAPIDMINER_GENERAL_CAPABILITIES_WARN
 
Constructor Summary
LinearDiscriminantAnalysis(OperatorDescription description)
           
 
Method Summary
protected  Jama.Matrix[] getInverseCovarianceMatrices(ExampleSet exampleSet, java.lang.String[] labels)
           
protected  Jama.Matrix[] getMeanVectors(ExampleSet exampleSet, int numberOfAttributes, java.lang.String[] labels)
           
protected  DiscriminantModel getModel(ExampleSet exampleSet, java.lang.String[] labels, Jama.Matrix[] meanVectors, Jama.Matrix[] inverseCovariances, double[] aprioriProbabilities)
           
 java.lang.Class<? extends PredictionModel> getModelClass()
          This method might be overridden from subclasses in order to specify exactly which model class they use.
 Model learn(ExampleSet exampleSet)
          Trains a model.
 boolean supportsCapability(OperatorCapability capability)
          Checks for Learner capabilities.
 
Methods inherited from class com.rapidminer.operator.learner.AbstractLearner
canCalculateWeights, canEstimatePerformance, doWork, doWork, getEstimatedPerformance, getExampleSetInputPort, getOptimizationPerformance, getWeightCalculationError, getWeights, getWeights, onlyWarnForNonSufficientCapabilities, shouldAutoConnect, shouldCalculateWeights, shouldDeliverOptimizationPerformance, shouldEstimatePerformance
 
Methods inherited from class com.rapidminer.operator.Operator
acceptsInput, addError, addError, addValue, addWarning, apply, apply, assumePreconditionsSatisfied, checkAll, checkAllExcludingMetaData, checkDeprecations, checkForStop, checkIO, checkProperties, clear, clearErrorList, cloneOperator, collectErrors, createExperimentTree, createExperimentTree, createFromXML, createFromXML, createFromXML, createMarkedExperimentTree, createMarkedProcessTree, createProcessTree, createProcessTree, disconnectPorts, execute, fireUpdate, freeMemory, getAddOnlyAdditionalOutput, getApplyCount, getCompatibilityLevel, getDeliveredOutputClasses, getDeprecationInfo, getDesiredInputClasses, getDOMRepresentation, getEncoding, getErrorList, getExecutionUnit, getExperiment, getIncompatibleVersionChanges, getInput, getInput, getInput, getInputClasses, getInputDescription, getInputPorts, getIODescription, getLog, getLogger, getName, getNumberOfBreakpoints, getOperatorClassName, getOperatorDescription, getOutputClasses, getOutputPorts, getParameter, getParameterAsBoolean, getParameterAsChar, getParameterAsColor, getParameterAsDouble, getParameterAsFile, getParameterAsFile, getParameterAsInputStream, getParameterAsInt, getParameterAsMatrix, getParameterAsRepositoryLocation, getParameterAsString, getParameterHandler, getParameterList, getParameters, getParameterTupel, getParameterType, getParameterTypes, getParent, getPortOwner, getProcess, getResourceConsumptionEstimator, getRoot, getStartTime, getTransformer, getUserDescription, getValue, getValues, getXML, getXML, getXML, hasBreakpoint, hasBreakpoint, hasInput, inApplyLoop, isDebugMode, isDirty, isEnabled, isExpanded, isParallel, isParameterSet, isRunning, log, log, logError, logNote, logWarning, lookupOperator, makeDirty, makeDirtyOnUpdate, notifyRenaming, performAdditionalChecks, preAutoWire, processFinished, processStarts, producesOutput, propagateDirtyness, register, registerOperator, remove, removeAndKeepConnections, rename, resume, setBreakpoint, setCompatibilityLevel, setEnabled, setEnclosingProcess, setExpanded, setInput, setListParameter, setPairParameter, setParameter, setParameters, setUserDescription, shouldAutoConnect, shouldStopStandaloneExecution, toString, transformMetaData, unregisterOperator, updateExecutionOrder, walk, writeXML, writeXML
 
Methods inherited from class com.rapidminer.tools.AbstractObservable
addObserver, addObserverAsFirst, fireUpdate, removeObserver
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.rapidminer.operator.learner.Learner
getName
 

Constructor Detail

LinearDiscriminantAnalysis

public LinearDiscriminantAnalysis(OperatorDescription description)
Method Detail

learn

public Model learn(ExampleSet exampleSet)
            throws OperatorException
Description copied from interface: Learner
Trains a model. This method should be called by apply() and is implemented by subclasses.

Throws:
OperatorException

getModel

protected DiscriminantModel getModel(ExampleSet exampleSet,
                                     java.lang.String[] labels,
                                     Jama.Matrix[] meanVectors,
                                     Jama.Matrix[] inverseCovariances,
                                     double[] aprioriProbabilities)
                              throws UndefinedParameterError
Throws:
UndefinedParameterError

getMeanVectors

protected Jama.Matrix[] getMeanVectors(ExampleSet exampleSet,
                                       int numberOfAttributes,
                                       java.lang.String[] labels)
                                throws UserError
Throws:
UserError

getInverseCovarianceMatrices

protected Jama.Matrix[] getInverseCovarianceMatrices(ExampleSet exampleSet,
                                                     java.lang.String[] labels)
                                              throws UndefinedParameterError
Throws:
UndefinedParameterError

getModelClass

public java.lang.Class<? extends PredictionModel> getModelClass()
Description copied from class: AbstractLearner
This method might be overridden from subclasses in order to specify exactly which model class they use. This is to ensure the proper postprocessing of some models like KernelModels (SupportVectorCounter) or TreeModels (Rule generation)

Overrides:
getModelClass in class AbstractLearner

supportsCapability

public boolean supportsCapability(OperatorCapability capability)
Description copied from interface: CapabilityProvider
Checks for Learner capabilities. Should return true if the given capability is supported.



Copyright © 2001-2009 by Rapid-I