tomiliJons
tomiliJons

Reputation: 75

Train and Test with 'one class classifier' using Weka

Suppose I have the following train-set:

f1,f2,f3,     label
1,2,3,          0
1.2,2.3,3.3,    0
1.25,2.25,3.25, 0

and I want to get the classification for the following test-set:

f1,f2,f3,     label
6,7,8,          ?
1.1,2.1,3.1,    ?
9,10,11,        ?

When I'm using Weka and 'One class classifier', first I load the train-set and classify using use training set option in the test options, after that I choose the supplied test set option and load the above test set.The problem is that I get the same classification for all the test-set instances and I get a warning that the train and test set are not compatible, do you want to wrap with inputMappedClassifier?. The above are just a simple examples, I got these problems also with a huge anomaly injected dataset.

What do I do wrong?

Upvotes: 0

Views: 817

Answers (1)

Sandeep Vaid
Sandeep Vaid

Reputation: 19

I think, Since you are performing oneClassClassification, your test data should be (assumption here is all the test data rows are not outliers):

f1,f2,f3,     label
6,7,8,          0
1.1,2.1,3.1,    0
9,10,11,        0

and if you enable predictions on test data, you may get:

=== Predictions on test set ===

inst#     actual  predicted error prediction
   1     1:true     1:true       1 
   2     1:true          ?       ? 
   3     1:true     1:true       1:true

which means in test data: a) Instance 1 is not outlier b) Instance 2 is outlier c) Instance 3 is not outlier

Upvotes: 0

Related Questions