public void ComputeTest3_Obsolete()
{
// Let's say we have the following data to be classified
// into three possible classes. Those are the samples:
//
int[][] inputs =
{
// input output
new int[] { 0, 1, 1, 0 }, // 0
new int[] { 0, 1, 0, 0 }, // 0
new int[] { 0, 0, 1, 0 }, // 0
new int[] { 0, 1, 1, 0 }, // 0
new int[] { 0, 1, 0, 0 }, // 0
new int[] { 1, 0, 0, 0 }, // 1
new int[] { 1, 0, 0, 0 }, // 1
new int[] { 1, 0, 0, 1 }, // 1
new int[] { 0, 0, 0, 1 }, // 1
new int[] { 0, 0, 0, 1 }, // 1
new int[] { 1, 1, 1, 1 }, // 2
new int[] { 1, 0, 1, 1 }, // 2
new int[] { 1, 1, 0, 1 }, // 2
new int[] { 0, 1, 1, 1 }, // 2
new int[] { 1, 1, 1, 1 }, // 2
};
int[] outputs = // those are the class labels
{
0, 0, 0, 0, 0,
1, 1, 1, 1, 1,
2, 2, 2, 2, 2,
};
// Create a discrete naive Bayes model for 3 classes and 4 binary inputs
int[] symbols = new int[] { 2, 2, 2, 2 };
var bayes = new NaiveBayes(3, symbols);
// Teach the model. The error should be zero:
double error = bayes.Estimate(inputs, outputs);
// Now, let's test the model output for the first input sample:
int answer = bayes.Compute(new int[] { 0, 1, 1, 0 }); // should be 1
Assert.AreEqual(0, error);
for (int i = 0; i < inputs.Length; i++)
{
error = bayes.Compute(inputs[i]);
double expected = outputs[i];
Assert.AreEqual(expected, error);
}
}