朴素贝叶斯的成因和后果

时间:2015-12-01 14:36:59

标签: python math machine-learning statistics computer-science

我想知道关于朴素贝叶斯的贝叶斯网络。 实际上,在贝叶斯网络中,连接不同变量的箭头通常定义了变量之间的因果关系。

朴素贝叶斯是贝叶斯网络的特例,其中有一个要分类的变量和观测变量。这个特殊网络的箭头总是从变量中指向要分类的观察变量。

一个典型的例子是Diagnostic。要分类的变量是“疾病”,观察变量例如是“体温”,“头痛”。将有两个箭头,从“疾病”指向“头痛”和“体温”。因此,天真的贝叶斯认为“疾病是”头痛“和”体温“的原因。

然而,如果我在另一个案例中:我想预测我是否可以踢足球,知道天气和时间。 如果我想使用朴素贝叶斯网,我会画“从足球”到“天气”和“时间”的箭头。 但从物理角度来看,不可能说“足球”会导致“天气”和“时间”! 这是否意味着在这种情况下不可能使用朴素贝叶斯? 或者无论如何人们都在使用它,而不关心网络的物理意义?

非常感谢!

1 个答案:

答案 0 :(得分:0)

我希望我的Java演示代码可以帮助您解决混乱。实际上,大多数独立随机事件都可以使用朴素贝叶斯来解决。贝叶斯网络,我理解它将处理更复杂的关系,如人类情感模拟等。

public class WeatherTimeSoccer {
    /**
     * Soccer  Weather  Time
     * ------  -------  ----
     * Play    Sunny    AM
     * Play    Sunny    PM
     * Play    Rain     PM
     * NotPlay Sunny    AM    
     * NotPlay Rain     PM
     * NotPlay Rain     PM
     */
        static float PSunnyPlay = 0.67f;
        static float PSunnyNotPlay = 0.33f;
        static float PPMPlay = 0.50f;
        static float PPMNotPlay = 0.50f;
        public static void main(String[] args) {
        //Sample Sunny-PM
        System.out.println(posteriorPlay() + "-" + posteriorNotPlay());
    }

    public static float posteriorPlay(){
        return PSunnyPlay * PPMPlay;
    }
    public static float posteriorNotPlay(){
    return PSunnyNotPlay * PPMNotPlay;
        }
    }
Omkar Lad:Naive Bayes假设所有特征在条件上彼此独立。因此,这允许我们将贝叶斯规则用于概率。通常这种独立性假设对大多数情况都很有效,即使实际上它们并不是真正独立的。 贝叶斯网络没有这样的假设。贝叶斯网络中的所有依赖都必须建模。形成的贝叶斯网络(图形)可以由机器本身学习,或者可以由开发人员在之前设计,如果他对相关性有足够的了解。

来自:https://www.quora.com/Whats-the-difference-between-a-naive-Bayes-classifier-and-a-Bayesian-network