List of usage examples for org.apache.commons.math3.distribution MixtureMultivariateNormalDistribution MixtureMultivariateNormalDistribution
public MixtureMultivariateNormalDistribution(double[] weights, double[][] means, double[][][] covariances)
From source file:sly.speakrecognizer.test.math.MultivariateNormalMixtureExpectationMaximizationFitterTest.java
@Test public void testFitForDifferentSizesData() { System.out.println("TEST DLA ROZNYCH ROZMAROW DANYCH"); double[][][] covariances = { new double[][] { new double[] { 1.74, -0.59 }, new double[] { -0.59, 1.02 }, }, new double[][] { new double[] { 4.24, 2.58 }, new double[] { 2.58, 3.92 }, }, }; double[][] means = { new double[] { -1.42, 1.69 }, new double[] { 4.21, 7.98 }, }; double[] weights = new double[] { 0.296, 0.704 }; MixtureMultivariateNormalDistribution mmnd = new MixtureMultivariateNormalDistribution(weights, means, covariances);//from ww w. ja v a 2s. c o m int[] lengths = new int[] { 10, 50, 250, 1500, 10000, 100000 }; double[] errors = new double[lengths.length]; int counter = 0; for (int length : lengths) { System.out.println("Dla dugoci danych: " + length); double[][] data = getTestSamples(length, mmnd); MultivariateNormalMixtureExpectationMaximization fitter = new MultivariateNormalMixtureExpectationMaximization( data); MixtureMultivariateNormalDistribution initialMix = MultivariateNormalMixtureExpectationMaximization .estimate(data, 2); fitter.fit(initialMix); MixtureMultivariateNormalDistribution fittedMix = fitter.getFittedModel(); printMMND(fittedMix); errors[counter++] = printErrorsMMND(mmnd, fittedMix); } System.out.println("Podsumowanie"); for (int x = 0; x < lengths.length; x++) { System.out.println("Dla length = " + lengths[x] + " bd wynosi = " + errors[x]); } }
From source file:sly.speakrecognizer.test.math.MultivariateNormalMixtureExpectationMaximizationFitterTest.java
private double[][] getTestSamples(int length, double[] weights, double[][] means, double[][][] covariances) { return getTestSamples(length, new MixtureMultivariateNormalDistribution(weights, means, covariances)); }