Why do I get different distribution parameters each run?

Dear All, I have a column vector of 1000 rows, I tried to fit this data into 2_normal mixture distribution using the below code, my question is: Why do I have different parameters every time I run the code, for example the 1st run the mean were (13 and 17), the 2nd run the means became (15 and 16.5)? is there something wrong with my code?
pd = fitgmdist(data, 2);

 采纳的回答

The default initial value starting method in fitgmdist() uses a k-means alogorithm that is not deterministic; it uses probability to jump around to different cluster centers (see step #4 in previous link). That leads to converging on slightly different centroids every time the process is run.
To ensure repeatability, record the random number generator seed prior to running the function.
rngState = rng('shuffle');
fitgmdist(...)
% to repeat the same results
rng(rngState)
fitgmdist(...))

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Get Started with MATLAB 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by