単純ベイズ分類の簡単な説明


547

私はナイーブベイズのプロセスを理解するのが難しいと感じており、誰かが英語で簡単な段階的なプロセスでそれを説明できるかどうか疑問に思っていました。時間による比較を確率として比較することは理解していますが、トレーニングデータが実際のデータセットとどのように関連しているかはわかりません。

トレーニングセットの役割を教えてください。ここでは、果物の非常に簡単な例を示します。

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

18
ベイズの定理を理解すれば、とても簡単です。ベイズの定理を読んでいない場合は、このリンクyudkowsky.net/rational/bayesを試してください。
2012

1
あなたの例を説明してください。トレーニングセットの最初の行:ラウンドは赤として分類されますか、それとも、別のものとして分類されるラウンドと赤の変数ですか?後者の場合、トレーニングセットの各エントリの分類は何ですか?
K Mehta

22
注:以下の承認された回答は、ナイーブベイズの従来の例ではありません。ほとんどの場合、Nearest Neighborの実装です。適宜読んでください。
chmullig 2013年

1
@Jaggerjack:RamNarasimhanの回答は、受け入れられた回答よりもよく説明されています。
Unmesha SreeVeni 2014年

2
まあ、実際にKNNであるとは限らない点がいくつかあるグラフを表示しても、確率を計算する方法はすべてあなた次第です。Naive Bayesは、事前に尤度を掛けてそれを計算するため、Yavarは彼の答えでそれを示しています。これらの確率に到達する方法は、ここでは本当に重要ではありません。正解は正解で問題はありません。
avinash shah 14

回答:


672

私の理解による質問は2つの部分に分かれています。1つはナイーブベイズ分類器をよりよく理解する必要があること、もう1つはトレーニングセットを取り巻く混乱です。

一般に、分類、予測などの教師あり学習タスク、またはクラスタリングなどの教師なし学習タスクについては、すべての機械学習アルゴリズムをトレーニングする必要があります。

トレーニングステップの間、アルゴリズムは特定の入力データセット(トレーニングセット)で教えられるため、後で(監視されている場合など)分類または予測できる未知の入力(これまでに見たことのないもの)をテストできます。学習)彼らの学習に基づいています。これは、ニューラルネットワーク、SVM、ベイジアンなどのほとんどの機械学習手法の基礎となっています。

したがって、一般的な機械学習プロジェクトでは、基本的に入力セットを開発セット(トレーニングセット+開発テストセット)とテストセット(または評価セット)に分割する必要があります。基本的な目的は、システムがDevセットまたはテストセットでこれまでに見たことのない新しい入力を学習して分類することであることを忘れないでください。

テストセットは通常、トレーニングセットと同じ形式です。ただし、テストセットとトレーニングコーパスを区別することは非常に重要です。単にトレーニングセットをテストセットとして再利用した場合、新しい例に一般化する方法を学習せずに、その入力を単純に記憶したモデルは誤解を招く可能性があります。高得点。

一般に、例として、データの70%をトレーニングセットのケースとして使用できます。また、元のセットをトレーニングセットとテストセットにランダムに分割することも忘れないでください。

さて、ナイーブベイズに関する他の質問に行きます。

ナイーブベイズ分類の概念を示すために、以下の例を検討してください。

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

示されるように、オブジェクトは、いずれかとして分類することができるGREEN、またはRED。私たちのタスクは、新しいケースが到着したときに分類することです。つまり、現在存在するオブジェクトに基づいて、それらが属するクラスラベルを決定します。

の2倍の数のGREENオブジェクトREDがあるため、新しいケース(まだ観測されていない)はのGREEN場合よりも2倍のメンバーシップを持つ可能性が高いと考えるのが妥当ですRED。ベイズ分析では、この信念は事前確率として知られています。以前の確率は、以前の経験、この場合はGREENREDオブジェクトのパーセンテージに基づいており、実際に発生する前に結果を予測するためによく使用されます。

したがって、次のように書くことができます。

の事前確率GREENnumber of GREEN objects / total number of objects

の事前確率REDnumber of RED objects / total number of objects

合計20 個の60オブジェクト40があるため、クラスメンバーシップの事前確率は次のとおりです。GREENRED

の事前確率GREEN40 / 60

の事前確率RED20 / 60

事前確率を定式化したので、新しいオブジェクト(WHITE下の図の円)を分類する準備ができました。オブジェクトは適切にクラスター化されているため、Xの近くにあるGREEN(またはRED)オブジェクトが多いほど、新しいケースがその特定の色に属する可能性が高くなると想定するのが妥当です。この可能性を測定するために、クラスラベルに関係なく、(アプリオリに選択される)多数のポイントを囲むXの周りに円を描きます。次に、各クラスラベルに属する円内の点の数を計算します。これから、可能性を計算します。

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

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

上の図から、の可能性が明らかであるX所与のGREENの可能性よりも小さいX所定のRED円が包含されるので、1 GREENオブジェクトおよび3 REDもの。したがって:

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

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

以前の確率は、にX属している可能性があることを示していますがGREENGREENと比較して2倍あるRED場合)、尤度はそうでないことを示しています。のクラスメンバーシップがでXあることREDREDの近くにより多くのオブジェクトがあるX場合GREEN)。ベイズ分析では、いわゆるベイズルール(トーマスベイズ1702〜1761牧師にちなんで名付けられた)を使用して事後確率を形成するために、情報の両方の情報源、つまり事前と尤度を組み合わせて最終的な分類が作成されます。

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

最後に、REDクラスメンバーシップが最大の事後確率を達成するため、Xを分類します。


39
上記のこのアルゴリズムは、k最近傍のようなものではありませんか?
ルノー2013年

251
この答えは紛らわしいです-それはKNN(k最寄りの隣人)と素朴なベイを混合します。
Michal Illich 2013

7
答えは可能性が出てくるまでうまく進んでいた。したがって、@ YavarはK最近傍を使用して尤度を計算しました。それはどれくらい正しいですか?もしそうなら、可能性を計算する他のいくつかの方法は何ですか?
wrahool 2014年

1
可能性の例として円を使用しました。可能性がガウスであるガウスナイーブベイについて読みました。それはどのように説明できますか?
umair durrani 2015年

1
実際、knnの答えは正しいです。分布がわからない場合、そのような分布の確率密度もわからない場合は、なんとかして見つける必要があります。これは、kNNまたはカーネルを介して行うことができます。いくつか欠けているものがあると思います。このプレゼンテーションをチェックすることもできます。
CS

1053

これは古い質問であり、確立された答えがあることを理解しています。私が投稿している理由は、受け入れられた回答には、異なるアルゴリズムであるk-NN(k-最近傍)の多くの要素があるためです。

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

質問はナイーブベイズに関するものなので、ここに私が誰かにアイデアとステップを説明する方法を示します。できるだけ少ない方程式で、できるだけ平易な英語でそれを行うようにします。

まず、条件付き確率とベイズのルール

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

平易な英語での条件付き確率何か他のことがすでに起こっているとすると、何かが起こる確率はどのくらいでしょうか。

いくつかの結果Oといくつかの証拠Eがあるとしましょう。これらの確率の定義方法から、次のようになります。結果Oと証拠Eの両方を持つ確率は、(Oが発生する確率)に(Eの確率)を掛けたものです。 Oが起こった)

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

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

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

(民主党と女性の上院議員)の確率=確率(上院議員は民主党員)に、民主党員であることを考えると、女性であることの条件付き確率を掛けます。

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

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

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

ベイズ規則について

概念的には、これはP(エビデンス|既知の結果)からP(アウトカム|既知のエビデンス)に進む方法です。多くの場合、既知の結果から、特定の証拠がどれほど頻繁に観察されるかがわかります。証拠が与えられた場合、この既知の事実を使用して逆を計算し、その結果が発生する可能性を計算する必要があります。

P(エビデンスがわかっている場合の結果)= P(アウトカムがわかっている場合のエビデンス)x Prob(結果)の積、P(エビデンス)でスケーリング

ベイズの法則を理解するための古典的な例:

Probability of Disease D given Test-positive = 

               Prob(Test is positive|Disease) * P(Disease)
     _______________________________________________________________
     (scaled by) Prob(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(evidence | outcome)が1の場合は、1を掛けるだけです。
  • 確率(特定の証拠|結果)が0の場合、確率全体。矛盾する証拠がある場合は、その結果を除外できます。
  • すべてをP(Evidence)で除算するので、計算せずに済むこともあります。
  • 事前確率を掛ける背後にある直観は、より一般的な結果には高い確率を与え、予想外の結果には低い確率を与えるためです。これらも呼ばれbase rates、予測確率をスケーリングする方法です。

NaiveBayesを適用して結果を予測する方法

考えられる結果ごとに上記の式を実行してください。私たちはを分類しようとしているので、それぞれの結果はと呼ばれ、classそれはclass label.Ourの役割です。繰り返しますが、非常に単純なアプローチを採用します。最も高い確率を持つクラスが「勝者」として宣言され、そのクラスラベルがその証拠の組み合わせに割り当てられます。

果物の例

私たちの理解を深めるために例で試してみましょう: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)  ...

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

名前にもかかわらず、ナイーブベイズは特定のアプリケーションで優れていることがわかりました。テキスト分類は、それが本当に素晴らしい分野の1つです。

Naive Bayesアルゴリズムの背後にある概念の理解に役立つことを願っています。


14
非常に明確な説明をありがとう!簡単にウェブ上に浮かんでいるものの1つです。質問:各P(結果/エビデンス)は1 / z = p(エビデンス)で乗算されます(これは、実の場合、それぞれが本質的に以前のエビデンスに基づく確率であることを意味します)。ナイーブベイズにとってはまったく関係ありませんか?つまり、たとえば、バナナではない長い/甘い/黄色の果物に遭遇した場合、誤って分類されることになります。
共分散

7
@ E.Chowはい、zの計算はNaive Bayesには関係ないという点で正しいです。(これは、確率を0から1の間でスケーリングする方法です。)zは、手元にあるすべての証拠の確率の積です。(これは、異なる事前分布のクラスの基本料金です。)あなたは正しいです:あなたがバナナではありませんロング/スウィート/イエローフルーツを見つけた場合、NBはこれに基づいて、バナナとして誤って分類されますトレーニングセット。このアルゴリズムは「証拠に基づいた最も確率的な推測」であるため、場合によっては誤って分類されます。
Ram Narasimhan

1
@Jasperテーブルには合計200個の「その他の果物」があり、そのうち50個は黄色です。したがって、果物が「その他の果物」であるとすると、宇宙は200です。そのうちの50は黄色です。したがって、50/200です。黄色い果物の総数は800であることに注意してください。したがって、P(その他の果物/黄色)が必要な場合は、50/800のように提案します。
ラムナラシンハン2014

3
絶対に素晴らしい説明。学術論文や本からこのアルゴリズムを理解することはできませんでした。なぜなら、難解な説明は、おそらく一般的に受け入れられている書き方だからです。それだけです。とても簡単です。ありがとう。
Suat Atan PhD 2015

3
確率の合計が1にならないのはなぜですか?例では証拠は0.26(500/100 * 650/1000 * 800/1000)なので、最終的なP(banana | ...)= 0.252 / 0.26 = 0.969、およびP(other | ...) = 0.01875 / 0.26 = 0.072。合計すると1.04になります!
Mauricio

18

Ram Narasimhanがコンセプトを非常によく説明しました。以下は、ナイーブベイズのコード例を
使用した代替の説明です。 これは、本書351ページの問題例を使用しています。
これは 、上記のデータセットで使用するデータセットです。仮説= 次に、彼がコンピュータを購入する、または購入しない確率はどのくらいか。 以下のコードはその質問に正確に答えます。 namedという名前のファイルを作成し、次のコンテンツを貼り付けるだけです。
ここに画像の説明を入力してください
{"Age":'<=30', "Income":"medium", "Student":'yes' , "Creadit_Rating":'fair'}

new_dataset.csv

Age,Income,Student,Creadit_Rating,Buys_Computer
<=30,high,no,fair,no
<=30,high,no,excellent,no
31-40,high,no,fair,yes
>40,medium,no,fair,yes
>40,low,yes,fair,yes
>40,low,yes,excellent,no
31-40,low,yes,excellent,yes
<=30,medium,no,fair,no
<=30,low,yes,fair,yes
>40,medium,yes,fair,yes
<=30,medium,yes,excellent,yes
31-40,medium,no,excellent,yes
31-40,high,yes,fair,yes
>40,medium,no,excellent,no

ここに、コメントが私たちがここで行っているすべてを説明するコードです![パイソン]

import pandas as pd 
import pprint 

class Classifier():
    data = None
    class_attr = None
    priori = {}
    cp = {}
    hypothesis = None


    def __init__(self,filename=None, class_attr=None ):
        self.data = pd.read_csv(filename, sep=',', header =(0))
        self.class_attr = class_attr

    '''
        probability(class) =    How many  times it appears in cloumn
                             __________________________________________
                                  count of all class attribute
    '''
    def calculate_priori(self):
        class_values = list(set(self.data[self.class_attr]))
        class_data =  list(self.data[self.class_attr])
        for i in class_values:
            self.priori[i]  = class_data.count(i)/float(len(class_data))
        print "Priori Values: ", self.priori

    '''
        Here we calculate the individual probabilites 
        P(outcome|evidence) =   P(Likelihood of Evidence) x Prior prob of outcome
                               ___________________________________________
                                                    P(Evidence)
    '''
    def get_cp(self, attr, attr_type, class_value):
        data_attr = list(self.data[attr])
        class_data = list(self.data[self.class_attr])
        total =1
        for i in range(0, len(data_attr)):
            if class_data[i] == class_value and data_attr[i] == attr_type:
                total+=1
        return total/float(class_data.count(class_value))

    '''
        Here we calculate Likelihood of Evidence and multiple all individual probabilities with priori
        (Outcome|Multiple Evidence) = P(Evidence1|Outcome) x P(Evidence2|outcome) x ... x P(EvidenceN|outcome) x P(Outcome)
        scaled by P(Multiple Evidence)
    '''
    def calculate_conditional_probabilities(self, hypothesis):
        for i in self.priori:
            self.cp[i] = {}
            for j in hypothesis:
                self.cp[i].update({ hypothesis[j]: self.get_cp(j, hypothesis[j], i)})
        print "\nCalculated Conditional Probabilities: \n"
        pprint.pprint(self.cp)

    def classify(self):
        print "Result: "
        for i in self.cp:
            print i, " ==> ", reduce(lambda x, y: x*y, self.cp[i].values())*self.priori[i]

if __name__ == "__main__":
    c = Classifier(filename="new_dataset.csv", class_attr="Buys_Computer" )
    c.calculate_priori()
    c.hypothesis = {"Age":'<=30', "Income":"medium", "Student":'yes' , "Creadit_Rating":'fair'}

    c.calculate_conditional_probabilities(c.hypothesis)
    c.classify()

出力:

Priori Values:  {'yes': 0.6428571428571429, 'no': 0.35714285714285715}

Calculated Conditional Probabilities: 

{
 'no': {
        '<=30': 0.8,
        'fair': 0.6, 
        'medium': 0.6, 
        'yes': 0.4
        },
'yes': {
        '<=30': 0.3333333333333333,
        'fair': 0.7777777777777778,
        'medium': 0.5555555555555556,
        'yes': 0.7777777777777778
      }
}

Result: 
yes  ==>  0.0720164609053
no  ==>  0.0411428571429

問題の理解に役立つことを願っています

平和


18

素朴なベイズ: Naive Bayesは、データセットの分類に使用されていた機械学習の監視下にあります。事前の知識と独立性の仮定に基づいて物事を予測するために使用されます。

彼らはそれをナイーブと呼びます仮定(データセット内のすべての機能が等しく重要で独立していることを前提としている)は本当に楽観的であり、ほとんどの実際のアプリケーションではめったにないため、ます。

未知のデータセットを決定するのは分類アルゴリズムです。ベイズの定理に基づいています、その事前知識に基づいてイベントの確率を記述する基づいています。

下の図は、単純ベイズがどのように機能するかを示しています

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

NBを予測する式:

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

単純ベイズアルゴリズムの使用方法

NBがどのように機能するかの例を見てみましょう

ステップ1:最初に、下の図で「はい」または「いいえ」の確率を示す表の尤度を見つけます。ステップ2:各クラスの事後確率を見つけます。

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

Problem: Find out the possibility of whether the player plays in Rainy condition?

P(Yes|Rainy) = P(Rainy|Yes) * P(Yes) / P(Rainy)

P(Rainy|Yes) = 2/9 = 0.222
P(Yes) = 9/14 = 0.64
P(Rainy) = 5/14 = 0.36

Now, P(Yes|Rainy) = 0.222*0.64/0.36 = 0.39 which is lower probability which means chances of the match played is low.

詳細については、これらのブログを参照してください

GitHubリポジトリのNaive-Bayes-Examplesを参照


14

ベイズの法則について例を挙げて説明します。

社会から選ばれたランダムな人が喫煙者である確率はどれくらいですか?

10%返信できます。

では、その人が男性15歳の場合はどうでしょうか。

60%になることはありませんが、喫煙者の割合は非常に低いことがわかっています。10%未満にすることもできません。15%または20%がより適切な推測です。

実際、私たちは初期の推測を新しい証拠(P(smoker) vs. P(smoker | evidence))で更新しようとします。ベイズ規則は、これら2つの確率を結び付ける方法です。

P(smoker | evidence) = P(smoker)* p(evidence | smoker)/P(evidence)

それぞれの証拠により、この機会が増減する場合があります。たとえば、彼が男性であるというこの事実は、非喫煙者の間のこの比率(男性である)が低いことを条件として、可能性を高める可能性があります。言い換えれば、男性であることは、非喫煙者というよりも喫煙者であることの良い指標でなければなりません。

この貢献を別の方法で示すこともできます。各機能について、特定の条件下でのその機能の共通性(確率)をその共通性のみと比較できます。(P(f | x) vs. P(f))

P(smoker | evidence) / P(smoker) = P(evidence | smoker)/P(evidence)

たとえば、喫煙者の90%が男性であることを知っている場合、男性であることは喫煙者の指標であるかどうかを判断するのにまだ十分ではありません。たとえば、社会で男性である確率も90%である場合、誰かが男性であることを知ることは私たちを助けません((90% / 90%) = 1。しかし、男性が社会の40%、喫煙者の90%に貢献している場合、誰かが男性であることを知ると、喫煙者になる可能性が高まります。(90% / 40%) = 2.25になる高くなるため、最初の推測(10%)が2.25増加し、結果として22.5%になります。

ただし、社会で男性である確率が95%である場合、喫煙者の男性の割合が高い(90%)という事実に関係なく!誰かが男性であるという証拠は、彼が喫煙者になる可能性を減らします!(90% / 95%) = 0.95)

だから私たちは:

P(smoker | f1, f2, f3,... ) = P(smoker) * contribution of f1* contribution of f2 *... =
P(smoker)* 
(P(being a man | smoker)/P(being a man))*
(P(under 20 | smoker)/ P(under 20))

この式では、男性であることと20歳未満であることを前提としています。は独立した特徴し、それらを掛け合わせたであることを知っていても、男性または女性であると推測する効果はありません。しかし、それは真実ではないかもしれません、例えば、おそらく社会のほとんどの青年期は男性です...

この式を分類子で使用するには

分類子にはいくつかの機能(男性であることと20歳未満であること)が与えられており、喫煙者かどうかを判断する必要があります(これらは2つのクラスです)。上記の式を使用して、証拠(機能)の下の各クラスの確率を計算し、最も高い確率のクラスを入力に割り当てます。必要な確率(90%、10%、80%...)を提供するために、トレーニングセットを使用します。たとえば、トレーニングセット内の喫煙者をカウントし、サンプルの10%を占めていることがわかります。次に、喫煙者が男性または女性であるかどうかを確認します。20歳以上または20歳未満である人数を確認します。つまり、トレーニングに基づいて、各クラスの特徴の確率分布を構築しようとします。データ。

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