1
votes

I need to classify some values between two classes. I have about 30 values that I can use as a training set and each value has 10 different dimensions. I am using libSVM (in Python) and it seems that it works quite well.

I am trying also to give an interpretation to the model computed by libSVM, because I think that some dimensions are more "important" than others in the classification process.

For instance, consider the following example:

y, x = [1,1,1,-1,-1,-1],[[1,-1],[1,0],[1,1],[-1,-1],[-1,0],[-1,1]]
prob  = svm_problem(y, x)
param = svm_parameter()
param.kernel_type = LINEAR
param.C = 10
m = svm_train(prob, param)
svm_save_model('model_file', m)

It is clear that the second dimension of x list's elements is useless to classify this data set.

My question is:

is there any systematic way to detect these kind of situations analyzing the model generated by libSVM?

1

1 Answers

0
votes

A little bit late, but:

It is your responsibility to check if a feature is important or not - so you have to choose your features manually that they meet your application's requirements. The SVM tries to get the best result with the features you put in - it wouldn't make much sense to ignore given data just because the choice will get clearer (but maybe more wrong).

Only you can know which features are good, and which not. You have to find them by hand/brain.