Ось цілий документ про проблему, з коротким підсумком різних підходів. У літературі це називається чіткою оцінкою цінності .
Якби мені довелося це робити самому, не читаючи вигадливих паперів, я би зробив це. У моделях побудови мов часто доводиться оцінювати ймовірність спостереження за раніше невідомим словом, даючи купу тексту. Досить вдалий підхід при вирішенні цієї проблеми, зокрема, для мовних моделей - використовувати кількість слів, що відбулися рівно один раз, поділену на загальну кількість лексем. Це називається Оцінка доброго Тюрінга .
Нехай u1 - кількість значень, що відбулися рівно один раз у вибірці m елементів.
P[new item next] ~= u1 / m.
Нехай u - кількість унікальних предметів у вашій вибірці розміром m.
Якщо ви помилково припускаєте, що показник "новий елемент наступний" не зменшився, оскільки ви отримали більше даних, то, використовуючи Good Turing, у вас буде
total uniq set of size s ~= u + u1 / m * (s - m)
Це має деяку неприємну поведінку, оскільки u1 стає насправді мало, але це може не бути проблемою для вас на практиці.