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.
P[new item next] ~= u1 / m.
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
total uniq set of size s ~= u + u1 / m * (s - m)
Dies hat ein unangenehmes Verhalten, da u1 sehr klein wird, aber in der Praxis ist dies möglicherweise kein Problem für Sie.