Also versuche ich einen EM-Algorithmus zu implementieren, um ein Gaussian Class Conditional Modell zum Klassifizieren von Daten zu trainieren. Ich stecke im Moment im M-Step fest, weil ich nicht herausfinden kann, wie man die Kovarianzmatrix berechnet.Berechnung der Kovarianz in Matlab für großen Datensatz und anderen Mittelwert
Das Problem ist, ich habe einen großen Datensatz und die Verwendung einer for-Schleife, um durch jeden Punkt zu gehen, wäre viel zu langsam. Ich kann auch nicht die Covarianzfunktion cov() verwenden, weil ich einen Mittelwert verwenden müssen, die ich mit dieser Formel (mu Symbol eins) berechnet
Gibt es eine Möglichkeit cov(), um zu justieren verwende das Mittel, das ich will? Oder gibt es eine andere Möglichkeit, dies ohne for-Schleifen zu machen?
Edit: Vergessen zu erklären, wie die Datenmatrix ist. Es ist ein nx3, wobei jede Zeile ein Datenpunkt ist.
Es muss technisch für den allgemeinen Fall nxm arbeiten, aber n ist normalerweise wirklich groß (1000 oder mehr), während m relativ klein ist.
Können Sie den Beitrag bearbeiten, um die funktionierende (wenn auch langsame) Version mit der Schleife einzuschließen? Das wäre ein guter Ausgangspunkt, um Leistungsoptimierungen zu finden. – mikkola
@mikkola Entschuldigung, aber ich habe diesen Code nicht. Mir wurde ausdrücklich gesagt, dass ich die Daten nicht durchschleifen kann, da dies zu lange dauern würde. Was ich suche, ist eine Alternative zu For-Loops. – user1804234