Применение HyperLogLog к выборке населения

на HyperLogLog алгоритм Flajolet et al описывает умный способ оценки мощности из набора, используя небольшое количество памяти. Однако, оно принимает в учитывайте в расчете все N элементов исходного множества. Что, если у нас был доступ только к небольшой случайной выборке (скажем, 10%) исходного N? Были ли какие-либо исследования о том, как HyperLogLog или подобные алгоритмы могут быть приспособились к такой ситуации?

Я знаю, что это по существу проблема описана как distinct оценка стоимости, для которого существует обильное исследование (см., например,этот бумага!--2--> обзор). Однако, исследование оценки различных значений, о котором я знаю, использует ряд оценки ad-hoc сильно отличаются от подхода, используемого HyperLogLog. Поэтому мне интересно, если кто-то уже думал об адаптации HyperLogLog к проблеме оценки различных значений.

2 ответов


однако исследования по оценке различных значений, которые я знаю использования ряда специальных оценок, сильно отличающихся от подхода используется HyperLogLog.

Да, потому что они решают совсем другую проблему.

Предположим, вы только что конфисковали тайник 1.000.000 поддельных долларовых купюр, и вы хотите знать количество различных серийных номеров.

выборка 100.000 из них (используя HyperLogLog, как ваш античная паровая счетная машина имеет только память 1k) вы насчитываете 5000 различных серийных номеров, каждый из которых происходит где-то около 20 раз. Тогда вы можете быть уверены, что весь тайник будет содержать только немногим более 5000 отдельных серийных номеров.

теперь предположим, что 1 серийный номер встречается 95,001 раза, а 4999 серийных номеров-только один раз. Очевидно, какие-то настоящие банкноты попали в твою заначку. Теперь вы можете быть уверены, что притон содержит около 5% честных банкнот, так что весь тайник содержит около 50.000 различных серийных номеров

обратите внимание, что распределение частот в вашем образце используется для вывода чего-то о распределении во всем тайнике. Это фактически упоминается как один из" специальных " (ваших слов) методов в второй документ вы цитируете ("оценка на основе выборки количества различных значений(..)"):

идея параметрическая оценка должна соответствовать распределению вероятности наблюдаемые относительные частоты различных значений атрибута.

также обратите внимание, что результаты HyperLogLog и подобных методов полностью нечувствительны к распределению выборок по их значениям. Но ваша окончательная оценка, очевидно, очень От этого зависит!

мой совет: используйте метод по вашему выбору (например, HyperLogLog), чтобы подсчитать количество различных значения в вашем образце, и затем используйте один из методов в "оценке на основе выборки", чтобы оценить количество значений во всем вашем мультисете, или используйте свои предыдущие знания о распределении мультисета для расчета оценки (возможно, вы видели печатный станок фальшивомонетчиков, и вы знаете, что он может печатать только один серийный номер)


Поиск цитирования-замечательная вещь. Я не очень хорошо знаком с этими двумя проблемами, поэтому эта статья может быть не совсем то, что вы имели в виду. По крайней мере, они наверняка говорят о HyperLogLog и его отношении к проблеме, поэтому, возможно, это удовлетворит ваше любопытство.

оптимальный алгоритм для задачи различных элементов