Overview | Package | Class | Tree | Deprecated | Index | Help | Weka's home
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## weka.clusterers
Class FarthestFirst

    java.lang.Object
      weka.clusterers.Clusterer
          weka.clusterers.FarthestFirst

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, OptionHandler

    public class FarthestFirst

extends Clusterer
implements OptionHandler

Implements the "Farthest First Traversal Algorithm" by Hochbaum and Shmoys 1985: A best possible heuristic for the k-center problem, Mathematics of Operations Research, 10(2):180-184, as cited by Sanjoy Dasgupta "performance guarantees for hierarchical clustering", colt 2002, sydney works as a fast simple approximate clusterer modelled after SimpleKMeans, might be a useful initializer for it Valid options are:

-N
Specify the number of clusters to generate.

-S
Specify random number seed.

Version:
  $Revision: 1.2 $
Author:
  Bernhard Pfahringer (bernhard@cs.waikato.ac.nz)
See Also:
  `Clusterer`, `OptionHandler`, Serialized Form

Constructor Summary
`FarthestFirst()`

Method Summary
`void` | `buildClusterer(Instances data)` Generates a clusterer.
`int` | `clusterInstance(Instance instance)` Classifies a given instance.
`int` | `getNumClusters()` gets the number of clusters to generate
`java.lang.String[]` | `getOptions()` Gets the current settings of FarthestFirst
`int` | `getSeed()` Get the random number seed
`java.lang.String` | `globalInfo()` Returns a string describing this clusterer
`java.util.Enumeration` | `listOptions()` Returns an enumeration describing the available options..
`static void` | `main(java.lang.String[] argv)` Main method for testing this class.
`int` | `numberOfClusters()` Returns the number of clusters.
`java.lang.String` | `numClustersTipText()` Returns the tip text for this property
`java.lang.String` | `seedTipText()` Returns the tip text for this property
`void` | `setNumClusters(int n)` set the number of clusters to generate
`void` | `setOptions(java.lang.String[] options)` Parses a given list of options.
`void` | `setSeed(int s)` Set the random number seed
`java.lang.String` | `toString()` return a string describing this clusterer

Methods inherited from class weka.clusterers.Clusterer
`distributionForInstance, forName, makeCopies`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### FarthestFirst

    public FarthestFirst()

Method Detail

### globalInfo

    public java.lang.String globalInfo()

  Returns a string describing this clusterer

  Returns:
    a description of the evaluator suitable for displaying in the explorer/experimenter gui

### buildClusterer

    public void buildClusterer(Instances data)
                        throws java.lang.Exception

  Generates a clusterer. Has to initialize all fields of the clusterer that are not being set via options.

  Specified by:
    `buildClusterer` in class `Clusterer`
  Parameters:
    `data` - set of instances serving as training data
  Throws:
    `java.lang.Exception` - if the clusterer has not been generated successfully

### clusterInstance

    public int clusterInstance(Instance instance)
                        throws java.lang.Exception

  Classifies a given instance.

  Overrides:
    `clusterInstance` in class `Clusterer`
  Parameters:
    `instance` - the instance to be assigned to a cluster
  Returns:
    the number of the assigned cluster as an integer if the class is enumerated, otherwise the predicted value
  Throws:
    `java.lang.Exception` - if instance could not be classified successfully

### numberOfClusters

    public int numberOfClusters()
                         throws java.lang.Exception

  Returns the number of clusters.

  Specified by:
    `numberOfClusters` in class `Clusterer`
  Returns:
    the number of clusters generated for a training dataset.
  Throws:
    `java.lang.Exception` - if number of clusters could not be returned successfully

### listOptions

    public java.util.Enumeration listOptions()

  Returns an enumeration describing the available options..

  Valid options are:

  -N
  Specify the number of clusters to generate. If omitted, FarthestFirst will use cross validation to select the number of clusters automatically.

  -S
  Specify random number seed.

  Specified by:
    `listOptions` in interface `OptionHandler`
  Returns:
    an enumeration of all the available options.

### numClustersTipText

    public java.lang.String numClustersTipText()

  Returns the tip text for this property

  Returns:
    tip text for this property suitable for displaying in the explorer/experimenter gui

### setNumClusters

    public void setNumClusters(int n)
                        throws java.lang.Exception

  set the number of clusters to generate

  Parameters:
    `n` - the number of clusters to generate
  Throws:
    `java.lang.Exception`

### getNumClusters

    public int getNumClusters()

  gets the number of clusters to generate

  Returns:
    the number of clusters to generate

### seedTipText

    public java.lang.String seedTipText()

  Returns the tip text for this property

  Returns:
    tip text for this property suitable for displaying in the explorer/experimenter gui

### setSeed

    public void setSeed(int s)

  Set the random number seed

  Parameters:
    `s` - the seed

### getSeed

    public int getSeed()

  Get the random number seed

  Returns:
    the seed

### setOptions

    public void setOptions(java.lang.String[] options)
                    throws java.lang.Exception

  Parses a given list of options.

  Specified by:
    `setOptions` in interface `OptionHandler`
  Parameters:
    `options` - the list of options as an array of strings
  Throws:
    `java.lang.Exception` - if an option is not supported

### getOptions

    public java.lang.String[] getOptions()

  Gets the current settings of FarthestFirst

  Specified by:
    `getOptions` in interface `OptionHandler`
  Returns:
    an array of strings suitable for passing to setOptions()

### toString

    public java.lang.String toString()

  return a string describing this clusterer

  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    a description of the clusterer as a string

### main

    public static void main(java.lang.String[] argv)

  Main method for testing this class.

  Parameters:
    `argv` - should contain the following arguments:

    -t training file [-N number of clusters]

Overview | Package | Class | Tree | Deprecated | Index | Help | Weka's home
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD