Class FilteredClusterer

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, Clusterer, CapabilitiesHandler, OptionHandler, RevisionHandler

    public class FilteredClusterer
    extends SingleClustererEnhancer
    Class for running an arbitrary clusterer on data that has been passed through an arbitrary filter. Like the clusterer, the structure of the filter is based exclusively on the training data and test instances will be processed by the filter without changing their structure.

    Valid options are:

     -F <filter specification>
      Full class name of filter to use, followed
      by filter options.
      eg: "weka.filters.unsupervised.attribute.Remove -V -R 1,2"
     (default: weka.filters.AllFilter)
     -W
      Full name of base clusterer.
      (default: weka.clusterers.SimpleKMeans)
     
     Options specific to clusterer weka.clusterers.SimpleKMeans:
     
     -N <num>
      number of clusters.
      (default 2).
     -V
      Display std. deviations for centroids.
     
     -M
      Replace missing values with mean/mode.
     
     -S <num>
      Random number seed.
      (default 10)
    Based on code from the FilteredClassifier by Len Trigg.
    Version:
    $Revision: 5538 $
    Author:
    Len Trigg (trigg@cs.waikato.ac.nz), FracPete (fracpete at waikato dot ac dot nz)
    See Also:
    FilteredClassifier, Serialized Form
    • Constructor Detail

      • FilteredClusterer

        public FilteredClusterer()
        Default constructor.
    • Method Detail

      • globalInfo

        public java.lang.String globalInfo()
        Returns a string describing this clusterer.
        Returns:
        a description of the clusterer suitable for displaying in the explorer/experimenter gui
      • setOptions

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

        Valid options are:

         -F <filter specification>
          Full class name of filter to use, followed
          by filter options.
          eg: "weka.filters.unsupervised.attribute.Remove -V -R 1,2"
         (default: weka.filters.AllFilter)
         -W
          Full name of base clusterer.
          (default: weka.clusterers.SimpleKMeans)
         
         Options specific to clusterer weka.clusterers.SimpleKMeans:
         
         -N <num>
          number of clusters.
          (default 2).
         -V
          Display std. deviations for centroids.
         
         -M
          Replace missing values with mean/mode.
         
         -S <num>
          Random number seed.
          (default 10)
        Specified by:
        setOptions in interface OptionHandler
        Overrides:
        setOptions in class SingleClustererEnhancer
        Parameters:
        options - the list of options as an array of strings
        Throws:
        java.lang.Exception - if an option is not supported
      • filterTipText

        public java.lang.String filterTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • setFilter

        public void setFilter​(Filter filter)
        Sets the filter.
        Parameters:
        filter - the filter with all options set.
      • getFilter

        public Filter getFilter()
        Gets the filter used.
        Returns:
        the filter
      • buildClusterer

        public void buildClusterer​(Instances data)
                            throws java.lang.Exception
        Build the clusterer on the filtered data.
        Specified by:
        buildClusterer in interface Clusterer
        Specified by:
        buildClusterer in class AbstractClusterer
        Parameters:
        data - the training data
        Throws:
        java.lang.Exception - if the clusterer could not be built successfully
      • distributionForInstance

        public double[] distributionForInstance​(Instance instance)
                                         throws java.lang.Exception
        Classifies a given instance after filtering.
        Specified by:
        distributionForInstance in interface Clusterer
        Overrides:
        distributionForInstance in class AbstractClusterer
        Parameters:
        instance - the instance to be classified
        Returns:
        the class distribution for the given instance
        Throws:
        java.lang.Exception - if instance could not be classified successfully
      • toString

        public java.lang.String toString()
        Output a representation of this clusterer.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a representation of this clusterer
      • main

        public static void main​(java.lang.String[] args)
        Main method for testing this class.
        Parameters:
        args - the commandline options, use "-h" for help