Date: Feb 4, 2013 5:08 PM
Author: Tom Lane
Subject: Re: EM parameters during GMM classifier training

> Is there a way to have more control over the way EM is operating, e.g., 
> define starting points?


The following shows that you can specify the starting values of the mean,
covariance, and mixing parameters. Here I have data coming from a mixture of
three components. If I fit two components then two clusters get merged. By
manipulating the starting values I change which clusters get merged.

>> x = [mvnrnd([-4 0],eye(2),100); mvnrnd([4 0],eye(2),100); mvnrnd([0
>> 6],eye(2),100)];
>> plot(x(:,1),x(:,2),'bx')
>> gmdistribution.fit(x,2)

ans =
Gaussian mixture distribution with 2 components in 2 dimensions
Component 1:
Mixing proportion: 0.333259
Mean: -3.6882 0.0566
Component 2:
Mixing proportion: 0.666741
Mean: 1.9401 2.9808

>> s.mu = [-2 3;4 0];
>> s.Sigma = cat(3,eye(2),eye(2));
>> s.PComponents = [.5 .5];
>> gmdistribution.fit(x,2,'start',s)

ans =
Gaussian mixture distribution with 2 components in 2 dimensions
Component 1:
Mixing proportion: 0.665897
Mean: -1.8197 3.0296
Component 2:
Mixing proportion: 0.334103
Mean: 3.8195 -0.0333

-- Tom