weka.classifiers.misc
Class OSDL
java.lang.Object
weka.classifiers.Classifier
weka.classifiers.misc.monotone.OSDLCore
weka.classifiers.misc.OSDL
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, 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: 1.2 $
- Author:
- Stijn Lievens (stijn.lievens@ugent.be)
- See Also:
- Serialized Form
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 java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
OSDL
public OSDL()
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.
- 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.
- 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