Expectation Maximization dans Matlab sur les données manquantes
-
26-10-2019 - |
Question
Je dois utiliser EM pour estimer la moyenne et la covariance de la distribution gaussienne pour chacune des deux classes. Ils ont des attributs manquants aussi.
Classes de chaque objet est connue. Par conséquent, le problème se réduit essentiellement à ajuster un modèle gaussienne élément manquant.
Quelle est la meilleure bibliothèque à utiliser?
Comment est ECM algorithme différent de EM algorithme?
Autres conseils
Si vous avez accès à la boîte à outils statistiques, vous pouvez utiliser le GMDISTRIBUTION classe pour adapter un mélange de gaussiennes modèle en utilisant l'algorithme EM.
Voici un exemple:
%# sample dataset
load fisheriris
data = meas(:,1:2);
label = species;
%# fit GMM using EM
K = 2;
obj = gmdistribution.fit(data, K);
%# assign points to mixtures: argmax_k P(M(k)|data)
P = posterior(obj, data);
[~,mIDX] = max(P,[],2);
%# GMM components
obj.mu %# means
obj.Sigma %# covariances
obj.PComponents %# mixture weights
%# visualize original data clusters
figure
gscatter(data(:,1), data(:,2), label)
%# visualize mixtures found
figure
gscatter(data(:,1), data(:,2), mIDX), hold on
ezcontour(@(x,y)pdf(obj,[x y]), xlim(), ylim())
Dans le cas contraire, consultez l'excellent Netlab Boîte à outils , comme il l'a la mise en œuvre GMM.
S'il vous plaît jeter un oeil à la page boîte à outils PMTK
Voici la mise en œuvre EM (Fit un mélange de gaussiennes où les données peuvent avoir des entrées NAN)