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`, `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)

     -S <num>
      Random number seed.
      (default 42)

Version:
  $Revision: 6790 $
Author:
  Mark Hall
See Also:
  - `RandomizableClusterer`
  - `Drawable`
  - Serialized Form

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

`distributionForInstance, forName, makeCopies, makeCopy`

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

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

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

     -S <num>
      Random number seed.
      (default 42)

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