It is impossable to create a Support Vector Machine with more than one output value. This is inherent in the way that SVM’s are defined. Unlike neural networks, which have multiple output neurons, a SVM always has one single output. However, this does not mean that you cannot do multi-class classification with a SVM. Multi-class classification is the usual reason for having multiple output neurons in a neural network.
To do this with an SVM your input must still be the regular normalized input values that an SVM typically needs. Input should always be normalized to 0 to 1. However, your output is totally un-normalized. Think of your output as a class number. Zero is your first class, one is your second, up to however many classes you actually have. Do not use decimal numbers. You cannot have class 1.5. Because the output of a SVM is a double number you must encode your class numbers as integer doubles, i.e. 0.0, 1.0, 2.0, 3.0 etc… as many as you need.
The following program is an example of this in C#.
1 | using System; |
This will produce the following output.
1 | Epoch #1 Error:0 |