8

假设您想估计一个不公开此信息的站点的用户群规模。

人们更有可能以不同的概率获得不同的用户名。例如,如果系统上不存在用户名“nick”,则它的用户群可能非常小。如果使用用户名“starbaby”,它可能是一个更大的站点。这似乎是一个简单的贝叶斯问题。

存在不同站点可能具有不同的允许用户名空间的问题。我想最大的问题是空格等常见字符的合法性。另一个可能影响之前发布的问题是,网站是否会在你想要的名字被取走时建议名字,或者让你自己想一个更有创意的名字。

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

4

3 回答 3

6

您需要做的是在给定注册用户数量的情况下准确估计某个用户名出现的概率。假设 N 是用户数,如果用户 u 存在,则 u = 1,如果用户不存在,则 u = 1。

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

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

您现在拥有应用贝叶斯规则的概率分布。我不知道你想使用什么样的先验。均匀分布(最多一些)不会做任何假设,但我猜大多数网站的用户群都很小。

我怀疑为了完成这项工作,当您从一个站点对用户进行抽样时,您需要为一组特定的用户这样做。我敢打赌,用户名的受欢迎程度将会有一个很长的尾巴,因此随机的用户样本会给你很多非常不常用的名字,因此会有很多无用的证据。

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

于 2009-02-10T18:02:15.307 回答
4

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

您可以通过使用UserNameCheck.com为一些不同的用户名组合一个数据集,并将结果与​​提供它们的那些网站的规定用户群规模进行交叉引用。

注意:该网站似乎没有检查用户名是否对该网站有效,因此它认为 Gmail 会允许您注册“nick@gmail.com”,即使这太短了。

于 2009-01-23T22:53:06.833 回答
1

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

于 2009-01-23T22:51:21.330 回答