Hi,
I’m experiencing with one-class SVM (LIBSVM) and I have run up against this obstacle.
I’ve this Training Set
@relation …
@attribute hello numeric
@attribute hello2 numeric
.
.
.
@attribute class {NORMAL}
all vectors marked as NORMAL
and this Test Set
@relation …
@attribute hello numeric
@attribute hello2 numeric
.
.
.
@attribute class {NORMAL}
all vectors marked as NORMAL
Now, when i train and test the classifier with these datasets in WEKA with Scheme:
weka.classifiers.functions.LibSVM -S 2 -K 2 -D 3 -G 0.03125 -R 0.0 -N 9.7E-4 -M 40.0 -C 1.0 -E 0.0010 -P 0.1
I got these results:
Correctly Classified Instances 235 92.5197 %
UnClassified Instances 19 7.4803 %
If I use the following code with the same datasets I got the same results.
for(int i=0;i minor testSet.numInstances();i++) //sorry for minor instead of <
Instance toClassifyInstance=testSet.instance(i);
double predict=fc.classifyInstance(toClassifyInstance);
//System.out.println(Instance.isMissingValue(predict));
if (predict==0.0){
count++; //GOOD CLASSIFICATION (0.0 is good classification,NAN is not classified.Isn’t it?)
}
}
buff.write(files[j]+": “+count*100/testSet.numInstances()+”%");
Finally if I use the same datasets in Knime I always got 100% accuracy for each parameters. So I tried to modify the two datasets’ header for knime in this way
@relation …
@attribute hello numeric
@attribute hello2 numeric
.
.
.
@attribute class {NORMAL,ATTACK}
all vectors marked as Normal
RESULTS: in knime i got the opposite result of that i reached in weka and using the API (7.49% accuracy)! Where is the
problem? Is my using of knime and API wrong or my using of KNIME?
Thanks in advance.
By the way, if use a different classifier (for example nu-svm), results in knime/direct use of API/Weka are the same.
buff.write(files[j]+": “+count*100/testSet.numInstances()+”%");
Finally if I use the same datasets in Knime I always got 100% accuracy for each parameters. So I tried to modify the two datasets’ header for knime in this way
@relation …
@attribute hello numeric
@attribute hello2 numeric
@attribute class {NORMAL,ATTACK}
all vectors marked as Normal
RESULTS: in knime i got the opposite result of that i reached in weka and using the API (7.49% accuracy)! Where is the
problem? Is my using of knime and API wrong or my using of KNIME?
Thanks in advance.
By the way, if use a different classifier (for example nu-svm), results in knime/direct use of API/Weka are the same.