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.classifiers.misc
Class OSDL

    java.lang.Object
      weka.classifiers.AbstractClassifier
          weka.classifiers.misc.monotone.OSDLCore
              weka.classifiers.misc.OSDL

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, Classifier, CapabilitiesHandler, OptionHandler, RevisionHandler, TechnicalInformationHandler

    public class OSDL

extends OSDLCore

This class is an implementation of the Ordinal Stochastic Dominance Learner.
Further information regarding the OSDL-algorithm can be found in:
S. Lievens, B. De Baets, K. Cao-Van (2006). A Probabilistic Framework for the Design of Instance-Based Supervised Ranking Algorithms in an Ordinal Setting. Annals of Operations Research..
Kim Cao-Van (2003). Supervised ranking: from semantics to algorithms.
Stijn Lievens (2004). Studie en implementatie van instantie-gebaseerde algoritmen voor gesuperviseerd rangschikken.
For more information about supervised ranking, see
http://users.ugent.be/~slievens/supervised_ranking.php

BibTeX:

     @article{Lievens2006,
        author = {S. Lievens and B. De Baets and K. Cao-Van},
        journal = {Annals of Operations Research},
        title = {A Probabilistic Framework for the Design of Instance-Based Supervised Ranking Algorithms in an Ordinal Setting},
        year = {2006}
     }

     @phdthesis{Cao-Van2003,
        author = {Kim Cao-Van},
        school = {Ghent University},
        title = {Supervised ranking: from semantics to algorithms},
        year = {2003}
     }

     @mastersthesis{Lievens2004,
        author = {Stijn Lievens},
        school = {Ghent University},
        title = {Studie en implementatie van instantie-gebaseerde algoritmen voor gesuperviseerd rangschikken},
        year = {2004}
     }

Valid options are:

     -D
      If set, classifier is run in debug mode and
      may output additional info to the console

     -C <REG|WSUM|MAX|MED|RMED>
      Sets the classification type to be used.
      (Default: MED)

     -B
      Use the balanced version of the Ordinal Stochastic Dominance Learner

     -W
      Use the weighted version of the Ordinal Stochastic Dominance Learner

     -S <value of interpolation parameter>
      Sets the value of the interpolation parameter (not with -W/T/P/L/U)
      (default: 0.5).

     -T
      Tune the interpolation parameter (not with -W/S)
      (default: off)

     -L <Lower bound for interpolation parameter>
      Lower bound for the interpolation parameter (not with -W/S)
      (default: 0)

     -U <Upper bound for interpolation parameter>
      Upper bound for the interpolation parameter (not with -W/S)
      (default: 1)

     -P <Number of parts>
      Determines the step size for tuning the interpolation
      parameter, nl. (U-L)/P (not with -W/S)
      (default: 10)

More precisely, this is a simple extension of the OSDLCore class, so that the OSDLCore class can be used within the WEKA environment. The problem with OSDLCore is that it implements both `classifyInstance` and `distributionForInstance` in a non trivial way.

One can evaluate a model easily with the method `evaluateModel` from the `Evaluation` class. However, for nominal classes they do the following: they use `distributionForInstance` and then pick the class with maximal probability. This procedure is not valid for a ranking algorithm, since this destroys the required monotonicity property.

This class reimplements `distributionForInstance` in the following way: first `classifyInstance` of `OSDLCore` is used and the chosen label then gets assigned probability one. This ensures that the classification accuracy is calculated correctly, but possibly some other statistics are no longer meaningful.

Version:
  $Revision: 5987 $
Author:
  Stijn Lievens (stijn.lievens@ugent.be)
See Also:
  Serialized Form

Field Summary

Fields inherited from class weka.classifiers.misc.monotone.OSDLCore
`CT_MAXPROB, CT_MEDIAN, CT_MEDIAN_REAL, CT_REGRESSION, CT_WEIGHTED_SUM, TAGS_CLASSIFICATIONTYPES`

Constructor Summary
`OSDL()`

Method Summary
`double[]` | `distributionForInstance(Instance instance)` Use `classifyInstance` from `OSDLCore` and assign probability one to the chosen label.
`java.lang.String` | `getRevision()` Returns the revision string.
`static void` | `main(java.lang.String[] args)` Main method for testing this class and for using it from the command line.

Methods inherited from class weka.classifiers.misc.monotone.OSDLCore
`balancedTipText, buildClassifier, classificationTypeTipText, classifyInstance, crossValidate, crossValidate, crossValidate, cumulativeDistributionForInstance, getBalanced, getCapabilities, getClassificationType, getInterpolationParameter, getInterpolationParameterLowerBound, getInterpolationParameterUpperBound, getLowerBound, getNumberOfPartsForInterpolationParameter, getNumInstances, getOptions, getTechnicalInformation, getTuneInterpolationParameter, getUpperBound, getWeighted, globalInfo, interpolationParameterLowerBoundTipText, interpolationParameterTipText, interpolationParameterUpperBoundTipText, listOptions, numberOfPartsForInterpolationParameterTipText, setBalanced, setClassificationType, setInterpolationParameter, setInterpolationParameterBounds, setInterpolationParameterLowerBound, setInterpolationParameterUpperBound, setNumberOfPartsForInterpolationParameter, setOptions, setTuneInterpolationParameter, setWeighted, toString, tuneInterpolationParameter, tuneInterpolationParameter, tuneInterpolationParameterTipText, weightedTipText`

Methods inherited from class weka.classifiers.AbstractClassifier
`debugTipText, forName, getDebug, makeCopies, makeCopy, setDebug`

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

Constructor Detail

### OSDL

    public OSDL()

Method Detail

### distributionForInstance

    public double[] distributionForInstance(Instance instance)

  Use `classifyInstance` from `OSDLCore` and assign probability one to the chosen label. The implementation is heavily based on the same method in the `Classifier` class.

  Specified by:
    `distributionForInstance` in interface `Classifier`
  Overrides:
    `distributionForInstance` in class `OSDLCore`
  Parameters:
    `instance` - the instance to be classified
  Returns:
    an array containing a single '1' on the index that `classifyInstance` returns.

### getRevision

    public java.lang.String getRevision()

  Returns the revision string.

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

### main

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

  Main method for testing this class and for using it from the command line.

  Parameters:
    `args` - array of options for both the classifier `OSDL` and for `evaluateModel`

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