Package weka.classifiers.functions
Class LibLINEAR
- java.lang.Object
-
- weka.classifiers.Classifier
-
- weka.classifiers.functions.LibLINEAR
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,CapabilitiesHandler
,OptionHandler
,RevisionHandler
,TechnicalInformationHandler
public class LibLINEAR extends Classifier implements TechnicalInformationHandler
A wrapper class for the liblinear tools (the liblinear classes, typically the jar file, need to be in the classpath to use this classifier).
Rong-En Fan, Kai-Wei Chang, Cho-Jui Hsieh, Xiang-Rui Wang, Chih-Jen Lin (2008). LIBLINEAR - A Library for Large Linear Classification. URL http://www.csie.ntu.edu.tw/~cjlin/liblinear/. BibTeX:@misc{Fan2008, author = {Rong-En Fan and Kai-Wei Chang and Cho-Jui Hsieh and Xiang-Rui Wang and Chih-Jen Lin}, note = {The Weka classifier works with version 1.33 of LIBLINEAR}, title = {LIBLINEAR - A Library for Large Linear Classification}, year = {2008}, URL = {http://www.csie.ntu.edu.tw/\~cjlin/liblinear/} }
Valid options are:-S <int> Set type of solver (default: 1) 0 = L2-regularized logistic regression 1 = L2-loss support vector machines (dual) 2 = L2-loss support vector machines (primal) 3 = L1-loss support vector machines (dual) 4 = multi-class support vector machines by Crammer and Singer
-C <double> Set the cost parameter C (default: 1)
-Z Turn on normalization of input data (default: off)
-N Turn on nominal to binary conversion.
-M Turn off missing value replacement. WARNING: use only if your data has no missing values.
-P Use probability estimation (default: off) currently for L2-regularized logistic regression only!
-E <double> Set tolerance of termination criterion (default: 0.01)
-W <double> Set the parameters C of class i to weight[i]*C (default: 1)
-B <double> Add Bias term with the given value if >= 0; if < 0, no bias term added (default: 1)
-D If set, classifier is run in debug mode and may output additional info to the console
- Version:
- $Revision: 5917 $
- Author:
- Benedikt Waldvogel (mail at bwaldvogel.de)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
SVMTYPE_L1LOSS_SVM_DUAL
SVM solver type L1-loss support vector machines (dual)static int
SVMTYPE_L2_LR
SVM solver type L2-regularized logistic regressionstatic int
SVMTYPE_L2LOSS_SVM
SVM solver type L2-loss support vector machines (primal)static int
SVMTYPE_L2LOSS_SVM_DUAL
SVM solver type L2-loss support vector machines (dual)static int
SVMTYPE_MCSVM_CS
SVM solver type multi-class support vector machines by Crammer and Singerstatic Tag[]
TAGS_SVMTYPE
SVM solver types
-
Constructor Summary
Constructors Constructor Description LibLINEAR()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
biasTipText()
Returns the tip text for this propertyvoid
buildClassifier(Instances insts)
builds the classifierjava.lang.String
convertNominalToBinaryTipText()
Returns the tip text for this propertyjava.lang.String
costTipText()
Returns the tip text for this propertydouble[]
distributionForInstance(Instance instance)
Computes the distribution for a given instance.java.lang.String
doNotReplaceMissingValuesTipText()
Returns the tip text for this propertyjava.lang.String
epsTipText()
Returns the tip text for this propertydouble
getBias()
Returns bias term value (default 1) No bias term is added if value < 0Capabilities
getCapabilities()
Returns default capabilities of the classifier.boolean
getConvertNominalToBinary()
Gets whether conversion of nominal to binary is turned on.double
getCost()
Returns the cost parameter Cboolean
getDoNotReplaceMissingValues()
Gets whether automatic replacement of missing values is disabled.double
getEps()
Gets tolerance of termination criterionjava.lang.Object
getModel()
boolean
getNormalize()
whether to normalize input datajava.lang.String[]
getOptions()
Returns the current optionsboolean
getProbabilityEstimates()
Sets whether to generate probability estimates instead of -1/+1 for classification problems.java.lang.String
getRevision()
Returns the revision string.SelectedTag
getSVMType()
Gets type of SVMTechnicalInformation
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.java.lang.String
getWeights()
Gets the parameters C of class i to weight[i]*C (default 1).java.lang.String
globalInfo()
Returns a string describing classifierstatic boolean
isPresent()
returns whether the liblinear classes are present or not, i.e.java.util.Enumeration
listOptions()
Returns an enumeration describing the available options.static void
main(java.lang.String[] args)
Main method for testing this class.java.lang.String
normalizeTipText()
Returns the tip text for this propertyjava.lang.String
probabilityEstimatesTipText()
Returns the tip text for this propertyvoid
setBias(double value)
Sets bias term value (default 1) No bias term is added if value < 0void
setConvertNominalToBinary(boolean b)
Whether to turn on conversion of nominal attributes to binary.void
setCost(double value)
Sets the cost parameter C (default 1)void
setDoNotReplaceMissingValues(boolean b)
Whether to turn off automatic replacement of missing values.void
setEps(double value)
Sets tolerance of termination criterion (default 0.001)void
setNormalize(boolean value)
whether to normalize input datavoid
setOptions(java.lang.String[] options)
Sets the classifier optionsvoid
setProbabilityEstimates(boolean value)
Returns whether probability estimates are generated instead of -1/+1 for classification problems.void
setSVMType(SelectedTag value)
Sets type of SVM (default SVMTYPE_L2)void
setWeights(java.lang.String weightsStr)
Sets the parameters C of class i to weight[i]*C (default 1).java.lang.String
SVMTypeTipText()
Returns the tip text for this propertyjava.lang.String
toString()
returns a string representationjava.lang.String
weightsTipText()
Returns the tip text for this property-
Methods inherited from class weka.classifiers.Classifier
classifyInstance, debugTipText, forName, getDebug, makeCopies, makeCopy, setDebug
-
-
-
-
Field Detail
-
SVMTYPE_L2_LR
public static final int SVMTYPE_L2_LR
SVM solver type L2-regularized logistic regression- See Also:
- Constant Field Values
-
SVMTYPE_L2LOSS_SVM_DUAL
public static final int SVMTYPE_L2LOSS_SVM_DUAL
SVM solver type L2-loss support vector machines (dual)- See Also:
- Constant Field Values
-
SVMTYPE_L2LOSS_SVM
public static final int SVMTYPE_L2LOSS_SVM
SVM solver type L2-loss support vector machines (primal)- See Also:
- Constant Field Values
-
SVMTYPE_L1LOSS_SVM_DUAL
public static final int SVMTYPE_L1LOSS_SVM_DUAL
SVM solver type L1-loss support vector machines (dual)- See Also:
- Constant Field Values
-
SVMTYPE_MCSVM_CS
public static final int SVMTYPE_MCSVM_CS
SVM solver type multi-class support vector machines by Crammer and Singer- See Also:
- Constant Field Values
-
TAGS_SVMTYPE
public static final Tag[] TAGS_SVMTYPE
SVM solver types
-
-
Method Detail
-
getModel
public java.lang.Object getModel()
-
globalInfo
public java.lang.String globalInfo()
Returns a string describing classifier- Returns:
- a description 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 interfaceTechnicalInformationHandler
- Returns:
- the technical information about this class
-
listOptions
public java.util.Enumeration listOptions()
Returns an enumeration describing the available options.- Specified by:
listOptions
in interfaceOptionHandler
- Overrides:
listOptions
in classClassifier
- Returns:
- an enumeration of all the available options.
-
setOptions
public void setOptions(java.lang.String[] options) throws java.lang.Exception
Sets the classifier options Valid options are:-S <int> Set type of solver (default: 1) 0 = L2-regularized logistic regression 1 = L2-loss support vector machines (dual) 2 = L2-loss support vector machines (primal) 3 = L1-loss support vector machines (dual) 4 = multi-class support vector machines by Crammer and Singer
-C <double> Set the cost parameter C (default: 1)
-Z Turn on normalization of input data (default: off)
-N Turn on nominal to binary conversion.
-M Turn off missing value replacement. WARNING: use only if your data has no missing values.
-P Use probability estimation (default: off) currently for L2-regularized logistic regression only!
-E <double> Set tolerance of termination criterion (default: 0.01)
-W <double> Set the parameters C of class i to weight[i]*C (default: 1)
-B <double> Add Bias term with the given value if >= 0; if < 0, no bias term added (default: 1)
-D If set, classifier is run in debug mode and may output additional info to the console
- Specified by:
setOptions
in interfaceOptionHandler
- Overrides:
setOptions
in classClassifier
- Parameters:
options
- the options to parse- Throws:
java.lang.Exception
- if parsing fails
-
getOptions
public java.lang.String[] getOptions()
Returns the current options- Specified by:
getOptions
in interfaceOptionHandler
- Overrides:
getOptions
in classClassifier
- Returns:
- the current setup
-
isPresent
public static boolean isPresent()
returns whether the liblinear classes are present or not, i.e. whether the classes are in the classpath or not- Returns:
- whether the liblinear classes are available
-
setSVMType
public void setSVMType(SelectedTag value)
Sets type of SVM (default SVMTYPE_L2)- Parameters:
value
- the type of the SVM
-
getSVMType
public SelectedTag getSVMType()
Gets type of SVM- Returns:
- the type of the SVM
-
SVMTypeTipText
public java.lang.String SVMTypeTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setCost
public void setCost(double value)
Sets the cost parameter C (default 1)- Parameters:
value
- the cost value
-
getCost
public double getCost()
Returns the cost parameter C- Returns:
- the cost value
-
costTipText
public java.lang.String costTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setEps
public void setEps(double value)
Sets tolerance of termination criterion (default 0.001)- Parameters:
value
- the tolerance
-
getEps
public double getEps()
Gets tolerance of termination criterion- Returns:
- the current tolerance
-
epsTipText
public java.lang.String epsTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setBias
public void setBias(double value)
Sets bias term value (default 1) No bias term is added if value < 0- Parameters:
value
- the bias term value
-
getBias
public double getBias()
Returns bias term value (default 1) No bias term is added if value < 0- Returns:
- the bias term value
-
biasTipText
public java.lang.String biasTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
normalizeTipText
public java.lang.String normalizeTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setNormalize
public void setNormalize(boolean value)
whether to normalize input data- Parameters:
value
- whether to normalize the data
-
getNormalize
public boolean getNormalize()
whether to normalize input data- Returns:
- true, if the data is normalized
-
convertNominalToBinaryTipText
public java.lang.String convertNominalToBinaryTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setConvertNominalToBinary
public void setConvertNominalToBinary(boolean b)
Whether to turn on conversion of nominal attributes to binary.- Parameters:
b
- true if nominal to binary conversion is to be turned on
-
getConvertNominalToBinary
public boolean getConvertNominalToBinary()
Gets whether conversion of nominal to binary is turned on.- Returns:
- true if nominal to binary conversion is turned on.
-
doNotReplaceMissingValuesTipText
public java.lang.String doNotReplaceMissingValuesTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setDoNotReplaceMissingValues
public void setDoNotReplaceMissingValues(boolean b)
Whether to turn off automatic replacement of missing values. Set to true only if the data does not contain missing values.- Parameters:
b
- true if automatic missing values replacement is to be disabled.
-
getDoNotReplaceMissingValues
public boolean getDoNotReplaceMissingValues()
Gets whether automatic replacement of missing values is disabled.- Returns:
- true if automatic replacement of missing values is disabled.
-
setWeights
public void setWeights(java.lang.String weightsStr)
Sets the parameters C of class i to weight[i]*C (default 1). Blank separated list of doubles.- Parameters:
weightsStr
- the weights (doubles, separated by blanks)
-
getWeights
public java.lang.String getWeights()
Gets the parameters C of class i to weight[i]*C (default 1). Blank separated doubles.- Returns:
- the weights (doubles separated by blanks)
-
weightsTipText
public java.lang.String weightsTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setProbabilityEstimates
public void setProbabilityEstimates(boolean value)
Returns whether probability estimates are generated instead of -1/+1 for classification problems.- Parameters:
value
- whether to predict probabilities
-
getProbabilityEstimates
public boolean getProbabilityEstimates()
Sets whether to generate probability estimates instead of -1/+1 for classification problems.- Returns:
- true, if probability estimates should be returned
-
probabilityEstimatesTipText
public java.lang.String probabilityEstimatesTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
distributionForInstance
public double[] distributionForInstance(Instance instance) throws java.lang.Exception
Computes the distribution for a given instance.- Overrides:
distributionForInstance
in classClassifier
- Parameters:
instance
- the instance for which distribution is computed- Returns:
- the distribution
- Throws:
java.lang.Exception
- if the distribution can't be computed successfully
-
getCapabilities
public Capabilities getCapabilities()
Returns default capabilities of the classifier.- Specified by:
getCapabilities
in interfaceCapabilitiesHandler
- Overrides:
getCapabilities
in classClassifier
- Returns:
- the capabilities of this classifier
- See Also:
Capabilities
-
buildClassifier
public void buildClassifier(Instances insts) throws java.lang.Exception
builds the classifier- Specified by:
buildClassifier
in classClassifier
- Parameters:
insts
- the training instances- Throws:
java.lang.Exception
- if liblinear classes not in classpath or liblinear encountered a problem
-
toString
public java.lang.String toString()
returns a string representation- Overrides:
toString
in classjava.lang.Object
- Returns:
- a string representation
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classClassifier
- Returns:
- the revision
-
main
public static void main(java.lang.String[] args)
Main method for testing this class.- Parameters:
args
- the options
-
-