Naive Bayesでは、テストセットに未知の単語があるのに、なぜラプラススムージングに悩まされるのですか?


27

今日は、単純ベイズ分類について読んでいた。追加のスムージングを使用したパラメーター推定の見出しの下で読みました:

してみましょう(例えば正または負など)クラスを参照してください、としましょうトークンまたは単語を参照してください。cw

の最尤推定量は、P(w|c)

count(w,c)count(c)=counts w in class ccounts of words in class c.

この推定は、未知の単語を含むドキュメントに対して確率を与えるため、問題になる可能性があります。この問題を解決する一般的な方法は、ラプラス平滑化を使用することです。P(w|c)0

Vをトレーニングセット内の単語セットとし、単語セットに新しい要素(不明)を追加します。UNK

定義

Pw|c=カウントwc+1カウントc+|V|+1

ここで、は語彙(トレーニングセットの単語)を指します。V

特に、未知の単語には確率

1カウントc+|V|+1

私の質問はこれです。なぜこのラプラススムージングに悩まされるのでしょうか?テストセットで遭遇するこれらの未知の単語の確率が明らかにほぼゼロである場合、つまり、モデルにそれらを含めることのポイントは何ですか?なぜそれらを無視して削除しないのですか? 1カウントc+|V|+1


3
そうしないと、以前に見えなかった単語を含む文に遭遇すると、ます。これは、不可能なイベントが発生したことを意味します。それはあなたのモデルが信じられないほど不適合だったことを意味します。また、適切なベイジアンモデルでは、未知の単語の確率は事前(おそらく1ではない)で与えられる分子を持つため、これは決して起こり得ません。だから、なぜこれに「ラプラススムージング」という派手な名前が必要なのかわかりません。p=0
推測

1
読み物の由来は何ですか?
言葉forthewise

回答:


17

この「フェイルセーフ」確率が常に必要です。

トレーニングサンプルの単語がテスト文に表示されない最悪の場合を考えてください。この場合、あなたのモデルの下では、文は不可能であるが、矛盾が生じていることは明らかです。

別の極端な例は、テスト文「アレックスはスティーブに会いました」です。ここで、「met」はトレーニングサンプルに数回現れますが、「Alex」と「Steve」は現れません。あなたのモデルは、この記述は真実ではない可能性が高いと結論付けるでしょう。


完全なバカのように聞こえるのは嫌ですが、詳しく説明してもらえますか?「Alex」と「Steve」を削除すると、ステートメントが発生する可能性がどのように変わりますか?
マットオブライエン14

2
単語P(Alex)P(Steve)P(met)<< P(met)の独立性を仮定する場合
シド14

1
トレーニングデータセットでモデルをトレーニングするときにボキャブラリーを構築できるので、テストデータセットで予測を行うときにボキャブラリーで発生しないすべての新しい単語を削除しないのはなぜですか。
アボカド

15

Naive Bayes Classifierを「Ham」と「Spam」の2つのクラスでトレーニングしたとしましょう(つまり、電子メールを分類します)。簡単にするために、事前確率は50/50であると仮定します。

さて、あなたは電子メールを持っているとしましょうw1w2wnと言う、これはあなたの分級率が非常に非常に"ハム"として

PHam|w1w2wn=.90
及び
PSpam|w1w2wn=.10

ここまでは順調ですね。

さて、あなたは別の電子メール持っているとしましょうw1w2wnwn+1語彙に含まれていないことで一つの単語があることを正確除いて、上記のメールと同じです。したがって、この単語のカウントは0であるため、

P(Ham|wn+1)=P(Spam|wn+1)=0

突然、

P(Ham|w1,w2,...wn,wn+1)=P(Ham|w1,w2,...wn)P(Ham|wn+1)=0
および
PSpam|w1w2wnwn+1=PSpam|w1w2wnPSpam|wn+1=0

1番目の電子メールは1つのクラスに強く分類されていますが、この2番目の電子メールは、最後の単語の確率がゼロであるため、異なる方法で分類される場合があります。

ラプラス平滑化は、両方のクラスの最後の単語にゼロ以外の小さな確率を与えることでこれを解決し、事後確率が突然ゼロにならないようにします。


語彙にまったく存在しない単語を保持するのはなぜですか?なぜ単に削除しないのですか?
アボカド

4
分類者が電子メールをハムである可能性が高いと評価した場合、p(ham | w1、...、wn)は0.9であり、p(w1、...、wn | ham)ではありません
braaterAfrikaaner

5

この質問は、ベイズ推定器に精通している場合、ベイズ推定器の直接の結論なので、かなり単純です。

ベイジアンアプローチでは、パラメータは、その分布が確率分布(または事前分布)で記述できる量と見なされます。

したがって、ピックアップの手順を多項分布として見ると、いくつかの手順で問題を解決できます。

まず、定義する

m=|V|,n=ni

p事前分布が均一分布であると仮定すると、次のように条件付き確率分布を計算できます。

pp1p2pm|n1n2nm=Γn+m=1mΓn+1=1mpn

実際、それはディリクレ分布であり、p期待値は

E[p]=n+1n+m

p自然推定値は、事後分布の平均です。したがって、pベイズ推定量を与えることができます。

p^=E[p]

ラプラススムージングと同じ結論を導き出していることがわかります。


4

これらの単語を無視することは、それを処理する別の方法です。すべての欠損変数の平均化(積分)に対応します。そのため、結果は異なります。どうやって?

PC|d=arg最大Cpt|CPCPdarg最大Cpt|CPC
dtd

トークンが表示されないとしましょう。ラプラススムージング(多項ベイズの前にディリクレを課すことで得られます)を使用する代わりに、次のように対応するを合計します:未知のトークンの可能性(それらがあるかどうか) 。 t ktktk

PC|darg最大Ctkpt|CPC=arg最大CPCkpt|Ctkptk|C=arg最大CPCkpt|C

しかし、実際には、スムージングアプローチが好まれます。それらのトークンを無視する代わりに、考えているような低い確率を割り当てます:未知のトークンを持っている場合、そうでないと思っている種類の文書ではないでしょう。


2

Naive Bayes分類器でスムージングをまったく行わない理由を知りたい(代わりに未知の機能を破棄できる場合)。

あなたの質問に対する答えは、すべてのクラスですべての単語が未知である必要はないということです。

次のように、機能AB、およびCを持つ2つのクラスMおよびNがあるとします。

M:A = 3、B = 1、C = 0

(クラスMでは、Aは3回、Bは1 回だけ表示されます)

N:A = 0、B = 1、C = 3

(クラスNでは、Cは3回、Bは1 回だけ表示されます)

ゼロ回出現するフィーチャーを捨てるとどうなるか見てみましょう。

A)すべてのクラスでゼロ回表示される機能を捨てる

フィーチャACがクラスのいずれにもゼロ回出現するため、それらを破棄すると、ドキュメントを分類するためのフィーチャBのみが残ります。

また、以下に示すように、その情報を失うことは悪いことです!

次のようなテストドキュメントが提示された場合:

B = 1、C = 3

(Bを1回、Cを3回含む)

これで、機能ABを破棄したため、上記のドキュメントがクラスMに属しているかクラスNに属しているかを判断できなくなります。

したがって、機能情報を失うことは悪いことです!

B)すべてのクラスでゼロ回表示される機能を捨てる

すべてのクラスでゼロ回出現する機能のみを破棄することにより、この問題を回避することは可能ですか?

いいえ、それは独自の問題を作成するためです!

次のテストドキュメントは、それを行うとどうなるかを示しています。

A = 3、B = 1、C = 1

MNの確率は両方ともゼロになります(クラスNAのゼロ確率とクラスMCのゼロ確率を捨てなかったため)。

C)何も捨てない-代わりにスムージングを使用する

以下の理由により、スムージングを使用すると、上記の両方のドキュメントを正しく分類できます。

  1. そのような情報が利用可能なクラスでカウント情報を失うことはなく、
  2. ゼロカウントと競合する必要はありません。

実際の単純ベイズ分類器

NLTKのNaive Bayes分類子は、どのクラスでもカウントがゼロのフィーチャを破棄するために使用されていました。

これは、ハードEMプロシージャを使用してトレーニングしたときにパフォーマンスが低下するために使用されていました(非常に少ないトレーニングデータから分類器がブートストラップされる)。


2
@ Aiaioo Labs彼は、トレーニングセットにまったく表示されていない単語を参照していることに気づきませんでした。たとえば、Dが表示された場合、彼は、テストセットではなくトレーニングセット。TESTセットの未知の単語でラプラススムージングを使用すると、0 + 1/2 + 3が0 + 1/3 + 3よりも大きいため、トークンの量が最も少ないクラスに向かって確率が偏ります(クラスの1つが3つのトークンと他のトークンには2)がありました。...

2
これにより、未知の単語が十分に平滑化されて方程式になった場合、実際には正しい分類が誤った分類に変わる可能性があります。ラプラスの平滑化は、トレーニングセットの計算には問題ありませんが、テストセットの分析には有害です。また、すべての未知の単語を含むテストセットがあるとします。テストセットはすぐに最高の確率でクラスに分類される必要がありますが、実際にはそうなることはありません。トークンの。

@DrakeThatcher、あなたに非常に同意します。語彙にない単語を削除しない場合、はい、予測された確率は最小の単語数のクラスに偏ります。
アボカド

1

Naive Bayesを勉強しているときにも同じ問題に遭遇しました。

私によると、トレーニング中に遭遇しなかったテスト例に遭遇するたびに、アウト事後確率は0になります。

したがって、1を追加すると、特定のフィーチャ/クラスでトレーニングしていなくても、事後確率は0になりません。


1

マット、あなたは非常に良い点を挙げます-はい、ラプラススムージングは​​率直に言ってナンセンスです!特に分母も少数である場合、これらの機能を単に破棄するだけで有効なアプローチになります。確率推定をサポートするだけの十分な証拠はありません。

任意の調整を使用して問題を解決することに強い嫌悪感を抱いています。ここでの問題はゼロです。「解決策」は、「ゼロに小さな値を追加してゼロにならないようにすることです-MAGICの問題はもうありません」。もちろん、それはまったくarbitrary意的です。

優れた機能選択の最初の提案は、arbitrary意的なアプローチではなく、IMEはパフォーマンスを向上させます。さらに、私の経験ではモデルが持つ単純なベイズと組み合わせたラプラススムージングは​​、粒度の問題を悪化させます。つまり、スコア出力が1.0または0.0に近い傾向がある問題(特徴の数が無限の場合、すべてのスコアは1.0または0.0 -これは独立性の仮定の結果です)。

現在、確率推定のための代替手法(最大尤度+ラプラス平滑化以外)が存在しますが、十分に文書化されていません。実際、情報理論からの多くのツールを使用する帰納論理と推論プロセスと呼ばれるフィールド全体があります。

実際に使用するのは、ジェフリーの更新の拡張である最小クロスエントロピー更新であり、証拠と一致する確率空間の凸領域を定義し、その点が最大尤度推定を意味する領域になるようにしますその時点から予想される絶対偏差。

これには、データポイントの数が少なくなると、推定が平和的にスムーズに前の値に近づくという優れた特性があります。したがって、ベイズ計算での効果はゼロです。一方、ラプラスの平滑化により、各推定は、前ではない可能性がある最大エントロピーのポイントに近づくため、計算の影響はゼロではなく、ノイズが追加されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.