Example usage for org.apache.commons.math3.distribution MixtureMultivariateNormalDistribution MixtureMultivariateNormalDistribution

List of usage examples for org.apache.commons.math3.distribution MixtureMultivariateNormalDistribution MixtureMultivariateNormalDistribution

Introduction

In this page you can find the example usage for org.apache.commons.math3.distribution MixtureMultivariateNormalDistribution MixtureMultivariateNormalDistribution.

Prototype

public MixtureMultivariateNormalDistribution(double[] weights, double[][] means, double[][][] covariances) 

Source Link

Document

Creates a multivariate normal mixture distribution.

Usage

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));
}