public class SVMLightClassifierFactory<L,F> extends java.lang.Object implements ClassifierFactory<L,F,SVMLightClassifier<L,F>>
SVMLightClassifier
s). It actually calls SVM Light, or
SVM Struct for multiclass SVMs, or SVM perf is the option is enabled, on the command line, reads in the produced
model file and creates a Linear Classifier. A Platt model is also trained
(unless otherwise specified) on top of the SVM so that probabilities can
be produced. For multiclass classifier, you have to set C using setC otherwise the code will not run (by sonalg).Modifier and Type | Field and Description |
---|---|
protected java.io.File |
alphaFile |
protected double |
C
C can be tuned using held-out set or cross-validation.
|
protected boolean |
verbose |
Constructor and Description |
---|
SVMLightClassifierFactory() |
SVMLightClassifierFactory(boolean useSVMPerf) |
SVMLightClassifierFactory(java.lang.String svmLightLearn,
java.lang.String svmStructLearn,
java.lang.String svmPerfLearn) |
Modifier and Type | Method and Description |
---|---|
void |
crossValidateSetC(GeneralDataset<L,F> dataset,
int numFolds,
Scorer<L> scorer,
LineSearcher minimizer)
This method will cross validate on the given data and number of folds
to find the optimal C.
|
double |
getC()
Get the C parameter (for the slack variables) for training the SVM.
|
boolean |
getDeleteTempFilesOnExitFlag() |
int |
getFolds() |
double |
getHeldOutPercent() |
Scorer |
getScorer() |
int |
getSvmLightVerbosity() |
boolean |
getTuneCV() |
boolean |
getTuneHeldOut() |
LineSearcher |
getTuneMinimizer() |
boolean |
getUseSigma()
Get whether or not to train an overlying platt (sigmoid)
model for producing meaningful probabilities.
|
void |
heldOutSetC(GeneralDataset<L,F> train,
double percentHeldOut,
Scorer<L> scorer,
LineSearcher minimizer) |
void |
heldOutSetC(GeneralDataset<L,F> trainSet,
GeneralDataset<L,F> devSet,
Scorer<L> scorer,
LineSearcher minimizer)
This method will cross validate on the given data and number of folds
to find the optimal C.
|
void |
setC(double C)
Set the C parameter (for the slack variables) for training the SVM.
|
void |
setDeleteTempFilesOnExitFlag(boolean deleteTempFilesOnExit) |
void |
setFolds(int folds) |
void |
setHeldOutPercent(double heldOutPercent) |
void |
setScorer(Scorer<L> scorer) |
void |
setSvmLightVerbosity(int svmLightVerbosity) |
void |
setTuneCV(boolean tuneCV) |
void |
setTuneHeldOut(boolean tuneHeldOut) |
void |
setTuneMinimizer(LineSearcher minimizer) |
void |
setUseSigmoid(boolean useSigmoid)
Specify whether or not to train an overlying platt (sigmoid)
model for producing meaningful probabilities.
|
SVMLightClassifier<L,F> |
trainClassifier(GeneralDataset<L,F> dataset) |
SVMLightClassifier<L,F> |
trainClassifierBasic(GeneralDataset<L,F> dataset) |
protected double C
protected boolean verbose
protected java.io.File alphaFile
public SVMLightClassifierFactory(java.lang.String svmLightLearn, java.lang.String svmStructLearn, java.lang.String svmPerfLearn)
svmLightLearn
- is the fullPathname of the training program of svmLight with default value "/u/nlp/packages/svm_light/svm_learn"svmStructLearn
- is the fullPathname of the training program of svmMultiClass with default value "/u/nlp/packages/svm_multiclass/svm_multiclass_learn"svmPerfLearn
- is the fullPathname of the training program of svmMultiClass with default value "/u/nlp/packages/svm_perf/svm_perf_learn"public SVMLightClassifierFactory()
public SVMLightClassifierFactory(boolean useSVMPerf)
public void setC(double C)
public double getC()
public void setUseSigmoid(boolean useSigmoid)
public boolean getUseSigma()
public boolean getDeleteTempFilesOnExitFlag()
public void setDeleteTempFilesOnExitFlag(boolean deleteTempFilesOnExit)
public void crossValidateSetC(GeneralDataset<L,F> dataset, int numFolds, Scorer<L> scorer, LineSearcher minimizer)
public void heldOutSetC(GeneralDataset<L,F> train, double percentHeldOut, Scorer<L> scorer, LineSearcher minimizer)
public void heldOutSetC(GeneralDataset<L,F> trainSet, GeneralDataset<L,F> devSet, Scorer<L> scorer, LineSearcher minimizer)
public double getHeldOutPercent()
public void setHeldOutPercent(double heldOutPercent)
public int getFolds()
public void setFolds(int folds)
public LineSearcher getTuneMinimizer()
public void setTuneMinimizer(LineSearcher minimizer)
public Scorer getScorer()
public boolean getTuneCV()
public void setTuneCV(boolean tuneCV)
public boolean getTuneHeldOut()
public void setTuneHeldOut(boolean tuneHeldOut)
public int getSvmLightVerbosity()
public void setSvmLightVerbosity(int svmLightVerbosity)
public SVMLightClassifier<L,F> trainClassifier(GeneralDataset<L,F> dataset)
trainClassifier
in interface ClassifierFactory<L,F,SVMLightClassifier<L,F>>
public SVMLightClassifier<L,F> trainClassifierBasic(GeneralDataset<L,F> dataset)