从采样用户名中推断网站用户群的大小的方法

时间:2009-01-23 22:48:21

标签: math machine-learning probability bayesian collective-intelligence

假设您想估计不会公开此信息的网站用户群的大小。

人们更有可能获得具有不同概率的不同用户名。例如,如果系统上不存在用户名“nick”,则可能具有极小的用户群。如果用户名为“starbaby”,则可能是一个更大的网站。这似乎是一个直截了当的贝叶斯问题。

存在一个问题,即不同的站点可能具有不同的允许用户名空间。我想,最大的问题是空间等常见字符的合法性。可能会污染先前发布的另一个问题是网站是否会在您想要的网站上显示名称,或者让您自己想出更具创意的名称。

如何构建跨不同系统的用户名出现频率的训练集?有没有办法使用贝叶斯进行数值估算而不是分类到固定宽度的桶?

3 个答案:

答案 0 :(得分:6)

您需要做的是根据注册的用户数准确估计某个用户名的可能性。假设N是用户数,如果用户u存在,则u = 1,如果不存在,则为0。

首先,假设每个用户名的概率分布彼此独立。这不是真的 - 你已经提出了一个原因 - 但它可能是必要的,因为它使数据收集和数学更容易。

您将需要来自具有注册用户名的站点以及该站点的用户总数的大量数据。现在,取任何特定的用户名并在2d图上想象你的数据点(在x上为N,在y上为u),在y = 0时将有一个水平线,而在y = 1时将有另一个水平线。您可以按照建议对x轴进行分区,并获取bin中所有数据点的y坐标以获得离散函数,或者您可以尝试将图上的点拟合到某类函数。我真的不知道那类函数会是什么 - 也许某种幂律? (我在考虑Zipf's law)。

您现在拥有应用贝叶斯规则的概率分布。我不知道你想要使用的N先前是什么样的。统一分布(一些大的数字)不做任何假设,但我猜大多数网站都有一个小的用户群。

我怀疑为了使这项工作成功,当您从网站中对用户进行抽样时,您需要为特定的一组用户执行此操作。我敢打赌,用户名的流行将会有很长的尾巴,所以随机抽样的用户会给你很多很少使用的名字,因此会提供大量无法提供的证据。

编辑:我有另一个想法;在大多数论坛(以及StackOverflow)中,用户都有连续的用户ID,因此您可以使用具有大量用户的单个站点来估算所有较小的N.

答案 1 :(得分:4)

我认为这是一个很酷的主意!

您可以将UserNameCheck.com用于某些不同的用户名,并将结果与​​提供这些数据的网站的用户基本大小进行交叉引用,从而将数据集整理在一起。

注意:该网站似乎没有检查用户名是否对该网站有效,例如它认为Gmail会让你注册“nick@gmail.com”,即使它太短了。

答案 2 :(得分:1)

唯一的方法是在您知道用户群大小的系统上获取大量的用户名。在某些名称更常见的用户基础中,数据可能会出现偏差。例如,即使是指环王论坛的微小用户群也可能包含用户名Strider。