8


2

この情報を公表していないサイトのユーザーベースのサイズを見積もりたいとします。

人々は、異なる確率で異なるユーザー名を取得した可能性が高いです。 たとえば、ユーザ名「nick」がシステムに存在しない場合、それは非常に小さいユーザベースを持つ可能性があります。 ユーザー名「starbaby」が採用された場合、それははるかに大きいサイトになる可能性があります。 それは簡単なベイズ問題のようです。

サイトによって許可されるユーザ名のスペースが異なる可能性があるという問題があります。 最大の問題は、スペースなどの一般的な文字の合法性でしょう。 以前のディストリビューションを汚染する可能性があるもう一つの問題は、あなたが望むものが取られたときにサイトが名前を提案するのか、それともあなた自身がより創造的な名前を考えるようにするかということです。

異なるサイズのシステム間で、ユーザー名の出現頻度のトレーニングセットをどのように構築できますか? 固定幅バケットに分類するのではなく、ベイズを使用して数値推定を行う方法はありますか。

3 Answer


6


あなたがする必要があるのは、登録されたユーザーの数を考えると、特定のユーザー名が存在する確率を正確に見積もることです。 Nがユーザー数で、ユーザーuが存在する場合はu = 1、存在しない場合は0とします。

まず最初に、各ユーザー名の確率分布は互いに独立していると仮定します。 これは本当ではないだろう - そしてあなたはすでに一つの理由を思いついた - しかしそれはデータ収集と数学をずっと簡単にするのでおそらく必要だろう。

あなたは、登録されたユーザー名とそのサイトのユーザーの総数を持つサイトからのたくさんのデータを必要とするでしょう。 さて、特定のユーザー名を取り、2次元プロット(xがN、yがy)のデータ点を想像してみてください。y = 0とy = 1の水平線が1本並ぶことになります。 あなたが提案するようにx軸をビンしてビンの中のすべてのデータ点の平均y座標をとることで離散関数を得ることも、グラフ上の点をあるクラスの関数に当てはめてみることもできます。 そのクラスの機能がどういうものなのか、私にはよくわかりません。 (私は Zipfの法則を考えています)。

これでベイズの法則を適用する確率分布が得られました。 私はあなたがNのためにどんな種類の事前を使いたいかについてわかりません。 一様分布(最大数まで)では仮定はしませんが、ほとんどのサイトではユーザー数が少ないと思います。

これを機能させるためには、サイトからユーザーをサンプリングするときに、特定のユーザーのセットに対してそうする必要があると思われます。 私は、ユーザー名の人気が非常に長い末尾を持つことになると思うので、ユーザーのランダムサンプルはあなたに非常にまれにしか使われていない名前をたくさんそしてそれ故に多くの有益でない証拠を与えるでしょう。

編集:私は別の考えを持っていました。ほとんどのフォーラム(およびStackOverflow)では、ユーザーは連続したユーザーIDを持っているので、多数のユーザーがいる単一のサイトを使用して、すべての小さいNの見積もりを出すことができます。


4


これはかっこいいアイデアだと思います。

いくつかの異なるユーザー名に対して UserNameCheck.comを使用し、それらの結果をそれらを提供するサイトの記載されているユーザーベースサイズと相互参照することで、データセットをまとめることができるかもしれません。

:そのWebサイトは、そのユーザー名がそのサイトで有効かどうかをチェックしないようです。 それが短すぎてもGmailはあなたが "[email protected]"を登録させるだろうと考えています。


1


唯一の方法は、ユーザーベースのサイズがわかっているシステムで、大量のユーザー名を取得することです。 特定の名前がより一般的なユーザーベースでは、データが歪んでいる可能性があります。 Lord of the Ringsフォーラムの小さなユーザーベースでも、たとえばStriderというユーザー名が含まれる可能性があります。