簡體   English   中英

解釋e1071中naiveBayes分類器返回的條件概率:R

[英]Interpreting conditional probabilities returned by naiveBayes classifier in e1071:R

使用以下過程處理分類解決方案:

一種。 使用e1071在R中執行朴素貝葉斯分類。

獲取先驗表和條件概率表

C。 使用應用程序中的PL / SQL程序進行預測的值。 即,最終預測將不涉及R預測函數的使用。

在步驟b中,我看到模型生成后R返回的負數和大於1個條件概率 - 它們是否真的是條件概率?

用2個數據集說明問題 - 一個我能夠解釋,一個我無法解釋。

數據集1:水果鑒定(在這個論壇中看到一個漂亮的Naive Bayes插圖)

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是Class列,Fruit_All是完整的數據框。

NB.fit中返回的條件概率與預期完全一致。

此外,所有行概率整齊地加起來為1.例如香蕉+黃的0.1 + 0.9

條件概率:

        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    

我可以使用上面的代碼輕松編寫代碼來預測輸入的結果,例如For Long,Sweet和Yellow都等於yes。

該產品最大的水果:

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

數據集2:R中可用的虹膜數據集

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

條件概率:

         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

在這種情況下,相同的函數似乎不返回條件概率,因為某些值大於1且沒有行加起來為1。

注意:如果我在R中使用預測函數,我會得到正確的結果作為Iris的預測。

我理解Iris數據集有點不同,因為變量是連續數值而不是與果實示例不同的因素。

對於其他復雜數據集,我甚至將負值視為分類器返回的條件概率。 雖然最終結果在R內很好。

問題:

為Iris數據集返回的條件概率是否真的是條件概率?

我在水果示例中所做的相同產品最大化是否適用於Iris,甚至是條件概率為負的數據集?

是否可以根據Iris條件概率表編寫自定義預測函數?

這個答案遲了大約一年,但我偶然發現了它。 在您編寫時,預測變量是數字的,因此對因子的處理方式不同。 你得到的是條件高斯分布的均值(第一列)和sd(第二列)。 因此,為

            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

高斯密度用於使用貝葉斯公式反轉條件概率以獲得適當的條件概率。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM