Class AbstractClusterer

java.lang.Object
weka.clusterers.AbstractClusterer
All Implemented Interfaces:
Serializable, Cloneable, Clusterer, CapabilitiesHandler, RevisionHandler
Direct Known Subclasses:
AbstractDensityBasedClusterer, CLOPE, DBSCAN, HierarchicalClusterer, OPTICS, RandomizableClusterer, RandomizableSingleClustererEnhancer, SingleClustererEnhancer

public abstract class AbstractClusterer extends Object implements Clusterer, Cloneable, Serializable, CapabilitiesHandler, RevisionHandler
Abstract clusterer.
Version:
$Revision: 5537 $
Author:
Mark Hall (mhall@cs.waikato.ac.nz)
See Also:
  • Constructor Details

    • AbstractClusterer

      public AbstractClusterer()
  • Method Details

    • buildClusterer

      public abstract void buildClusterer(Instances data) throws Exception
      Generates a clusterer. Has to initialize all fields of the clusterer that are not being set via options.
      Specified by:
      buildClusterer in interface Clusterer
      Parameters:
      data - set of instances serving as training data
      Throws:
      Exception - if the clusterer has not been generated successfully
    • clusterInstance

      public int clusterInstance(Instance instance) throws Exception
      Classifies a given instance. Either this or distributionForInstance() needs to be implemented by subclasses.
      Specified by:
      clusterInstance in interface Clusterer
      Parameters:
      instance - the instance to be assigned to a cluster
      Returns:
      the number of the assigned cluster as an integer
      Throws:
      Exception - if instance could not be clustered successfully
    • distributionForInstance

      public double[] distributionForInstance(Instance instance) throws Exception
      Predicts the cluster memberships for a given instance. Either this or clusterInstance() needs to be implemented by subclasses.
      Specified by:
      distributionForInstance in interface Clusterer
      Parameters:
      instance - the instance to be assigned a cluster.
      Returns:
      an array containing the estimated membership probabilities of the test instance in each cluster (this should sum to at most 1)
      Throws:
      Exception - if distribution could not be computed successfully
    • numberOfClusters

      public abstract int numberOfClusters() throws Exception
      Returns the number of clusters.
      Specified by:
      numberOfClusters in interface Clusterer
      Returns:
      the number of clusters generated for a training dataset.
      Throws:
      Exception - if number of clusters could not be returned successfully
    • forName

      public static Clusterer forName(String clustererName, String[] options) throws Exception
      Creates a new instance of a clusterer given it's class name and (optional) arguments to pass to it's setOptions method. If the clusterer implements OptionHandler and the options parameter is non-null, the clusterer will have it's options set.
      Parameters:
      clustererName - the fully qualified class name of the clusterer
      options - an array of options suitable for passing to setOptions. May be null.
      Returns:
      the newly created search object, ready for use.
      Throws:
      Exception - if the clusterer class name is invalid, or the options supplied are not acceptable to the clusterer.
    • makeCopy

      public static Clusterer makeCopy(Clusterer model) throws Exception
      Creates a deep copy of the given clusterer using serialization.
      Parameters:
      model - the clusterer to copy
      Returns:
      a deep copy of the clusterer
      Throws:
      Exception - if an error occurs
    • makeCopies

      public static Clusterer[] makeCopies(Clusterer model, int num) throws Exception
      Creates copies of the current clusterer. Note that this method now uses Serialization to perform a deep copy, so the Clusterer object must be fully Serializable. Any currently built model will now be copied as well.
      Parameters:
      model - an example clusterer to copy
      num - the number of clusterer copies to create.
      Returns:
      an array of clusterers.
      Throws:
      Exception - if an error occurs
    • getCapabilities

      public Capabilities getCapabilities()
      Returns the Capabilities of this clusterer. Derived classifiers have to override this method to enable capabilities.
      Specified by:
      getCapabilities in interface CapabilitiesHandler
      Specified by:
      getCapabilities in interface Clusterer
      Returns:
      the capabilities of this object
      See Also:
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Returns:
      the revision