Class Cobweb

All Implemented Interfaces:
Serializable, Cloneable, Clusterer, UpdateableClusterer, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, Drawable, OptionHandler, Randomizable, RevisionHandler, TechnicalInformationHandler

Class implementing the Cobweb and Classit clustering algorithms.

Note: the application of node operators (merging, splitting etc.) in terms of ordering and priority differs (and is somewhat ambiguous) between the original Cobweb and Classit papers. This algorithm always compares the best host, adding a new leaf, merging the two best hosts, and splitting the best host when considering where to place a new instance.

For more information see:

D. Fisher (1987). Knowledge acquisition via incremental conceptual clustering. Machine Learning. 2(2):139-172.

J. H. Gennari, P. Langley, D. Fisher (1990). Models of incremental concept formation. Artificial Intelligence. 40:11-61.

BibTeX:

 @article{Fisher1987,
    author = {D. Fisher},
    journal = {Machine Learning},
    number = {2},
    pages = {139-172},
    title = {Knowledge acquisition via incremental conceptual clustering},
    volume = {2},
    year = {1987}
 }
 
 @article{Gennari1990,
    author = {J. H. Gennari and P. Langley and D. Fisher},
    journal = {Artificial Intelligence},
    pages = {11-61},
    title = {Models of incremental concept formation},
    volume = {40},
    year = {1990}
 }
 

Valid options are:

 -A <acuity>
  Acuity.
  (default=1.0)
 -C <cutoff>
  Cutoff.
  (default=0.002)
 -save-data
  Save instance data.
 -S <num>
  Random number seed.
  (default 42)
 -output-debug-info
  If set, clusterer is run in debug mode and
  may output additional info to the console
 -do-not-check-capabilities
  If set, clusterer capabilities are not checked before clusterer is built
  (use with caution).
Version:
$Revision: 15519 $
Author:
Mark Hall
See Also:
  • Constructor Details

    • Cobweb

      public Cobweb()
      default constructor
  • Method Details

    • globalInfo

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

      public TechnicalInformation getTechnicalInformation()
      Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.
      Specified by:
      getTechnicalInformation in interface TechnicalInformationHandler
      Returns:
      the technical information about this class
    • getCapabilities

      public Capabilities getCapabilities()
      Returns default capabilities of the clusterer.
      Specified by:
      getCapabilities in interface CapabilitiesHandler
      Specified by:
      getCapabilities in interface Clusterer
      Overrides:
      getCapabilities in class AbstractClusterer
      Returns:
      the capabilities of this clusterer
      See Also:
    • buildClusterer

      public void buildClusterer(Instances data) throws Exception
      Builds the clusterer.
      Specified by:
      buildClusterer in interface Clusterer
      Specified by:
      buildClusterer in class AbstractClusterer
      Parameters:
      data - the training instances.
      Throws:
      Exception - if something goes wrong.
    • updateFinished

      public void updateFinished()
      Singals the end of the updating.
      Specified by:
      updateFinished in interface UpdateableClusterer
    • clusterInstance

      public int clusterInstance(Instance instance) throws Exception
      Classifies a given instance.
      Specified by:
      clusterInstance in interface Clusterer
      Overrides:
      clusterInstance in class AbstractClusterer
      Parameters:
      instance - the instance to be assigned to a cluster
      Returns:
      the number of the assigned cluster as an interger if the class is enumerated, otherwise the predicted value
      Throws:
      Exception - if instance could not be classified successfully
    • numberOfClusters

      public int numberOfClusters()
      Returns the number of clusters.
      Specified by:
      numberOfClusters in interface Clusterer
      Specified by:
      numberOfClusters in class AbstractClusterer
      Returns:
      the number of clusters
    • getTreeRoot

      public Cobweb.CNode getTreeRoot()
      Get the root of the tree.
      Returns:
      the root of the tree.
    • updateClusterer

      public void updateClusterer(Instance newInstance) throws Exception
      Adds an instance to the clusterer.
      Specified by:
      updateClusterer in interface UpdateableClusterer
      Parameters:
      newInstance - the instance to be added
      Throws:
      Exception - if something goes wrong
    • addInstance

      @Deprecated public void addInstance(Instance newInstance) throws Exception
      Deprecated.
      updateClusterer(Instance) should be used instead
      Adds an instance to the Cobweb tree.
      Parameters:
      newInstance - the instance to be added
      Throws:
      Exception - if something goes wrong
      See Also:
    • listOptions

      public Enumeration<Option> listOptions()
      Returns an enumeration describing the available options.
      Specified by:
      listOptions in interface OptionHandler
      Overrides:
      listOptions in class RandomizableClusterer
      Returns:
      an enumeration of all the available options.
    • setOptions

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

      Valid options are:

       -A <acuity>
        Acuity.
        (default=1.0)
       -C <cutoff>
        Cutoff.
        (default=0.002)
       -save-data
        Save instance data.
       -S <num>
        Random number seed.
        (default 42)
       -output-debug-info
        If set, clusterer is run in debug mode and
        may output additional info to the console
       -do-not-check-capabilities
        If set, clusterer capabilities are not checked before clusterer is built
        (use with caution).
      Specified by:
      setOptions in interface OptionHandler
      Overrides:
      setOptions in class RandomizableClusterer
      Parameters:
      options - the list of options as an array of strings
      Throws:
      Exception - if an option is not supported
    • acuityTipText

      public String acuityTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setAcuity

      public void setAcuity(double a)
      set the acuity.
      Parameters:
      a - the acuity value
    • getAcuity

      public double getAcuity()
      get the acuity value
      Returns:
      the acuity
    • cutoffTipText

      public String cutoffTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setCutoff

      public void setCutoff(double c)
      set the cutoff
      Parameters:
      c - the cutof
    • getCutoff

      public double getCutoff()
      get the cutoff
      Returns:
      the cutoff
    • saveInstanceDataTipText

      public String saveInstanceDataTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getSaveInstanceData

      public boolean getSaveInstanceData()
      Get the value of saveInstances.
      Returns:
      Value of saveInstances.
    • setSaveInstanceData

      public void setSaveInstanceData(boolean newsaveInstances)
      Set the value of saveInstances.
      Parameters:
      newsaveInstances - Value to assign to saveInstances.
    • getOptions

      public String[] getOptions()
      Gets the current settings of Cobweb.
      Specified by:
      getOptions in interface OptionHandler
      Overrides:
      getOptions in class RandomizableClusterer
      Returns:
      an array of strings suitable for passing to setOptions()
    • toString

      public String toString()
      Returns a description of the clusterer as a string.
      Overrides:
      toString in class Object
      Returns:
      a string describing the clusterer.
    • graphType

      public int graphType()
      Returns the type of graphs this class represents
      Specified by:
      graphType in interface Drawable
      Returns:
      Drawable.TREE
    • graph

      public String graph() throws Exception
      Generates the graph string of the Cobweb tree
      Specified by:
      graph in interface Drawable
      Returns:
      a String value
      Throws:
      Exception - if an error occurs
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Overrides:
      getRevision in class AbstractClusterer
      Returns:
      the revision
    • seedTipText

      public String seedTipText()
      Returns the tip text for this property
      Overrides:
      seedTipText in class RandomizableClusterer
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • main

      public static void main(String[] argv)
      Main method.
      Parameters:
      argv - the commandline options