1

スパム フィルタリング用にナイーブ ベイジアン分類器を実装しています。ある計算に疑問があります。何をすべきか明確にしてください。これが私の質問です。

この方法では、計算する必要があります

代替テキスト

P(S|W) -> ワード W が発生した場合、メッセージがスパムである確率。

P(W|S) -> 単語 W がスパム メッセージに含まれる確率。

P(W|H) -> ハム メッセージで単語 W が発生する確率。

したがって、P(W|S) を計算するには、次のうちどれが正しいですか。

  1. (迷惑メールにWが出現した回数)/(全メッセージにWが出現した回数の合計)

  2. (スパムに単語 W が含まれる回数)/(スパム メッセージに含まれる単語の総数)

では、P(W|S) を計算するには、(1) または (2) を実行する必要がありますか? ((2)だと思ったのですが、よくわかりません。)

ちなみに、情報についてはhttp://en.wikipedia.org/wiki/Bayesian_spam_filteringを参照しています。

今週末までに実装を完了しなければなりません:(


「W」という単語を繰り返し使用すると、メッセージのスパム スコアが高くなるのではないですか? あなたのアプローチではそうではありませんよね?

100 個のトレーニング メッセージがあり、そのうち 50 個がスパムで、50 個がハムであるとします。各メッセージの word_count = 100 と言います。

また、スパム メッセージでは単語 W が各メッセージで 5 回出現し、ハム メッセージでは単語 W が 1 回出現するとします。

したがって、すべてのスパム メッセージで W が発生する合計回数 = 5*50 = 250 回。

また、すべての Ham メッセージで W が発生した合計回数 = 1*50 = 50 回。

すべてのトレーニング メッセージでの W の合計発生数 = (250+50) = 300 回。

では、このシナリオでは、どのように P(W|S) と P(W|H) を計算しますか?

当然期待すべきP(W|S) > P(W|H)ですよね?

4

3 に答える 3

5

P(W|S)= (W を含むスパム メッセージの数) / (すべてのスパム メッセージの数)

于 2010-05-13T15:54:48.017 に答える
2

かなり古い質問ですが、どれも完全な答えではないので、修正する価値があります。

ナイーブベイズは単一のアルゴリズムではなく、同じベイズルールに基づくアルゴリズムのファミリーです。

ここに画像の説明を入力してください

ここCで、はクラス(この例ではhamまたはspam)でありx、矢印は属性のベクトル(最も単純な場合は単語)です。 データセット全体P(C)におけるクラスのメッセージの割合です。はvectorで記述された属性を持つメッセージの発生確率ですが、このパラメーターはすべてのクラスで同じであるため、当面は省略できます。しかし、この質問はについてであり、現在のメッセージのベクトルを前提として、どのように計算する必要がありますか?CP(x)xP(x|C)x

実際、答えはNBアルゴリズムの具体的なタイプによって異なります。それらのいくつかには、多変量ベルヌーイNB多変量ガウスNB数値属性とブール属性を持つ多項NBなどがあります。それぞれの計算の詳細と、スパムフィルタリングのタスクに対するNB分類子の比較については、このペーパーを参照してください。P(x|C)

于 2012-02-23T19:51:37.007 に答える
1

このベイジアン式では、W はあなたの「特徴」、つまりあなたが観察するものです。

最初に W とは何かを慎重に定義する必要があります。多くの場合、多くの選択肢があります。

最初のアプローチで、W は「メッセージにバイアグラという単語が含まれている」というイベントであるとします。(つまり、W には 2 つの可能な値があります: 0 = "メッセージに V... という単語が含まれていない" 1="メッセージにその単語が少なくとも 1 回含まれている")。

そのシナリオでは、あなたの言うとおりです。P(W|S) は、「単語 W がスパム メッセージに (少なくとも 1 回) 現れる確率」です。 そして、それを推定する(「計算する」よりも良い)には、他の回答が言うように、「(少なくとも1つの単語Vを含むスパムメッセージの数)/(すべてのスパムメッセージの数)」を数えます

別のアプローチは次のとおりです。「W = メッセージ内のバイアグラという単語の出現回数」を定義します。この場合、W の各値に対して P(W/S) を推定する必要があります (P(W=0/S) P(W=1/S) P(W=2/S) ... もっと複雑に、もっとサンプルが必要で、(できれば) パフォーマンスが向上します。

于 2010-05-13T16:02:07.677 に答える