I am training a problem such that my output (y) could be more than one class. For example, the SVM could say, this input vector is class 1, but it could also say, this input vector is classes 1 AND 5. This is not the same as a multiclass SVM problem, where the output could be ONE of multiple classes. My output could be ONE or SEVERAL of multiple classes.

Example: My training data looks like (for each training vector X)

X_1   [1 0 0 0]
X_2   [0 1 1 0]
X_3   [0 0 0 1]
X_4   [1 1 0 1]

Where the right side is the Y to be predicted (here I am showing an example with 4 classes, where a 1 indicates class membership).

I understand that I need to probably use a structural SVM such as discussed here: http://www.robots.ox.ac.uk/~vedaldi/svmstruct.html

However, this is all very confusing to me.

I do NOT want to simply do one-vs-all classifiers for each of the possible output classes, however. I need to somehow take into account class relationships, so I guess what I need is a structural SVM. My training data will have some instances tagged with single classes and other instances tagged with multiple classes.

I guess I'm asking how to tackle this problem and if you know any packages to do so in MATLAB or python.

  • 2
    $\begingroup$ Unfortunately this seems off-topic since it's about programming rather than concepts. $\endgroup$ – Yuval Filmus Feb 20 '16 at 17:43

Browse other questions tagged or ask your own question.