Angenommen, ich habe eine große Menge von Werten, die sich manchmal wiederholen. Ich möchte die Gesamtzahl der eindeutigen Werte in der großen Menge schätzen .
Wenn ich eine zufällige Stichprobe von nehme - Werte und bestimmen , dass es enthält T u eindeutige Werte, kann ich dies die Anzahl der eindeutigen Werte in der großen Menge zu schätzen?
estimation
sampling
geistige Gesundheit
quelle
quelle
Antworten:
Hier ist ein ganzer Artikel über das Problem mit einer Zusammenfassung verschiedener Ansätze. Es heißt Distinct Value Estimation in der Literatur.
Wenn ich das selbst tun müsste, ohne ausgefallene Papiere gelesen zu haben, würde ich das tun. Bei der Erstellung von Sprachmodellen muss man häufig die Wahrscheinlichkeit abschätzen, ein zuvor unbekanntes Wort zu beobachten, wenn eine Reihe von Texten vorliegt. Ein ziemlich guter Ansatz, um dieses Problem insbesondere für Sprachmodelle zu lösen, besteht darin, die Anzahl der Wörter, die genau einmal vorkamen, dividiert durch die Gesamtzahl der Token, zu verwenden. Man nennt es die Schätzung der guten Türe .
Sei u1 die Anzahl der Werte, die genau einmal in einer Stichprobe von m Elementen vorkamen.
Sei u die Anzahl der Einzelstücke in Ihrer Stichprobe der Größe m.
Wenn Sie fälschlicherweise davon ausgehen, dass die Rate für das nächste Element nicht gesunken ist, wenn Sie mehr Daten erhalten haben, können Sie Good Turing verwenden
Dies hat ein unangenehmes Verhalten, da u1 sehr klein wird, aber in der Praxis ist dies möglicherweise kein Problem für Sie.
quelle
s
in diesem fall die Gesamtzahl der Wörter?s
zweimal auf, sowohl bei der linken als auch bei der rechten Handgröße?Die Simulationsstrategie
Collect m Stichproben der Größe N aus dem Satz S . Für jeden derBerechnen Sie m Abtastwerte die Anzahl u der eindeutigen Werte und dividieren Sie sie durch n, um sie zu normalisieren. Berechnen Sie aus der simulierten Verteilung von normalisiertem u zusammenfassende Statistiken von Interesse (z. B. Mittelwert, Varianz, Interquartilbereich). Multiplizieren Sie den simulierten Mittelwert von normalisiertem u mit der Kardinalität von S , um die Anzahl der eindeutigen Werte abzuschätzen.
Je größer m und n sind , desto genauer stimmt Ihr simulierter Mittelwert mit der tatsächlichen Anzahl eindeutiger Werte überein.
quelle
Hier ist eine Implementierung für Pandas:
Stützt sich auf die Abschnitte 2 und 4 dieses Dokuments: http://ftp.cse.buffalo.edu/users/azhang/disc/disc01/cd1/out/papers/pods/towardsestimatimosur.pdf
quelle