One-class classification results
Frankly, I found the results obtained in the preceding quiz amazing.
Trained on only 26 instances of Iris-Setosa, Weka’s OneClassClassifier is 92% accurate (2 errors out of 24) on the remaining Iris-setosas and 100% accurate on the Iris-versicolors and Iris-virginicas. This is pretty impressive. Even using Naive Bayes as the base classifier, it is 88% accurate (3 errors). The LibSVM one-class classifier is worse: 62% accurate (9 errors) on Iris-setosas but still 100% accurate on the rest.
However, we were lucky. In the Iris dataset, the Iris-setosa class stands pretty well by itself—you can see this in Weka’s Visualize panel. If you were to train on some data from one of the other classes instead, the results would not be nearly as good: all the Iris-setosas would probably be identified as outliers but more errors would occur on the Iris-versicolors and Iris-virginicas.
And even with Iris-setosas, if you train OneClassClassifier (default parameters) on 15% or 20% of the dataset (23 and 30 instances respectively) instead of 17% (26 instances), the number of errors increases (to 3 in both cases). And if you train on 10% (15 instances) the classifier doesn’t work at all—it declares that the entire test set is made up of Iris-setosas!
One-class classification is difficult. But under the right circumstances it can be successful.