假设您想要估计不公布此信息的站点的用户群的大小.
人们更有可能获得具有不同概率的不同用户名.例如,如果系统上不存在用户名"nick",则可能具有极小的用户群.如果用户名为"starbaby",则可能是一个更大的网站.这似乎是一个简单的贝叶斯问题.
存在的问题是,不同的站点可能具有不同的允许用户名空间.我想,最大的问题是空间等常见字符的合法性.另一个可能会污染先前发布的问题是网站是否会在您想要的网站上显示名称,或者让您自己想出更具创意的名称.
您如何构建跨不同系统的用户名出现频率的训练集?有没有办法使用贝叶斯进行数值估算而不是分类到固定宽度的桶?
您需要做的是根据注册的用户数准确估计某个用户名出现的概率.假设N是用户数,如果用户u存在,则u = 1,如果不存在,则为0.
首先,假设每个用户名的概率分布彼此独立.这不是真的 - 你已经提出了一个原因 - 但它可能是必要的,因为它使数据收集和数学更容易.
您将需要来自具有注册用户名的站点以及该站点的用户总数的大量数据.现在,取任何特定的用户名并在2d图上想象你的数据点(在x上为N,在y上为u),在y = 0时将有一个水平线,而在y = 1时将有另一个水平线.您可以按照建议对x轴进行分区,并获取分箱中所有数据点的平均y坐标以获得离散函数,或者您可以尝试将图上的点拟合到某类函数.我真的不知道那类函数会是什么 - 也许某种幂律?(我在考虑Zipf定律).
您现在有概率分布来应用贝叶斯规则.我不知道你想要使用的N先前是什么样的.统一分布(一些大的数字)不会做出任何假设,但我猜大多数网站都有一个小的用户群.
我怀疑为了使这项工作成功,当您从站点中对用户进行抽样时,您需要为特定的一组用户执行此操作.我敢打赌,用户名的流行将会有很长的尾巴,所以随机抽样的用户会给你很多很少使用的名字,因此有很多无法提供的证据.
编辑:我有另一个想法; 在大多数论坛(以及StackOverflow)上,用户都有连续的用户ID,因此您可以使用具有大量用户的单个站点来估算所有较小的N.