Package weka.classifiers.mi

# Class CitationKNN

java.lang.Object
weka.classifiers.Classifier
weka.classifiers.mi.CitationKNN

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `CapabilitiesHandler`, `MultiInstanceCapabilitiesHandler`, `OptionHandler`, `RevisionHandler`, `TechnicalInformationHandler`

public class CitationKNN extends Classifier implements OptionHandler, MultiInstanceCapabilitiesHandler, TechnicalInformationHandler
Modified version of the Citation kNN multi instance classifier.
For more information see:
Jun Wang, Zucker, Jean-Daniel: Solving Multiple-Instance Problem: A Lazy Learning Approach. In: 17th International Conference on Machine Learning, 1119-1125, 2000.

BibTeX:

     @inproceedings{Wang2000,
        author = {Jun Wang and Zucker and Jean-Daniel},
        booktitle = {17th International Conference on Machine Learning},
        editor = {Pat Langley},
        pages = {1119-1125},
        title = {Solving Multiple-Instance Problem: A Lazy Learning Approach},
        year = {2000}
     }

Valid options are:

     -R <number of references>
      Number of Nearest References (default 1)

     -C <number of citers>
      Number of Nearest Citers (default 1)

     -H <rank>
      Rank of the Hausdorff Distance (default 1)

Version:
  $Revision: 9146 $
Author:
  Miguel Garcia Torres (mgarciat@ull.es)
See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`CitationKNN()`

## Method Summary

Modifier and Type
Method
Description
`void`
`buildClassifier(Instances train)`
Builds the classifier
`void`
`buildCNN()`
generates all the variables associated to the citation classifier
`void`
`countBagCiters(Instance bag)`
calculates the citers associated to a bag
`void`
`countBagReferences(Instance bag)`
Calculates the references of the exemplar bag
`double`
`distance(Instance first, Instance second)`
distance between two instances
`double`
`distanceSet(Instance first, Instance second)`
Calculates the distance between two instances
`double[]`
`distributionForInstance(Instance bag)`
Computes the distribution for a given exemplar
`boolean`
`equalExemplars(Instance exemplar1, Instance exemplar2)`
Wether the instances of two exemplars are or are not equal
`Capabilities`
`getCapabilities()`
Returns default capabilities of the classifier.
`int`
`getHDRank()`
Returns the rank associated to the Hausdorff distance
`Capabilities`
`getMultiInstanceCapabilities()`
Returns the capabilities of this multi-instance classifier for the relational data.
`int`
`getNumCiters()`
Returns the number of citers considered to estimate the class prediction of tests bags
`int`
`getNumReferences()`
Returns the number of references considered to estimate the class prediction of tests bags
`String[]`
`getOptions()`
Gets the current option settings for the OptionHandler.
`String`
`getRevision()`
Returns the revision string.
`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 filter
`String`
`HDRankTipText()`
Returns the tip text for this property
`Enumeration`
`listOptions()`
Returns an enumeration of all the available options..
`static void`
`main(String[] argv)`
Main method for testing this class.
`String`
`numCitersTipText()`
Returns the tip text for this property
`String`
`numReferencesTipText()`
Returns the tip text for this property
`void`
`preprocessData()`
Calculates the normalization of each attribute.
`void`
`setHDRank(int hDRank)`
Sets the rank associated to the Hausdorff distance
`void`
`setNumCiters(int numCiters)`
Sets the number of citers considered to estimate the class prediction of tests bags
`void`
`setNumReferences(int numReferences)`
Sets the number of references considered to estimate the class prediction of tests bags
`void`
`setOptions(String[] options)`
Sets the OptionHandler's options using the given list.
`String`
`toString()`
returns a string representation of the classifier
`void`
`updateNormalization(Instance bag)`
Updates the normalization of each attribute.

### Methods inherited from class weka.classifiers.Classifier

`classifyInstance, debugTipText, forName, getDebug, makeCopies, makeCopy, setDebug`

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

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

## Constructor Details

### CitationKNN

public CitationKNN()

## Method Details

### globalInfo

public String globalInfo()
Returns a string describing this filter

Returns:
  a description of the filter 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

### preprocessData

public void preprocessData()
Calculates the normalization of each attribute.

### HDRankTipText

public String HDRankTipText()
Returns the tip text for this property

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

### setHDRank

public void setHDRank(int hDRank)
Sets the rank associated to the Hausdorff distance

Parameters:
  `hDRank` - the rank of the Hausdorff distance

### getHDRank

public int getHDRank()
Returns the rank associated to the Hausdorff distance

Returns:
  the rank number

### numReferencesTipText

public String numReferencesTipText()
Returns the tip text for this property

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

### setNumReferences

public void setNumReferences(int numReferences)
Sets the number of references considered to estimate the class prediction of tests bags

Parameters:
  `numReferences` - the number of references

### getNumReferences

public int getNumReferences()
Returns the number of references considered to estimate the class prediction of tests bags

Returns:
  the number of references

### numCitersTipText

public String numCitersTipText()
Returns the tip text for this property

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

### setNumCiters

public void setNumCiters(int numCiters)
Sets the number of citers considered to estimate the class prediction of tests bags

Parameters:
  `numCiters` - the number of citers

### getNumCiters

public int getNumCiters()
Returns the number of citers considered to estimate the class prediction of tests bags

Returns:
  the number of citers

### getCapabilities

public Capabilities getCapabilities()
Returns default capabilities of the classifier.

Specified by:
  `getCapabilities` in interface `CapabilitiesHandler`
Overrides:
  `getCapabilities` in class `Classifier`
Returns:
  the capabilities of this classifier
See Also:
  - `Capabilities`

### getMultiInstanceCapabilities

public Capabilities getMultiInstanceCapabilities()
Returns the capabilities of this multi-instance classifier for the relational data.

Specified by:
  `getMultiInstanceCapabilities` in interface `MultiInstanceCapabilitiesHandler`
Returns:
  the capabilities of this object
See Also:
  - `Capabilities`

### buildClassifier

public void buildClassifier(Instances train) throws Exception
Builds the classifier

Specified by:
  `buildClassifier` in class `Classifier`
Parameters:
  `train` - the training data to be used for generating the boosted classifier.
Throws:
  `Exception` - if the classifier could not be built successfully

### buildCNN

public void buildCNN() throws Exception
generates all the variables associated to the citation classifier

Throws:
  `Exception` - if generation fails

### countBagCiters

public void countBagCiters(Instance bag)
calculates the citers associated to a bag

Parameters:
  `bag` - the bag cited

### countBagReferences

public void countBagReferences(Instance bag)
Calculates the references of the exemplar bag

Parameters:
  `bag` - the exemplar to which the nearest references will be calculated

### distanceSet

public double distanceSet(Instance first, Instance second)
Calculates the distance between two instances

Parameters:
  `first` - instance
  `second` - instance
Returns:
  the distance value

### distance

public double distance(Instance first, Instance second)
distance between two instances

Parameters:
  `first` - the first instance
  `second` - the other instance
Returns:
  the distance in double precision

### distributionForInstance

public double[] distributionForInstance(Instance bag) throws Exception
Computes the distribution for a given exemplar

Overrides:
  `distributionForInstance` in class `Classifier`
Parameters:
  `bag` - the exemplar for which distribution is computed
Returns:
  the distribution
Throws:
  `Exception` - if the distribution can't be computed successfully

### updateNormalization

public void updateNormalization(Instance bag)
Updates the normalization of each attribute.

Parameters:
  `bag` - the exemplar to update the normalization for

### equalExemplars

public boolean equalExemplars(Instance exemplar1, Instance exemplar2)
Wether the instances of two exemplars are or are not equal

Parameters:
  `exemplar1` - first exemplar
  `exemplar2` - second exemplar
Returns:
  if the instances of the exemplars are equal or not

### listOptions

public Enumeration listOptions()
Returns an enumeration of all the available options..

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

### setOptions

public void setOptions(String[] options) throws Exception
Sets the OptionHandler's options using the given list. All options will be set (or reset) during this call (i.e. incremental setting of options is not possible).

Valid options are:

     -R <number of references>
      Number of Nearest References (default 1)

     -C <number of citers>
      Number of Nearest Citers (default 1)

     -H <rank>
      Rank of the Hausdorff Distance (default 1)

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

### getOptions

public String[] getOptions()
Gets the current option settings for the OptionHandler.

Specified by:
  `getOptions` in interface `OptionHandler`
Overrides:
  `getOptions` in class `Classifier`
Returns:
  the list of current option settings as an array of strings

### toString

public String toString()
returns a string representation of the classifier

Overrides:
  `toString` in class `Object`
Returns:
  the string representation

### getRevision

public String getRevision()
Returns the revision string.

Specified by:
  `getRevision` in interface `RevisionHandler`
Overrides:
  `getRevision` in class `Classifier`
Returns:
  the revision

### main

public static void main(String[] argv)
Main method for testing this class.

Parameters:
  `argv` - should contain the command line arguments to the scheme (see Evaluation)