I'm looking for a good source code example of a supervised neural network which accepts more than two features (unlike most XY-examples) and classifies data into two sets. From what I've read, a Support Vector Machine (SVM) might be a solution?
All the classifying examples I have found are two-dimensional. Here are a few:
- Single layer peceptron
- SVM (Support Vector Machine) in CSharp
- SVM.NET - really nice, but input still two-dimensional.
I'm trying to distinguish rare events from a number of inputs which are normally stable. Features are key-value pairs where the value can usually discretized as a small number. Available training data for the first category is huge, but with only few training sets for the second category, if that makes a difference.
Example Training Set
Category A
[2, 1, 0, 1, 4, 3] -> A
[1, 1, 2, 3, 3, 0] -> A
[0, 0, 1, 3, 2, 0] -> A
Category B
[0, 4, 4, 4, 4, 3] -> B
Classifying Example
[1, 3, 4, 4, 4, 0] -> ??? (probably B)
A confidence rating, eg. "85% certain of B", would be helpful in distinguishing a threshold for a rare event.
Is a neural network the best solution and are there any .NET libraries with this built-in?