2016-06-17 5 views
3

解釈条件付き確率:以下のプロセスを使用して分類溶液に作業R

。 e1071を使用してRでNaive Bayes分類を実行します。

b。事前確率テーブルと条件付確率テーブルを取得する

c。アプリケーション内のPL/SQLプログラムを使用して、予測値を使用します。すなわち、最終的な予測はR予測関数の使用を伴わない。

ステップbでは、モデル生成後にRによって返される負の条件付き確率と1より大きい条件付き確率を見ています - 実際に条件付き確率ですか?

2つのデータセットの問題点を説明します.1つは私が解釈できるもの、もう1つは解釈できないものです。

データセット1: フルーツ識別ナイーブベイズ分類の実行(このフォーラムでの素敵なナイーブベイズ図にこれを見た)

Data Frame Fruit_All: 

Long Sweet Yellow Fruit 

Yes Yes Yes Banana 

Yes Yes Yes Banana 

Yes Yes Yes Banana 

Yes Yes Yes Banana 

No Yes Yes Banana 

No Yes Yes Orange 

No Yes Yes Orange 

No Yes Yes Orange 

Yes Yes Yes Other 

No Yes No Other 

Yes Yes Yes Banana 

Yes Yes Yes Banana 

Yes No Yes Banana 

Yes No No Banana 

No No Yes Banana 

No No Yes Orange 

No No Yes Orange 

No No Yes Orange 

Yes Yes No Other 

No No No Other 

:フルーツクラス列である

`NB.fit <- naiveBayes(Fruit~., data=Fruit_All,laplace=0)` 

をFruit_Allは完全なデータフレームです。

NB.fitで返される条件付き確率は、まったく同じです。私は予測することが容易にコードを記述するために、上記を使用することができ

 Long   
Y   No Yes   
    Banana 0.2 0.8   
    Orange 1.0 0.0   
    Other 0.5 0.5   

     Sweet  
Y   No Yes  
    Banana 0.30 0.70  
    Orange 0.50 0.50  
    Other 0.25 0.75  

     Yellow  
Y   No Yes  
    Banana 0.10 0.90  
    Orange 0.00 1.00  
    Other 0.75 0.25  

A-priori probabilities:   

Banana Orange Other    
    0.5 0.3 0.2  

また、全ての行確率がきちんとバナナ+イエロー

条件付き確率1. eg0.1 + 0.9まで追加します提供された入力に対する結果ロング、スウィート、イエローはすべてイエスです。

この製品が最大となるため果物:

P(Long|Fruit) * P(Sweet|Fruit) * P(Yellow|Fruit) * apriori P(Fruit)

データセット2:で

  Sepal.Length 
Y    [,1]  [,2] 

    setosa  5.006 0.3524897 

    versicolor 5.936 0.5161711 

    virginica 6.588 0.6358796 

      Sepal.Width 
Y    [,1]  [,2] 

    setosa  3.428 0.3790644 

    versicolor 2.770 0.3137983 

    virginica 2.974 0.3224966 

      Petal.Length 
Y    [,1]  [,2] 

    setosa  1.462 0.1736640 

    versicolor 4.260 0.4699110 

    virginica 5.552 0.5518947 

      Petal.Width 
Y    [,1]  [,2] 

    setosa  0.246 0.1053856 

    versicolor 1.326 0.1977527 

    virginica 2.026 0.2746501 

:R

`NB.fit <- naiveBayes(Species~., data=iris)` 

条件付き確率で利用可能なアイリスデータセットこの場合、同じ関数が返されていないようですいくつかの値が1より大きく、行のどれも1に足りないため、条件付き確率が発生します。

注:Rで予測関数を使用すると、Irisの予測として正しい結果が得られます。

アイリスのデータセットは、フルーツの例とは異なり、変数が連続した数値であり、要因ではないため、少し異なると私は理解しています。

他の複雑なデータセットでは、分類子によって返される条件付き確率として負の値が表示されることさえあります。最終結果はR内では問題ありません。

質問:

は、条件付き確率は条件付き確率本当にセットアイリスデータのために戻されていますか?

果物の例で行ったのと同じ製品の最大化は、アイリスと条件付き確率が負であるデータセットに対しても有効ですか?

アイリス条件付き確率テーブルに基づいてカスタム予測関数を書くことは可能ですか?

答えて

1

この回答はちょうど約1年遅れていますが、私はそれに直面しました。あなたが書いているように、予測子は数値なので、その要因とは違って扱われます。条件付きガウス分布の平均(第1列)とsd(第2列)が得られます。したがって、for

  Petal.Width 
Y    [,1]  [,2] 

    setosa  0.246 0.1053856 

平均ペタル幅は0.246で標準偏差は0.10です。あなたも

> iris %>% dplyr::filter(Species=="setosa") %>% 
      dplyr::summarize(mean(Petal.Width), sd(Petal.Width)) 
    mean(Petal.Width) sd(Petal.Width) 
1    0.246  0.1053856 

からガウス密度が適切な条件付き確率を得るために、ベイズ式を使用して条件付き確率を反転するために使用されていることがわかります。

関連する問題