ナイーブベイズ分類の簡単な説明 [closed] 質問する

ナイーブベイズ分類の簡単な説明 [closed] 質問する

Naive Bayes のプロセスを理解するのが難しく、誰かが英語で簡単なステップバイステップのプロセスを説明してくれるかどうか疑問に思っています。確率として発生した回数による比較を行うことは理解していますが、トレーニング データが実際のデータセットとどのように関連しているかはわかりません。

トレーニングセットがどのような役割を果たすのか説明してください。ここではバナナのような果物の非常に簡単な例を挙げています。

training set---
round-red
round-orange
oblong-yellow
round-red

dataset----
round-red
round-orange
round-red
round-orange
oblong-yellow
round-red
round-orange
oblong-yellow
oblong-yellow
round-red

ベストアンサー1

受け入れられた回答には、k-NN ( k近傍) の要素が多数含まれており、アルゴリズムが異なります。

k-NN と NaiveBayes はどちらも分類アルゴリズムです。概念的には、k-NN は「近さ」という概念を使用して新しいエンティティを分類します。k-NN では、「近さ」はユークリッド距離やコサイン距離などの概念を使用してモデル化されます。対照的に、NaiveBayes では、「確率」という概念を使用して新しいエンティティを分類します。

質問は Naive Bayes に関するものなので、考え方と手順を次のように説明します。できるだけ数式を少なくし、平易な英語で説明するようにします。

まず、条件付き確率とベイズの定理

ナイーブ ベイズのニュアンスを理解して評価するには、まず条件付き確率とベイズの規則という関連する概念をいくつか知っておく必要があります。(これらの概念に精通している場合は、「ナイーブ ベイズへの導入」というセクションに進んでください)

条件付き確率を平易な英語で表現すると、何かがすでに起こっていると仮定した場合、何かが起こる確率はどれくらいかということです。

結果 O と証拠 E があるとします。これらの確率の定義方法は次のとおりです。結果 O と証拠 E の両方が発生する確率は、(O が発生する確率) と (O が発生した場合の E の確率) を掛けた値です。

条件付き確率を理解するための一例:

米国上院議員のコレクションがあるとします。上院議員は民主党員または共和党員です。また、男性または女性です。

上院議員を 1 人完全にランダムに選んだ場合、その人が女性民主党員である確率はどれくらいでしょうか。条件付き確率は、その答えを見つけるのに役立ちます。

(民主党員かつ女性上院議員) の確率 = (上院議員が民主党員である) の確率に、民主党員である場合に女性である条件付き確率を掛けたもの。

  P(Democrat & Female) = P(Democrat) * P(Female | Democrat) 

まったく同じことを逆の方法で計算することもできます。

  P(Democrat & Female) = P(Female) * P(Democrat | Female) 

ベイズの定理を理解する

概念的には、これは P(証拠|既知の結果) から P(結果|既知の証拠) に進む方法です。既知の結果が与えられた場合、特定の証拠がどのくらいの頻度で観察されるかがわかっていることがよくあります。この既知の事実を使用して逆を計算し、証拠が与えられた場合にその結果が発生する可能性を計算する必要があります。

P(何らかの証拠がわかっている場合の結果) = P(結果がわかっている場合の証拠) × Prob(結果)、P(証拠)でスケール

ベイズの定理を理解するための典型的な例:

Probability of Disease D given Test-positive = 

               P(Test is positive|Disease) * P(Disease)
     _______________________________________________________________
     (scaled by) P(Testing Positive, with or without the disease)

さて、ここまでは、ナイーブベイズに至る前置きに過ぎませんでした。

ナイーブベイズへの道

これまでは、1 つの証拠についてのみ説明してきました。実際には、複数の証拠に基づいて結果を予測する必要があります。その場合、計算は非常に複雑になります。この複雑さを回避する 1 つの方法は、複数の証拠を「分離」し、各証拠を独立したものとして扱うことです。このアプローチは、ナイーブベイズと呼ばれる理由です。

P(Outcome|Multiple Evidence) = 
P(Evidence1|Outcome) * P(Evidence2|outcome) * ... * P(EvidenceN|outcome) * P(Outcome)
scaled by P(Multiple Evidence)

多くの人はこれを次のように覚えることを選択します:

                      P(Likelihood of Evidence) * Prior prob of outcome
P(outcome|evidence) = _________________________________________________
                                         P(Evidence)

この方程式についていくつか注意すべき点があります。

  • Prob(証拠|結果)が 1 の場合、単に 1 を掛けるだけです。
  • 確率 (特定の証拠|結果) が 0 の場合、全体の確率も 0 になります。矛盾する証拠が見つかった場合は、その結果を除外できます。
  • すべてを P(証拠) で割るので、計算しなくても済みます。
  • 事前確率を掛け合わせる背後にある直感は、より一般的な結果に高い確率を与え、起こりそうもない結果に低い確率を与えることです。これらは とも呼ばれbase rates、予測される確率をスケーリングする方法です。

NaiveBayes を適用して結果を予測するにはどうすればよいでしょうか?

それぞれの可能性のある結果に対して、上記の式を実行するだけです。を分類しようとしているため、それぞれの結果は と呼ばれclass、 を持ちます。class label.私たちの仕事は、証拠を見て、このクラスまたはそのクラスである可能性を検討し、各エンティティにラベルを割り当てることです。ここでも、非常に単純なアプローチを採用しています。最も高い確率を持つクラスが「勝者」と宣言され、そのクラス ラベルがその証拠の組み合わせに割り当てられます。

果物の例

理解を深めるために例で試してみましょう。OP は「果物」の識別例を求めました。

1000 個の果物に関するデータがあるとします。バナナオレンジ、その他の果物です。それぞれの果物について 3 つの特性がわかっています。

  1. 長いかどうか
  2. 甘くて
  3. 色が黄色の場合。

これは私たちの「トレーニング セット」です。これを使用して、遭遇する新しい果​​物の種類を予測します。

Type           Long | Not Long || Sweet | Not Sweet || Yellow |Not Yellow|Total
             ___________________________________________________________________
Banana      |  400  |    100   || 350   |    150    ||  450   |  50      |  500
Orange      |    0  |    300   || 150   |    150    ||  300   |   0      |  300
Other Fruit |  100  |    100   || 150   |     50    ||   50   | 150      |  200
            ____________________________________________________________________
Total       |  500  |    500   || 650   |    350    ||  800   | 200      | 1000
             ___________________________________________________________________

果物コレクションに関する多くのことを事前に計算できます。

いわゆる「事前」確率。(果物の属性を何も知らなければ、これが推測になります。)これらはbase rates.

 P(Banana)      = 0.5 (500/1000)
 P(Orange)      = 0.3
 P(Other Fruit) = 0.2

「証拠」の可能性

p(Long)   = 0.5
P(Sweet)  = 0.65
P(Yellow) = 0.8

「可能性」の確率

P(Long|Banana) = 0.8
P(Long|Orange) = 0  [Oranges are never long in all the fruit we have seen.]
 ....

P(Yellow|Other Fruit)     =  50/200 = 0.25
P(Not Yellow|Other Fruit) = 0.75

果物が与えられたら、それをどのように分類しますか?

未知の果物の特性が与えられ、それを分類するように求められたとします。果物は長くて、甘くて、黄色いと言われています。それはバナナでしょうか? オレンジでしょうか? それとも他の果物でしょうか?

3 つの結果のそれぞれについて、1 つずつ数値を実行するだけです。次に、最も高い確率を選択し、以前の証拠 (1000 個の果物のトレーニング セット) に基づいて、最も高い確率を持つクラスに属するものとして未知の果物を「分類」します。

P(Banana|Long, Sweet and Yellow) 
      P(Long|Banana) * P(Sweet|Banana) * P(Yellow|Banana) * P(banana)
    = _______________________________________________________________
                      P(Long) * P(Sweet) * P(Yellow)
                      
    = 0.8 * 0.7 * 0.9 * 0.5 / P(evidence)

    = 0.252 / P(evidence)


P(Orange|Long, Sweet and Yellow) = 0


P(Other Fruit|Long, Sweet and Yellow)
      P(Long|Other fruit) * P(Sweet|Other fruit) * P(Yellow|Other fruit) * P(Other Fruit)
    = ____________________________________________________________________________________
                                          P(evidence)

    = (100/200 * 150/200 * 50/200 * 200/1000) / P(evidence)

    = 0.01875 / P(evidence)

圧倒的多数 ( 0.252 >> 0.01875) により、この甘くて長い黄色の果物はバナナである可能性が高いと分類されます。

ベイズ分類器がなぜ人気があるのでしょうか?

最終的にどうなるか見てみましょう。単に数えて掛け算するだけです。これらすべての項を事前に計算できるので、分類が簡単かつ迅速かつ効率的になります。

Let z = 1 / P(evidence).ここで、次の 3 つの量を簡単に計算します。

P(Banana|evidence) = z * Prob(Banana) * Prob(Evidence1|Banana) * Prob(Evidence2|Banana) ...
P(Orange|Evidence) = z * Prob(Orange) * Prob(Evidence1|Orange) * Prob(Evidence2|Orange) ...
P(Other|Evidence)  = z * Prob(Other)  * Prob(Evidence1|Other)  * Prob(Evidence2|Other)  ...

最も大きい番号のクラス ラベルを割り当てれば完了です。

名前に反して、Naive Bayes は特定のアプリケーションでは優れた性能を発揮します。テキスト分類は、Naive Bayes が特に優れている分野です。

おすすめ記事