2016-09-01 11 views
0

知られているN個のリストがあるとします。各リストには項目がありますが、これは繰り返すことができます(セットではない) 例:データのリストから最も可能性の高いアイテムを予測するアルゴリズム

{A、B、C}、{B、B、B、C、C}

は、アイテムの新しい&未知の部分的なリストを考えると、例えば、{A、B}、その確率は何である:私はいくつかのアルゴリズム(?いくつかの機械学習多分1)以下の質問に答える必要

前のリストからわかったことに基づいて、Cがリストに表示されます。可能であれば、私はより細かい確率を望んでいます:部分的なリストL、リストにCが一度出現する確率、確率が2回現れる確率などは何ですか...順序は関係ありません。 {A、B}にCが2回現れる確率は、{B、A}に2回現れる確率と等しいはずです

これを行うアルゴリズムはありますか?

+1

リストの長さによって異なります。残りはマルコフ。 – wildplasser

+0

https://en.wikipedia.org/wiki/Good%E2%80%93Turing_frequency_estimationが役立つ場合があります – mcdowella

答えて

3

これは単なる純粋な数学であり、実際の「アルゴリズム」ではなく、データセットのすべての確率を単純に見積もります(実際に出現数を数えます)。特に、目的を達成するために非常に単純なデータ構造を使用できます。このように、文字のバッグとしてそれぞれ「リスト」を表す:

{A,A,B,C} -> {A:2, B:1, C:1} 
{A,B} -> {A:1, B:1} 

などと例えば、ある種の基本的な逆のインデックスを作成するには、別途、その数によってソートされた各文字のインデックスを保持します。

{A,B} + Cのようにクエリが来ると、少なくとも1つのAと1 B(インデックスを使用)を含むデータを検索し、Cを含む検索結果の割合を計算することで確率を推定します(または正確に1つのC)とすべての検索結果(これは、データが基本的なデータ生成分布からの独立したサンプルの束であると仮定すると、有効な確率推定値です)。

また、アルファベットが非常に小さい場合は、実際にすべての文字の組み合わせについてすべての値P(C|{A,B})などを事前計算することができます。

関連する問題