
Der Erwartungs-Maximierungs-Algorithmus (englisch expectation-maximization algorithm, daher auch Expectation-Maximization-Algorithmus, selten auch Estimation-Maximization-Algorithmus, kurz EM-Algorithmus) ist ein mathematischer Algorithmus, um iterativ (lokale) Maximum-Likelihood- oder Maximum-a-posteriori-Schätzungen von Parametern in statistischen Modellen zu finden.
Die Kernidee des EM-Algorithmus ist es, mit einem zufällig gewählten Modell zu starten, und abwechselnd die Zuordnung der Daten zu den einzelnen Teilen des Modells (Erwartungsschritt, kurz: E-Schritt) und die Parameter des Modells an die neueste Zuordnung (Maximierungsschritt, kurz: M-Schritt) zu verbessern. Im E-Schritt werden die Punkte besser zugeordnet, im M-Schritt wird das Modell so verändert, dass es besser zu den Daten passt. Findet keine wesentliche Verbesserung mehr statt, beendet man das Verfahren.
Das Verfahren findet typischerweise nur „lokale“ Optima. Dadurch ist es oft notwendig, das Verfahren mehrfach aufzurufen und das beste so gefundene Ergebnis auszuwählen.
Es liegen Objekte mit einer gewissen Anzahl von Eigenschaften vor. Die Eigenschaften nehmen zufällige Werte an. Einige Eigenschaften können gemessen werden, andere jedoch nicht. Formal gesehen sind die Objekte Instanzen einer mehrdimensionalen Zufallsvariablen , die einer unbekannten Wahrscheinlichkeitsverteilung unterliegt; einige Dimensionen sind „beobachtbar“, andere sind „versteckt“. Ziel ist es, die unbekannte Wahrscheinlichkeitsverteilung zu bestimmen.
Zunächst nimmt man an, sei bis auf einige Parameter bekannt. Meist wählt man als Mischverteilung, also als gewichtete Summe von so vielen Standardverteilungen, wie beobachtbare Eigenschaften vorliegen. Wählt man beispielsweise als Standardverteilung die Normalverteilung, so sind die unbekannten Parameter jeweils der Erwartungswert und die Varianz . Ziel ist es nun, die Parameter der vermuteten Wahrscheinlichkeitsverteilung zu bestimmen. Wählt man eine Mischverteilung, so enthält auch die Gewichtungsfaktoren der Summe.
Für gewöhnlich geht man ein solches Problem mit der Maximum-Likelihood-Methode an. Dies ist hier jedoch nicht möglich, da die gesuchten Parameter von den versteckten Eigenschaften abhängen – und diese sind unbekannt. Um trotzdem zum Ziel zu kommen, wird also eine Methode benötigt, die mit den gesuchten Endparametern die versteckten Eigenschaften schätzt. Diese Aufgabe erfüllt der EM-Algorithmus.
Der EM-Algorithmus arbeitet iterativ und führt in jedem Durchgang zwei Schritte aus:
Der Algorithmus endet, wenn sich die bestimmten Parameter nicht mehr wesentlich ändern.
Bewiesenermaßen konvergiert die Folge der bestimmten , das heißt, der Algorithmus terminiert auf jeden Fall. Allerdings bildet das Ergebnis meist nur ein lokales Optimum, welches zwar gut, aber nicht unbedingt optimal ist. Es ist daher nötig den Algorithmus mit vielen unterschiedlichen Startwerten auszuführen, um ein Endergebnis möglichst nah am Optimum zu finden.
Um den EM-Algorithmus anzuwenden, benötigt man einige beobachtete Daten , eine parametrische Dichte , eine Beschreibung der vollständigen Daten , die gefunden werden sollen, sowie die parametrische Dichte . Man kann davon ausgehen, dass bereits festgelegt worden ist, wie die vollständigen Daten aussehen, und dass sie als kontinuierliche Zufallsvariable mit der Dichte modelliert werden können, wobei . Man beobachtet nicht direkt. Stattdessen beobachtet man einen Wert der Zufallsvariablen für eine bestimmte Funktion . Beispielsweise könnte die Funktion eine Menge auf deren Mittelwert abbilden, oder wenn eine komplexe Zahl ist, sieht man nur deren Absolutwert, oder könnte nur die L-Norm eines Vektors zurückgeben usw. Da man nur zur Verfügung hat, kann man den Maximum-Likelihood-Schätzer (MLE) für bilden:
Rein formal wird beim EM-Algorithmus angenommen, dass die Werte der beobachteten stochastischen Größe auf folgende Art und Weise zustande kommen: Wähle zuerst eine der eingehenden Zufallsvariablen aus und übernimm deren Wert als Endergebnis. Das bedeutet, dass genau ein Gewicht den Wert eins annimmt und alle anderen null sind. Bei der Approximation der Gewichte durch den EM-Algorithmus ist dies normalerweise aber nicht mehr der Fall. Die Wahrscheinlichkeitsdichte eines Zielwertes lässt sich bei Normalverteilungsannahme und konstanter Varianz der einzelnen Zufallsvariablen darstellen als:
Dabei besitzen die verwendeten Bezeichnungen folgende Bedeutungen:
Das EM-Clustering ist ein Verfahren zur Clusteranalyse, das die Daten mit einem Gaußschen Mischmodell (englisch gaussian mixture model, kurz: GMM) – also als Überlagerung von Normalverteilungen – repräsentiert. Dieses Modell wird zufällig oder heuristisch initialisiert und anschließend mit dem allgemeinen EM-Prinzip verfeinert.
Das EM-Clustering besteht aus mehreren Iterationen der Schritte Erwartung und Maximierung.

Auch der k-Means-Algorithmus kann als EM-Algorithmus verstanden werden, der die Daten als Voronoi-Zellen modelliert.
Eine EM-Variante des k-Means-Algorithmus sieht wie folgt aus:
Bewiesen werden soll:
Anstatt zu maximieren, kann auch maximiert werden, da der Logarithmus eine streng monoton steigende Funktion ist.
| . |
Der Minuend ist eine Konstante, deswegen ist es ausreichend, den Subtrahend zu minimieren:
Eine quadratische Summe ergibt stets einen nichtnegativen Wert. Daher ist das absolute Minimum durch 0 beschränkt und somit auch ein lokales Minimum. Man setze die 1. Ableitung für diesen Term nach jedem auf 0
denn die Ableitung aller Summanden der Summe über sind , außer für . Folglich:
q. e. d.