Bayes网络分类

我正在学习使用Matlab进行Bayes网络分类,我卡在了一个简单的(我认为)步骤上:

对于像iris数据集这样的朴素贝叶斯分类器,类别位于顶部节点,像这样:

        class
/ \ feature1 feature2

我理解为什么类别是特征的原因,这没问题,我明白为什么类别本身有一个先验概率。

但在非朴素贝叶斯网络的情况下,像这样:

cause1      cause2     |  \        /     |  consequence     |    /     class

在这种非朴素的情况下,先验概率如何设置?我该如何设置它?我如何从中获得分类?谢谢 (:

附注:我正在查看BNT来构建网络。


回答:

假设你提到的所有变量都是分类变量,并且边的方向是从上到下:

先验概率:

在第一个朴素贝叶斯示例中,’class’的条件概率表(CPT)仅由其先验分布组成,因为它是一个根节点,即没有父节点。如果’class’可以有2个状态(例如黑色和白色),其CPT将包含2个值。

在第二个贝叶斯网络(BN)示例中,’class’的CPT依赖于’cause1’和’consequence’。假设’consequence’有3个状态,’cause1’有4个状态,而’class’如前所述有2个状态。在这种情况下,’class’的CPT将包含3*4*2个值。在学习这个CPT时,你可以将你的先验信念作为一个Dirichlet分布(如果所有变量都是分类变量)纳入其中。要了解如何将你的先验信念纳入最大似然估计过程,可以参考这些优秀的讲义

推断:(或者你所说的’分类’)

关于进行分类,在示例1中,你可以使用贝叶斯规则来计算P(‘class’ = 白色)和P(‘class’ = 黑色)。在第二个(BN)示例中,你需要使用信念传播、变量消除或连接树算法来根据你观察到的节点更新’class’节点的后验概率。

关于如何实现这一点,有一个简单的BNT示例在这里。此外,BNT工具箱还包含使用连接树函数的简短’推断’示例,你可以在.../examples文件夹下找到这些示例。

最后,虽然有些人可能不同意,但就贝叶斯网络而言,我建议不要严格地将A -> B解释为“A导致B”,因为在结构学习领域,贝叶斯网络的因果关系方面仍有许多争议。

希望这对你有帮助。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注