|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectweka.classifiers.Classifier
weka.classifiers.functions.LibSVM
public class LibSVM
A wrapper class for the libsvm tools (the libsvm classes, typically the jar file, need to be in the classpath to use this classifier).
LibSVM runs faster than SMO since it uses LibSVM to build the SVM classifier.
LibSVM allows users to experiment with One-class SVM, Regressing SVM, and nu-SVM supported by LibSVM tool. LibSVM reports many useful statistics about LibSVM classifier (e.g., confusion matrix,precision, recall, ROC score, etc.).
Yasser EL-Manzalawy (2005). WLSVM. URL http://www.cs.iastate.edu/~yasser/wlsvm/.
Chih-Chung Chang, Chih-Jen Lin (2001). LIBSVM - A Library for Support Vector Machines. URL http://www.csie.ntu.edu.tw/~cjlin/libsvm/.
@misc{EL-Manzalawy2005, author = {Yasser EL-Manzalawy}, note = {You don't need to include the WLSVM package in the CLASSPATH}, title = {WLSVM}, year = {2005}, URL = {http://www.cs.iastate.edu/\~yasser/wlsvm/} } @misc{Chang2001, author = {Chih-Chung Chang and Chih-Jen Lin}, note = {The Weka classifier works with version 2.82 of LIBSVM}, title = {LIBSVM - A Library for Support Vector Machines}, year = {2001}, URL = {http://www.csie.ntu.edu.tw/\~cjlin/libsvm/} }Valid options are:
-S <int> Set type of SVM (default: 0) 0 = C-SVC 1 = nu-SVC 2 = one-class SVM 3 = epsilon-SVR 4 = nu-SVR
-K <int> Set type of kernel function (default: 2) 0 = linear: u'*v 1 = polynomial: (gamma*u'*v + coef0)^degree 2 = radial basis function: exp(-gamma*|u-v|^2) 3 = sigmoid: tanh(gamma*u'*v + coef0)
-D <int> Set degree in kernel function (default: 3)
-G <double> Set gamma in kernel function (default: 1/k)
-R <double> Set coef0 in kernel function (default: 0)
-C <double> Set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default: 1)
-N <double> Set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default: 0.5)
-Z Turns on normalization of input data (default: off)
-P <double> Set the epsilon in loss function of epsilon-SVR (default: 0.1)
-M <double> Set cache memory size in MB (default: 40)
-E <double> Set tolerance of termination criterion (default: 0.001)
-H Turns the shrinking heuristics off (default: on)
-W <double> Set the parameters C of class i to weight[i]*C, for C-SVC (default: 1)
-B Trains a SVC model instead of a SVR one (default: SVR)
-D If set, classifier is run in debug mode and may output additional info to the console
LibSVMLoader
,
LibSVMSaver
,
Serialized FormField Summary | |
---|---|
static int |
KERNELTYPE_LINEAR
kernel type linear: u'*v |
static int |
KERNELTYPE_POLYNOMIAL
kernel type polynomial: (gamma*u'*v + coef0)^degree |
static int |
KERNELTYPE_RBF
kernel type radial basis function: exp(-gamma*|u-v|^2) |
static int |
KERNELTYPE_SIGMOID
kernel type sigmoid: tanh(gamma*u'*v + coef0) |
static int |
SVMTYPE_C_SVC
SVM type C-SVC (classification) |
static int |
SVMTYPE_EPSILON_SVR
SVM type epsilon-SVR (regression) |
static int |
SVMTYPE_NU_SVC
SVM type nu-SVC (classification) |
static int |
SVMTYPE_NU_SVR
SVM type nu-SVR (regression) |
static int |
SVMTYPE_ONE_CLASS_SVM
SVM type one-class SVM (classification) |
static Tag[] |
TAGS_KERNELTYPE
the different kernel types |
static Tag[] |
TAGS_SVMTYPE
SVM types |
Constructor Summary | |
---|---|
LibSVM()
|
Method Summary | |
---|---|
void |
buildClassifier(Instances insts)
builds the classifier |
java.lang.String |
cacheSizeTipText()
Returns the tip text for this property |
java.lang.String |
coef0TipText()
Returns the tip text for this property |
java.lang.String |
costTipText()
Returns the tip text for this property |
java.lang.String |
degreeTipText()
Returns the tip text for this property |
double[] |
distributionForInstance(Instance instance)
Computes the distribution for a given instance. |
java.lang.String |
doNotReplaceMissingValuesTipText()
Returns the tip text for this property |
java.lang.String |
epsTipText()
Returns the tip text for this property |
java.lang.String |
gammaTipText()
Returns the tip text for this property |
double |
getCacheSize()
Gets cache memory size in MB |
Capabilities |
getCapabilities()
Returns default capabilities of the classifier. |
double |
getCoef0()
Gets coef |
double |
getCost()
Sets the parameter C of C-SVC, epsilon-SVR, and nu-SVR |
int |
getDegree()
Gets the degree of the kernel |
boolean |
getDoNotReplaceMissingValues()
Gets whether automatic replacement of missing values is disabled. |
double |
getEps()
Gets tolerance of termination criterion |
double |
getGamma()
Gets gamma |
SelectedTag |
getKernelType()
Gets type of kernel function |
double |
getLoss()
Gets the epsilon in loss function of epsilon-SVR |
boolean |
getNormalize()
whether to normalize input data |
double |
getNu()
Gets nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5) |
java.lang.String[] |
getOptions()
Returns the current options |
boolean |
getProbabilityEstimates()
Sets whether to generate probability estimates instead of -1/+1 for classification problems. |
java.lang.String |
getRevision()
Returns the revision string. |
boolean |
getShrinking()
whether to use the shrinking heuristics |
SelectedTag |
getSVMType()
Gets type of SVM |
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. |
java.lang.String |
getWeights()
Gets the parameters C of class i to weight[i]*C, for C-SVC (default 1). |
java.lang.String |
globalInfo()
Returns a string describing classifier |
static boolean |
isPresent()
returns whether the libsvm classes are present or not, i.e. |
java.lang.String |
kernelTypeTipText()
Returns the tip text for this property |
java.util.Enumeration |
listOptions()
Returns an enumeration describing the available options. |
java.lang.String |
lossTipText()
Returns the tip text for this property |
static void |
main(java.lang.String[] args)
Main method for testing this class. |
java.lang.String |
normalizeTipText()
Returns the tip text for this property |
java.lang.String |
nuTipText()
Returns the tip text for this property |
java.lang.String |
probabilityEstimatesTipText()
Returns the tip text for this property |
void |
setCacheSize(double value)
Sets cache memory size in MB (default 40) |
void |
setCoef0(double value)
Sets coef (default 0) |
void |
setCost(double value)
Sets the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1) |
void |
setDegree(int value)
Sets the degree of the kernel |
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 |
setGamma(double value)
Sets gamma (default = 1/no of attributes) |
void |
setKernelType(SelectedTag value)
Sets type of kernel function (default KERNELTYPE_RBF) |
void |
setLoss(double value)
Sets the epsilon in loss function of epsilon-SVR (default 0.1) |
void |
setNormalize(boolean value)
whether to normalize input data |
void |
setNu(double value)
Sets nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5) |
void |
setOptions(java.lang.String[] options)
Sets the classifier options Valid options are: |
void |
setProbabilityEstimates(boolean value)
Returns whether probability estimates are generated instead of -1/+1 for classification problems. |
void |
setShrinking(boolean value)
whether to use the shrinking heuristics |
void |
setSVMType(SelectedTag value)
Sets type of SVM (default SVMTYPE_C_SVC) |
void |
setWeights(java.lang.String weightsStr)
Sets the parameters C of class i to weight[i]*C, for C-SVC (default 1). |
java.lang.String |
shrinkingTipText()
Returns the tip text for this property |
java.lang.String |
SVMTypeTipText()
Returns the tip text for this property |
java.lang.String |
toString()
returns a string representation |
java.lang.String |
weightsTipText()
Returns the tip text for this property |
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 SVMTYPE_C_SVC
public static final int SVMTYPE_NU_SVC
public static final int SVMTYPE_ONE_CLASS_SVM
public static final int SVMTYPE_EPSILON_SVR
public static final int SVMTYPE_NU_SVR
public static final Tag[] TAGS_SVMTYPE
public static final int KERNELTYPE_LINEAR
public static final int KERNELTYPE_POLYNOMIAL
public static final int KERNELTYPE_RBF
public static final int KERNELTYPE_SIGMOID
public static final Tag[] TAGS_KERNELTYPE
Constructor Detail |
---|
public LibSVM()
Method Detail |
---|
public java.lang.String globalInfo()
public TechnicalInformation getTechnicalInformation()
getTechnicalInformation
in interface TechnicalInformationHandler
public java.util.Enumeration listOptions()
listOptions
in interface OptionHandler
listOptions
in class Classifier
public void setOptions(java.lang.String[] options) throws java.lang.Exception
-S <int> Set type of SVM (default: 0) 0 = C-SVC 1 = nu-SVC 2 = one-class SVM 3 = epsilon-SVR 4 = nu-SVR
-K <int> Set type of kernel function (default: 2) 0 = linear: u'*v 1 = polynomial: (gamma*u'*v + coef0)^degree 2 = radial basis function: exp(-gamma*|u-v|^2) 3 = sigmoid: tanh(gamma*u'*v + coef0)
-D <int> Set degree in kernel function (default: 3)
-G <double> Set gamma in kernel function (default: 1/k)
-R <double> Set coef0 in kernel function (default: 0)
-C <double> Set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default: 1)
-N <double> Set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default: 0.5)
-Z Turns on normalization of input data (default: off)
-P <double> Set the epsilon in loss function of epsilon-SVR (default: 0.1)
-M <double> Set cache memory size in MB (default: 40)
-E <double> Set tolerance of termination criterion (default: 0.001)
-H Turns the shrinking heuristics off (default: on)
-W <double> Set the parameters C of class i to weight[i]*C, for C-SVC (default: 1)
-B Trains a SVC model instead of a SVR one (default: SVR)
-D If set, classifier is run in debug mode and may output additional info to the console
setOptions
in interface OptionHandler
setOptions
in class Classifier
options
- the options to parse
java.lang.Exception
- if parsing failspublic java.lang.String[] getOptions()
getOptions
in interface OptionHandler
getOptions
in class Classifier
public static boolean isPresent()
public void setSVMType(SelectedTag value)
value
- the type of the SVMpublic SelectedTag getSVMType()
public java.lang.String SVMTypeTipText()
public void setKernelType(SelectedTag value)
value
- the kernel typepublic SelectedTag getKernelType()
public java.lang.String kernelTypeTipText()
public void setDegree(int value)
value
- the degree of the kernelpublic int getDegree()
public java.lang.String degreeTipText()
public void setGamma(double value)
value
- the gamma valuepublic double getGamma()
public java.lang.String gammaTipText()
public void setCoef0(double value)
value
- the coefpublic double getCoef0()
public java.lang.String coef0TipText()
public void setNu(double value)
value
- the new nu valuepublic double getNu()
public java.lang.String nuTipText()
public void setCacheSize(double value)
value
- the memory size in MBpublic double getCacheSize()
public java.lang.String cacheSizeTipText()
public void setCost(double value)
value
- the cost valuepublic double getCost()
public java.lang.String costTipText()
public void setEps(double value)
value
- the tolerancepublic double getEps()
public java.lang.String epsTipText()
public void setLoss(double value)
value
- the loss epsilonpublic double getLoss()
public java.lang.String lossTipText()
public void setShrinking(boolean value)
value
- true uses shrinkingpublic boolean getShrinking()
public java.lang.String shrinkingTipText()
public void setNormalize(boolean value)
value
- whether to normalize the datapublic boolean getNormalize()
public java.lang.String normalizeTipText()
public java.lang.String doNotReplaceMissingValuesTipText()
public void setDoNotReplaceMissingValues(boolean b)
b
- true if automatic missing values replacement is
to be disabled.public boolean getDoNotReplaceMissingValues()
public void setWeights(java.lang.String weightsStr)
weightsStr
- the weights (doubles, separated by blanks)public java.lang.String getWeights()
public java.lang.String weightsTipText()
public void setProbabilityEstimates(boolean value)
value
- whether to predict probabilitiespublic boolean getProbabilityEstimates()
public java.lang.String probabilityEstimatesTipText()
public double[] distributionForInstance(Instance instance) throws java.lang.Exception
distributionForInstance
in class Classifier
instance
- the instance for which distribution is computed
java.lang.Exception
- if the distribution can't be computed successfullypublic Capabilities getCapabilities()
getCapabilities
in interface CapabilitiesHandler
getCapabilities
in class Classifier
Capabilities
public void buildClassifier(Instances insts) throws java.lang.Exception
buildClassifier
in class Classifier
insts
- the training instances
java.lang.Exception
- if libsvm classes not in classpath or libsvm
encountered a problempublic java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String getRevision()
getRevision
in interface RevisionHandler
public static void main(java.lang.String[] args)
args
- the options
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |