# How to initialize the parameter mu to zero of a Gaussian Mixture model ?

--

X = mat_cell;

`[counts,binLocations] = imhist(X);`

stem(binLocations, counts, 'MarkerSize', 1 );

xlim([-1 1]);

% inital kmeans step used to initialize EM

K = 2; % number of mixtures/clusters

rng('default');

cInd = kmeans(X(:), K,'MaxIter', 75536);

% fit a GMM model

options = statset('MaxIter', 75536);

gmm = fitgmdist(X(:), K,'Start',cInd,'CovarianceType','diagonal','Regularize',1e-5,'Options',options);

Here X is the input matrix and I would like to initialize only the sigma parameter of the GMM to zero. How can i proceed?

*NOTE:-*

Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.

I see that you have used the ‘Start’ argument to initialize your Gaussian Mixture model. Instead of using ‘Start’ with an array that contains mapping of the observation to its label in which case you cannot specify mu and sigma as they are computed from the result of kmeans operation. You can try to explicitly specify the mu and sigma parameter by using a structure whose field elements are mu and sigma. Also, the documentation for the fitgmdist contains an example where the mu and sigma are initialized manually.

Additionally, I have attached an example code based on your code to get you started where I have assumed a random dataset for X.

`dataLength = 5000;`

muData = [5 30];

stdData = [4 10];

X = [muData(1) + stdData(1)*randn(dataLength/2,1); muData(2) + stdData(2)*randn(dataLength/2,1)];

[counts,binLocations] = imhist(X);

stem(binLocations, counts, 'MarkerSize', 1 );

xlim([-1 1]);

**SEE COMPLETE ANSWER CLICK THE LINK**