从朴素贝叶斯模型中打印条件概率

时间:2016-10-22 08:20:26

标签: r machine-learning naivebayes

我使用e1071包为朴素贝叶斯分类器创建了一个模型。我需要以下面的格式打印条件概率。

P(C = c1)= 0.32 P(A1 = x1 | c1)= 0.33 P(A1 = x2 | c1)= 0.67 P(A2 = y1 | c1)= 0.25 P(A2 = y2 | c1)= 0.75 P(A3 = z1 | c1)= 0.26 P(A3 = z2 | c1)= 0.49 P(A3 = z3 | c1)= 0.25

当我输入模型名称时,我可以看到条件概率但不知道如何访问单个值并使用它以上述格式打印结果。

我是R的新手,不知道如何解析模型并以此形式获取数据。如何解析模型并分离数据?

1 个答案:

答案 0 :(得分:1)

只需打印$ tables

> data(Titanic)
> m <- naiveBayes(Survived ~ ., data = Titanic)  
> m$tables
$Class
        Class
Survived        1st        2nd        3rd       Crew
     No  0.08187919 0.11208054 0.35436242 0.45167785
     Yes 0.28551336 0.16596343 0.25035162 0.29817159

$Sex
        Sex
Survived       Male     Female
     No  0.91543624 0.08456376
     Yes 0.51617440 0.48382560

$Age
        Age
Survived      Child      Adult
     No  0.03489933 0.96510067
     Yes 0.08016878 0.91983122

现在你可以读出例如P(Age=Child|Survived=No) = 3%P(Age=Child|Survived=yes) = 8%P(Class=Crew|Survived=No) = 45%等等。