public class ThresholdSelector extends RandomizableSingleClassifierEnhancer implements OptionHandler, Drawable
-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> Set a manual threshold to use. This option overrides automatic selection and options pertaining to automatic selection will be 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.
| Modifier and Type | Field and Description |
|---|---|
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
|
BayesNet, Newick, NOT_DRAWABLE, TREE| Constructor and Description |
|---|
ThresholdSelector()
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
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 |
getRevision()
Returns the revision string.
|
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.
|
getSeed, seedTipText, setSeedclassifierTipText, getClassifier, setClassifierclassifyInstance, debugTipText, forName, getDebug, makeCopies, makeCopy, setDebugpublic 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
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 OptionHandlerlistOptions in class RandomizableSingleClassifierEnhancerpublic 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).
-manual <real> Set a manual threshold to use. This option overrides automatic selection and options pertaining to automatic selection will be 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.
setOptions in interface OptionHandlersetOptions in class RandomizableSingleClassifierEnhanceroptions - the list of options as an array of stringsjava.lang.Exception - if an option is not supportedpublic java.lang.String[] getOptions()
getOptions in interface OptionHandlergetOptions in class RandomizableSingleClassifierEnhancerpublic Capabilities getCapabilities()
getCapabilities in interface CapabilitiesHandlergetCapabilities in class SingleClassifierEnhancerCapabilitiespublic void buildClassifier(Instances instances) throws java.lang.Exception
buildClassifier in class Classifierinstances - set of instances serving as training datajava.lang.Exception - if the classifier has not been generated successfullypublic double[] distributionForInstance(Instance instance) throws java.lang.Exception
distributionForInstance in class Classifierinstance - the instance to be classifiedjava.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()
public java.lang.String graph()
throws java.lang.Exception
public java.lang.String manualThresholdValueTipText()
public void setManualThresholdValue(double threshold)
throws java.lang.Exception
threshold - the manual threshold to usejava.lang.Exceptionpublic double getManualThresholdValue()
public java.lang.String toString()
toString in class java.lang.Objectpublic java.lang.String getRevision()
getRevision in interface RevisionHandlergetRevision in class Classifierpublic static void main(java.lang.String[] argv)
argv - the options