Package weka.clusterers

# Class Cobweb

java.lang.Object
weka.clusterers.AbstractClusterer
weka.clusterers.RandomizableClusterer
weka.clusterers.Cobweb

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

public class Cobweb extends RandomizableClusterer implements Drawable, TechnicalInformationHandler, UpdateableClusterer
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: 15520 $
Author:
  Mark Hall
See Also:
  - `RandomizableClusterer`
  - `Drawable`
  - Serialized Form

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `class`
  `Cobweb.CNode`
  Inner class handling node operations for Cobweb.

- ## Field Summary

  ### Fields inherited from interface weka.core.Drawable

  `BayesNet, Newick, NOT_DRAWABLE, TREE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Cobweb()`
  default constructor

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `acuityTipText()`
  Returns the tip text for this property
  `void`
  `addInstance(Instance newInstance)`
  Deprecated.
  updateClusterer(Instance) should be used instead
  `void`
  `buildClusterer(Instances data)`
  Builds the clusterer.
  `int`
  `clusterInstance(Instance instance)`
  Classifies a given instance.
  `String`
  `cutoffTipText()`
  Returns the tip text for this property
  `double`
  `getAcuity()`
  get the acuity value
  `Capabilities`
  `getCapabilities()`
  Returns default capabilities of the clusterer.
  `double`
  `getCutoff()`
  get the cutoff
  `String[]`
  `getOptions()`
  Gets the current settings of Cobweb.
  `String`
  `getRevision()`
  Returns the revision string.
  `boolean`
  `getSaveInstanceData()`
  Get the value of saveInstances.
  `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.
  `Cobweb.CNode`
  `getTreeRoot()`
  Get the root of the tree.
  `String`
  `globalInfo()`
  Returns a string describing this clusterer
  `String`
  `graph()`
  Generates the graph string of the Cobweb tree
  `int`
  `graphType()`
  Returns the type of graphs this class represents
  `Enumeration<Option>`
  `listOptions()`
  Returns an enumeration describing the available options.
  `static void`
  `main(String[] argv)`
  Main method.
  `int`
  `numberOfClusters()`
  Returns the number of clusters.
  `String`
  `saveInstanceDataTipText()`
  Returns the tip text for this property
  `String`
  `seedTipText()`
  Returns the tip text for this property
  `void`
  `setAcuity(double a)`
  set the acuity.
  `void`
  `setCutoff(double c)`
  set the cutoff
  `void`
  `setOptions(String[] options)`
  Parses a given list of options.
  `void`
  `setSaveInstanceData(boolean newsaveInstances)`
  Set the value of saveInstances.
  `String`
  `toString()`
  Returns a description of the clusterer as a string.
  `void`
  `updateClusterer(Instance newInstance)`
  Adds an instance to the clusterer.
  `void`
  `updateFinished()`
  Singals the end of the updating.

  ### Methods inherited from class weka.clusterers.RandomizableClusterer

  `getSeed, setSeed`

  ### Methods inherited from class weka.clusterers.AbstractClusterer

  `debugTipText, distributionForInstance, doNotCheckCapabilitiesTipText, forName, getDebug, getDoNotCheckCapabilities, makeCopies, makeCopy, postExecution, preExecution, run, runClusterer, setDebug, setDoNotCheckCapabilities`

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## 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:
      - `Capabilities`

  - ### 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:
      - `updateClusterer(Instance)`

  - ### 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