Nehmen wir an, ich habe eine Menge gewichteter Proben, wobei jede Probe ein entsprechendes Gewicht zwischen 0 und 1 hat. Ich möchte die Parameter einer Gaußschen Gemischverteilung schätzen, die auf Proben mit höherem Gewicht ausgerichtet ist. Bei der üblichen nicht-gewichteten Fall-Gauß-Mischung wird die Schätzung über den EM-Algorithmus durchgeführt. Kennt jemand eine Implementierung (jede Sprache ist in Ordnung), die erlaubt, Gewichte zu übergeben? Wenn nicht, weiß jemand, wie man den Algorithmus ändert, um die Gewichte zu berücksichtigen? Wenn nicht, kann mir jemand einen Hinweis geben, wie man die Gewichte in die Anfangsformel der Maximum-Log-Likelihood-Formulierung des Problems einbaut?
Danke!
Ich hatte gerade das gleiche Problem. Obwohl der Beitrag älter ist, könnte er für jemand anderen interessant sein. Die Antwort von honk ist im Prinzip richtig, es ist einfach nicht sofort zu sehen, wie sich dies auf die Implementierung des Algorithmus auswirkt. Aus dem Wikipedia-Artikel für Expectation Maximization und ein sehr schönes Tutorial , die Änderungen können leicht abgeleitet werden.
Wenn $ v_i $ die Gewichtung des i-ten Samples ist, ändert sich der Algorithmus aus dem Tutorial (siehe Ende von Abschnitt 6.2.), so dass $ gamma_ {ij} $ mit diesem Gewichtungsfaktor multipliziert wird. Für die Berechnung der neuen Gewichte $ w_j $ muss $ n_j $ durch die Summe der Gewichte $ \ sum_ {i = 1} ^ {n} v_i $ anstelle von nur n geteilt werden. Das ist es ...
Sie können eine gewichtete log-Likelihood-Funktion berechnen; multipliziere einfach jeden Punkt mit seinem Gewicht. Beachten Sie, dass Sie hierfür die Funktion log-Likelihood verwenden müssen.
Also reduziert sich Ihr Problem auf das Minimieren von $ - \ ln L = \ sum_i w_i \ ln f (x_i | q) $ (siehe der Wikipedia-Artikel für das Originalformular.
Nur ein Vorschlag, da keine anderen Antworten gesendet werden.
Sie könnten die normale EM mit GMM verwenden (OpenCV hat zB viele Wrapper für viele Sprachen) und einige Punkte zweimal in den Cluster eingeben, um "mehr Gewicht" zu haben. Auf diese Weise würden die EM diese Punkte für wichtiger halten. Sie können die zusätzlichen Punkte später entfernen, wenn es darauf ankommt.
Ansonsten denke ich, dass das ziemlich extreme Mathematik ist, es sei denn, Sie haben einen starken Hintergrund in fortgeschrittenen Statistiken.
Ich suchte nach einer ähnlichen Lösung, die sich auf die Schätzung des Gaußschen Kerns (anstelle einer Gaußschen Mischung) der Verteilung bezieht.
Der Standard gaussian_kde funktioniert nicht erlaube das, aber ich fand hier eine Python-Implementierung einer modifizierten Version Ссылка
Tags und Links machine-learning statistics gaussian estimation