类 PrincipalComponents

所有已实现的接口:
Serializable, AttributeEvaluator, AttributeTransformer, CapabilitiesHandler, OptionHandler, RevisionHandler

public class PrincipalComponents extends UnsupervisedAttributeEvaluator implements AttributeTransformer, OptionHandler
Performs a principal components analysis and transformation of the data. Use in conjunction with a Ranker search. Dimensionality reduction is accomplished by choosing enough eigenvectors to account for some percentage of the variance in the original data---default 0.95 (95%). Attribute noise can be filtered by transforming to the PC space, eliminating some of the worst eigenvectors, and then transforming back to the original space.

Valid options are:

 -D
  Don't normalize input data.
 -R
  Retain enough PC attributes to account 
  for this proportion of variance in the original data.
  (default = 0.95)
 -O
  Transform through the PC space and 
  back to the original space.
 -A
  Maximum number of attributes to include in 
  transformed attribute names. (-1 = include all)
版本:
$Revision: 6690 $
作者:
Mark Hall (mhall@cs.waikato.ac.nz), Gabi Schmidberger (gabi@cs.waikato.ac.nz)
另请参阅:
  • 构造器详细资料

    • PrincipalComponents

      public PrincipalComponents()
  • 方法详细资料

    • globalInfo

      public String globalInfo()
      Returns a string describing this attribute transformer
      返回:
      a description of the evaluator suitable for displaying in the explorer/experimenter gui
    • listOptions

      public Enumeration listOptions()
      Returns an enumeration describing the available options.

      指定者:
      listOptions 在接口中 OptionHandler
      返回:
      an enumeration of all the available options.
    • setOptions

      public void setOptions(String[] options) throws Exception
      Parses a given list of options.

      Valid options are:

       -D
        Don't normalize input data.
       -R
        Retain enough PC attributes to account 
        for this proportion of variance in the original data.
        (default = 0.95)
       -O
        Transform through the PC space and 
        back to the original space.
       -A
        Maximum number of attributes to include in 
        transformed attribute names. (-1 = include all)
      指定者:
      setOptions 在接口中 OptionHandler
      参数:
      options - the list of options as an array of strings
      抛出:
      Exception - if an option is not supported
    • centerDataTipText

      public String centerDataTipText()
      Returns the tip text for this property
      返回:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setCenterData

      public void setCenterData(boolean center)
      Set whether to center (rather than standardize) the data. If set to true then PCA is computed from the covariance rather than correlation matrix.
      参数:
      center - true if the data is to be centered rather than standardized
    • getCenterData

      public boolean getCenterData()
      Get whether to center (rather than standardize) the data. If true then PCA is computed from the covariance rather than correlation matrix.
      返回:
      true if the data is to be centered rather than standardized.
    • varianceCoveredTipText

      public String varianceCoveredTipText()
      Returns the tip text for this property
      返回:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setVarianceCovered

      public void setVarianceCovered(double vc)
      Sets the amount of variance to account for when retaining principal components
      参数:
      vc - the proportion of total variance to account for
    • getVarianceCovered

      public double getVarianceCovered()
      Gets the proportion of total variance to account for when retaining principal components
      返回:
      the proportion of variance to account for
    • maximumAttributeNamesTipText

      public String maximumAttributeNamesTipText()
      Returns the tip text for this property
      返回:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setMaximumAttributeNames

      public void setMaximumAttributeNames(int m)
      Sets maximum number of attributes to include in transformed attribute names.
      参数:
      m - the maximum number of attributes
    • getMaximumAttributeNames

      public int getMaximumAttributeNames()
      Gets maximum number of attributes to include in transformed attribute names.
      返回:
      the maximum number of attributes
    • transformBackToOriginalTipText

      public String transformBackToOriginalTipText()
      Returns the tip text for this property
      返回:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setTransformBackToOriginal

      public void setTransformBackToOriginal(boolean b)
      Sets whether the data should be transformed back to the original space
      参数:
      b - true if the data should be transformed back to the original space
    • getTransformBackToOriginal

      public boolean getTransformBackToOriginal()
      Gets whether the data is to be transformed back to the original space.
      返回:
      true if the data is to be transformed back to the original space
    • getOptions

      public String[] getOptions()
      Gets the current settings of PrincipalComponents
      指定者:
      getOptions 在接口中 OptionHandler
      返回:
      an array of strings suitable for passing to setOptions()
    • getCapabilities

      public Capabilities getCapabilities()
      Returns the capabilities of this evaluator.
      指定者:
      getCapabilities 在接口中 CapabilitiesHandler
      覆盖:
      getCapabilities 在类中 ASEvaluation
      返回:
      the capabilities of this evaluator
      另请参阅:
    • buildEvaluator

      public void buildEvaluator(Instances data) throws Exception
      Initializes principal components and performs the analysis
      指定者:
      buildEvaluator 在类中 ASEvaluation
      参数:
      data - the instances to analyse/transform
      抛出:
      Exception - if analysis fails
    • transformedHeader

      public Instances transformedHeader() throws Exception
      Returns just the header for the transformed data (ie. an empty set of instances. This is so that AttributeSelection can determine the structure of the transformed data without actually having to get all the transformed data through transformedData().
      指定者:
      transformedHeader 在接口中 AttributeTransformer
      返回:
      the header of the transformed data.
      抛出:
      Exception - if the header of the transformed data can't be determined.
    • transformedData

      public Instances transformedData(Instances data) throws Exception
      Gets the transformed training data.
      指定者:
      transformedData 在接口中 AttributeTransformer
      返回:
      the transformed training data
      抛出:
      Exception - if transformed data can't be returned
    • evaluateAttribute

      public double evaluateAttribute(int att) throws Exception
      Evaluates the merit of a transformed attribute. This is defined to be 1 minus the cumulative variance explained. Merit can't be meaningfully evaluated if the data is to be transformed back to the original space.
      指定者:
      evaluateAttribute 在接口中 AttributeEvaluator
      参数:
      att - the attribute to be evaluated
      返回:
      the merit of a transformed attribute
      抛出:
      Exception - if attribute can't be evaluated
    • toString

      public String toString()
      Returns a description of this attribute transformer
      覆盖:
      toString 在类中 Object
      返回:
      a String describing this attribute transformer
    • convertInstance

      public Instance convertInstance(Instance instance) throws Exception
      Transform an instance in original (unormalized) format. Convert back to the original space if requested.
      指定者:
      convertInstance 在接口中 AttributeTransformer
      参数:
      instance - an instance in the original (unormalized) format
      返回:
      a transformed instance
      抛出:
      Exception - if instance cant be transformed
    • getRevision

      public String getRevision()
      Returns the revision string.
      指定者:
      getRevision 在接口中 RevisionHandler
      覆盖:
      getRevision 在类中 ASEvaluation
      返回:
      the revision
    • main

      public static void main(String[] argv)
      Main method for testing this class
      参数:
      argv - should contain the command line arguments to the evaluator/transformer (see AttributeSelection)