Способ определения размера базы пользователей сайта по выборке из взятых имён - PullRequest
8 голосов
/ 24 января 2009

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

Люди с большей вероятностью приобрели разные имена пользователей. Например, если имя пользователя 'ник' не существует в системе, вероятно, оно будет иметь очень маленькую базу пользователей. Если имя пользователя 'starbaby' занято, это, вероятно, будет гораздо больший сайт. Это кажется простой байесовской проблемой.

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

Как вы могли бы создать обучающий набор частоты встречаемости имен пользователей в системах разных размеров? Есть ли способ использовать байесовский анализ для числовой оценки, а не для классификации по сегментам фиксированной ширины?

Ответы [ 3 ]

6 голосов
/ 10 февраля 2009

Что вам нужно сделать, это точно оценить вероятность того, что определенное имя пользователя присутствует, учитывая количество зарегистрированных пользователей. Допустим, N - это число пользователей, и u = 1, если пользователь u присутствует, и 0, если они отсутствуют.

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

Вам понадобится много данных с сайтов с зарегистрированными именами пользователей и общим количеством пользователей этого сайта. Теперь возьмите любое конкретное имя пользователя и представьте свои точки данных на двухмерном графике (с N на x и u на y), будет одна горизонтальная линия точек при y = 0, а другая - при y = 1. Вы можете либо связать ось x, как вы предлагаете, и взять среднюю координату y всех точек данных в ячейке, чтобы получить дискретную функцию, либо вы можете попытаться подогнать точки на графике к некоторому классу функций. Я действительно не знаю, что это за класс функций - может быть, какой-то степенной закон? (Я имею в виду закон Ципфа ).

Теперь у вас есть распределения вероятностей для применения правила Байеса. Я не знаю, какой вид априора для N вы бы хотели использовать. Равномерное распределение (до некоторого большого числа) не сделало бы никаких предположений, но я предполагаю, что большинство сайтов имеют небольшую базу пользователей.

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

РЕДАКТИРОВАТЬ : У меня была другая мысль; на большинстве форумов (и в StackOverflow) пользователи имеют последовательные идентификаторы пользователей, поэтому вы можете использовать один сайт с большим количеством пользователей, чтобы получить оценки для всех меньших N.

4 голосов
/ 24 января 2009

Я думаю, что это крутая идея!

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

Примечание : кажется, что этот веб-сайт не проверяет правильность имен пользователей сайта, например, он думает, что Gmail позволит вам зарегистрировать «nick@gmail.com», даже если это слишком мало.

1 голос
/ 24 января 2009

Единственный способ - получить большой набор принятых имен пользователей в системах, для которых вы знаете размер базы пользователей. Данные могут быть искажены в пользовательских базах, где определенные имена встречаются чаще. Например, даже небольшая база пользователей с форума Lord of the Rings будет содержать имя пользователя Strider.

...