Кривая степенного закона для запросов в социальных сетях - PullRequest
3 голосов
/ 06 января 2011

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

exp ($ a + $ b * log (follower_count))

, где $ a = 21 и $ b = -1,1

Это, очевидно, намного эффективнее, чем сортировка всего списка пользователей по количеству подписчиков для данного пользователя.

Если у вас есть аналогичный набор данных с другого социального сайта, как вы могли бы получить значения для $ a и $ b, чтобы соответствовать этому набору данных? В основном некоторый список частот, распределение которых предполагается степенным законом.

Ответы [ 2 ]

6 голосов
/ 06 января 2011

У вас есть следующая модель:

y = exp(a + b.log(x))

, что эквивалентно:

log(y) = a + b.log(x)

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

Однако все это звучит довольно бессмысленно для меня. Кто может сказать, что данный сетевой сайт определяет рейтинг пользователя, используя такие отношения?

1 голос
/ 06 января 2011

Вы можете использовать надстройку Microsoft Excel с именем «Солвер».Он включен в Excel, но не всегда устанавливается по умолчанию.Найдите «надстройку» и «решатель» в своей версии Excel и загрузите ее.

После установки надстройки выполните следующие действия:

  1. Создайтеновый лист.В столбце A вы должны указать идентификатор каждого человека (необязательно)

  2. Столбец B, количество подписчиков.

  3. Если данныене сортируйте, сортируйте по столбцу B.

  4. В столбец C ставьте ранжирование (вы знаете, 1, 2, 3 и т.* Поместите значение 21 в ячейку D1 и -1,1 в ячейку E1.Это значения Twitter для $ A и $ B.Это наши базовые ценности.Возможно, они изменятся.

  5. В ячейку D2 поместите формулу, подобную этой: = exp ($ E $ 1 + $ F $ 1 * log (B2))

  6. Скопируйте формулу в D2 в конце данных.

  7. В ячейку E2 поместите формулу для сравнения фактического ранжирования с результатом формулы (т. Е. Дисперсия).например, = sqrt (c2 * c2 + d2 * d2).Чем ближе фактические и прогнозируемые значения, значение будет стремиться к 0.

  8. Скопируйте ячейку E2 до конца данных.

  9. В нижней части данных, в столбце E, суммируйте отклонения.Например, допустим, ваши данные имеют 10000 значений.В ячейке E10001 введите = сумма (e2: e10000).

  10. Перейдите в меню «Данные» и найдите местоположение меню «Солвер».Расположение может сильно зависеть от вашей версии Excel.Используйте средство «Помощь» для поиска поиска цели.

  11. Следуйте инструкциям (я должен идти сейчас) в справке, чтобы использовать надстройку Solver.Очевидно, что меняющиеся ячейки - это D1 и E1, и цель состоит в том, чтобы E10001 (сумма отклонений) была как можно ближе к нулю.

...