|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectweka.classifiers.Classifier
weka.classifiers.SingleClassifierEnhancer
weka.classifiers.RandomizableSingleClassifierEnhancer
weka.classifiers.meta.ThresholdSelector
public class ThresholdSelector
A metaclassifier that selecting a mid-point threshold on the probability output by a Classifier. The midpoint threshold is set so that a given performance measure is optimized. Currently this is the F-measure. Performance is measured either on the training data, a hold-out set or using cross-validation. In addition, the probabilities returned by the base learner can have their range expanded so that the output probabilities will reside between 0 and 1 (this is useful if the scheme normally produces probabilities in a very narrow range).
Valid options are:-C <integer> The class for which threshold is determined. Valid values are: 1, 2 (for first and second classes, respectively), 3 (for whichever class is least frequent), and 4 (for whichever class value is most frequent), and 5 (for the first class named any of "yes","pos(itive)" "1", or method 3 if no matches). (default 5).
-X <number of folds> Number of folds used for cross validation. If just a hold-out set is used, this determines the size of the hold-out set (default 3).
-R <integer> Sets whether confidence range correction is applied. This can be used to ensure the confidences range from 0 to 1. Use 0 for no range correction, 1 for correction based on the min/max values seen during threshold selection (default 0).
-E <integer> Sets the evaluation mode. Use 0 for evaluation using cross-validation, 1 for evaluation using hold-out set, and 2 for evaluation on the training data (default 1).
-M [FMEASURE|ACCURACY|TRUE_POS|TRUE_NEG|TP_RATE|PRECISION|RECALL] Measure used for evaluation (default is FMEASURE).
-manual <real> Sets a manual threshold to use. If set (non-negative value between 0 and 1), then all options pertaining to automatic threshold selection are ignored (default -1, i.e. do not use a manual threshold).
-S <num> Random number seed. (default 1)
-D If set, classifier is run in debug mode and may output additional info to the console
-W Full name of base classifier. (default: weka.classifiers.functions.Logistic)
Options specific to classifier weka.classifiers.functions.Logistic:
-D Turn on debugging output.
-R <ridge> Set the ridge in the log-likelihood.
-M <number> Set the maximum number of iterations (default -1, until convergence).Options after -- are passed to the designated sub-classifier.
Field Summary | |
---|---|
static int |
ACCURACY
accuracy |
static int |
EVAL_CROSS_VALIDATION
n-fold cross-validation |
static int |
EVAL_TRAINING_SET
entire training set |
static int |
EVAL_TUNED_SPLIT
single tuned fold |
static int |
FMEASURE
F-measure |
static int |
OPTIMIZE_0
first class value |
static int |
OPTIMIZE_1
second class value |
static int |
OPTIMIZE_LFREQ
least frequent class value |
static int |
OPTIMIZE_MFREQ
most frequent class value |
static int |
OPTIMIZE_POS_NAME
class value name, either 'yes' or 'pos(itive)' |
static int |
PRECISION
precision |
static int |
RANGE_BOUNDS
Correct based on min/max observed |
static int |
RANGE_NONE
no range correction |
static int |
RECALL
recall |
static Tag[] |
TAGS_EVAL
The evaluation modes |
static Tag[] |
TAGS_MEASURE
the measure to use |
static Tag[] |
TAGS_OPTIMIZE
How to determine which class value to optimize for |
static Tag[] |
TAGS_RANGE
Type of correction applied to threshold range |
static int |
TP_RATE
true-positive rate |
static int |
TRUE_NEG
true-negative |
static int |
TRUE_POS
true-positive |
Fields inherited from interface weka.core.Drawable |
---|
BayesNet, NOT_DRAWABLE, TREE |
Constructor Summary | |
---|---|
ThresholdSelector()
Constructor. |
Method Summary | |
---|---|
void |
buildClassifier(Instances instances)
Generates the classifier. |
java.lang.String |
designatedClassTipText()
|
double[] |
distributionForInstance(Instance instance)
Calculates the class membership probabilities for the given test instance. |
java.lang.String |
evaluationModeTipText()
|
Capabilities |
getCapabilities()
Returns default capabilities of the classifier. |
SelectedTag |
getDesignatedClass()
Gets the method to determine which class value to optimize. |
SelectedTag |
getEvaluationMode()
Gets the evaluation mode used. |
double |
getManualThresholdValue()
Returns the value of the manual threshold. |
SelectedTag |
getMeasure()
get measure used for determining threshold |
int |
getNumXValFolds()
Get the number of folds used for cross-validation. |
java.lang.String[] |
getOptions()
Gets the current settings of the Classifier. |
SelectedTag |
getRangeCorrection()
Gets the confidence range correction mode used. |
java.lang.String |
globalInfo()
|
java.lang.String |
graph()
Returns graph describing the classifier (if possible). |
int |
graphType()
Returns the type of graph this classifier represents. |
java.util.Enumeration |
listOptions()
Returns an enumeration describing the available options. |
static void |
main(java.lang.String[] argv)
Main method for testing this class. |
java.lang.String |
manualThresholdValueTipText()
|
java.lang.String |
measureTipText()
Tooltip for this property. |
java.lang.String |
numXValFoldsTipText()
|
java.lang.String |
rangeCorrectionTipText()
|
void |
setDesignatedClass(SelectedTag newMethod)
Sets the method to determine which class value to optimize. |
void |
setEvaluationMode(SelectedTag newMethod)
Sets the evaluation mode used. |
void |
setManualThresholdValue(double threshold)
Sets the value for a manual threshold. |
void |
setMeasure(SelectedTag newMeasure)
set measure used for determining threshold |
void |
setNumXValFolds(int newNumFolds)
Set the number of folds used for cross-validation. |
void |
setOptions(java.lang.String[] options)
Parses a given list of options. |
void |
setRangeCorrection(SelectedTag newMethod)
Sets the confidence range correction mode used. |
java.lang.String |
toString()
Returns description of the cross-validated classifier. |
Methods inherited from class weka.classifiers.RandomizableSingleClassifierEnhancer |
---|
getSeed, seedTipText, setSeed |
Methods inherited from class weka.classifiers.SingleClassifierEnhancer |
---|
classifierTipText, getClassifier, setClassifier |
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 |
Field Detail |
---|
public static final int RANGE_NONE
public static final int RANGE_BOUNDS
public static final Tag[] TAGS_RANGE
public static final int EVAL_TRAINING_SET
public static final int EVAL_TUNED_SPLIT
public static final int EVAL_CROSS_VALIDATION
public static final Tag[] TAGS_EVAL
public static final int OPTIMIZE_0
public static final int OPTIMIZE_1
public static final int OPTIMIZE_LFREQ
public static final int OPTIMIZE_MFREQ
public static final int OPTIMIZE_POS_NAME
public static final Tag[] TAGS_OPTIMIZE
public static final int FMEASURE
public static final int ACCURACY
public static final int TRUE_POS
public static final int TRUE_NEG
public static final int TP_RATE
public static final int PRECISION
public static final int RECALL
public static final Tag[] TAGS_MEASURE
Constructor Detail |
---|
public ThresholdSelector()
Method Detail |
---|
public java.lang.String measureTipText()
public void setMeasure(SelectedTag newMeasure)
newMeasure
- Tag representing measure to be usedpublic SelectedTag getMeasure()
public java.util.Enumeration listOptions()
listOptions
in interface OptionHandler
listOptions
in class RandomizableSingleClassifierEnhancer
public void setOptions(java.lang.String[] options) throws java.lang.Exception
-C <integer> The class for which threshold is determined. Valid values are: 1, 2 (for first and second classes, respectively), 3 (for whichever class is least frequent), and 4 (for whichever class value is most frequent), and 5 (for the first class named any of "yes","pos(itive)" "1", or method 3 if no matches). (default 5).
-X <number of folds> Number of folds used for cross validation. If just a hold-out set is used, this determines the size of the hold-out set (default 3).
-R <integer> Sets whether confidence range correction is applied. This can be used to ensure the confidences range from 0 to 1. Use 0 for no range correction, 1 for correction based on the min/max values seen during threshold selection (default 0).
-E <integer> Sets the evaluation mode. Use 0 for evaluation using cross-validation, 1 for evaluation using hold-out set, and 2 for evaluation on the training data (default 1).
-M [FMEASURE|ACCURACY|TRUE_POS|TRUE_NEG|TP_RATE|PRECISION|RECALL] Measure used for evaluation (default is FMEASURE).
-S <num> Random number seed. (default 1)
-D If set, classifier is run in debug mode and may output additional info to the console
-W Full name of base classifier. (default: weka.classifiers.functions.Logistic)
Options specific to classifier weka.classifiers.functions.Logistic:
-D Turn on debugging output.
-R <ridge> Set the ridge in the log-likelihood.
-M <number> Set the maximum number of iterations (default -1, until convergence).Options after -- are passed to the designated sub-classifier.
setOptions
in interface OptionHandler
setOptions
in class RandomizableSingleClassifierEnhancer
options
- the list of options as an array of strings
java.lang.Exception
- if an option is not supportedpublic java.lang.String[] getOptions()
getOptions
in interface OptionHandler
getOptions
in class RandomizableSingleClassifierEnhancer
public Capabilities getCapabilities()
getCapabilities
in interface CapabilitiesHandler
getCapabilities
in class SingleClassifierEnhancer
Capabilities
public void buildClassifier(Instances instances) throws java.lang.Exception
buildClassifier
in class Classifier
instances
- set of instances serving as training data
java.lang.Exception
- if the classifier has not been generated successfullypublic double[] distributionForInstance(Instance instance) throws java.lang.Exception
distributionForInstance
in class Classifier
instance
- the instance to be classified
java.lang.Exception
- if instance could not be classified
successfullypublic java.lang.String globalInfo()
public java.lang.String designatedClassTipText()
public SelectedTag getDesignatedClass()
public void setDesignatedClass(SelectedTag newMethod)
newMethod
- the new class selection mode.public java.lang.String evaluationModeTipText()
public void setEvaluationMode(SelectedTag newMethod)
newMethod
- the new evaluation mode.public SelectedTag getEvaluationMode()
public java.lang.String rangeCorrectionTipText()
public void setRangeCorrection(SelectedTag newMethod)
newMethod
- the new correciton mode.public SelectedTag getRangeCorrection()
public java.lang.String numXValFoldsTipText()
public int getNumXValFolds()
public void setNumXValFolds(int newNumFolds)
newNumFolds
- the number of folds used for cross-validation.public int graphType()
graphType
in interface Drawable
public java.lang.String graph() throws java.lang.Exception
graph
in interface Drawable
java.lang.Exception
- if the classifier cannot be graphedpublic java.lang.String manualThresholdValueTipText()
public void setManualThresholdValue(double threshold) throws java.lang.Exception
threshold
- the manual threshold to use
java.lang.Exception
public double getManualThresholdValue()
public java.lang.String toString()
toString
in class java.lang.Object
public static void main(java.lang.String[] argv)
argv
- the options
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |