public void ComputeTest()
{
double[][] inputs =
{
// Class 0
new double[] { 4, 1 },
new double[] { 2, 4 },
new double[] { 2, 3 },
new double[] { 3, 6 },
new double[] { 4, 4 },
// Class 1
new double[] { 9, 10 },
new double[] { 6, 8 },
new double[] { 9, 5 },
new double[] { 8, 7 },
new double[] { 10, 8 }
};
int[] output =
{
0, 0, 0, 0, 0, // The first five are from class 0
1, 1, 1, 1, 1 // The last five are from class 1
};
// Then, we will create a LDA for the given instances.
var mmdc = new MinimumMeanDistanceClassifier(inputs, output);
double[][] projection = mmdc.Scores(inputs);
// Or perform classification using:
int[] results = mmdc.Decide(inputs);
Assert.IsTrue(results.IsEqual(output));
//string str = projection.ToCSharp();
double[][] expected = new double[][] {
new double[] { -7.76, -62.92 },
new double[] { -1.16, -53.92 },
new double[] { -1.36, -62.12 },
new double[] { -5.76, -31.72 },
new double[] { -1.16, -32.32 },
new double[] { -76.96, -6.12 },
new double[] { -28.36, -5.92 },
new double[] { -37.96, -7.12 },
new double[] { -36.56, -0.52 },
new double[] { -68.36, -2.72 }
};
Assert.IsTrue(expected.IsEqual(projection, 1e-6));
}