Network-only-bayes-classifier 的伪代码

Posted

技术标签:

【中文标题】Network-only-bayes-classifier 的伪代码【英文标题】:Pseudo-code for Network-only-bayes-classifier 【发布时间】:2015-09-19 12:13:38 【问题描述】:

我正在尝试使用igraphpython 为单变量网络数据实现分类工具包。

但是,我的问题实际上更多是关系分类领域的算法问题,而不是编程问题。

我正在关注Classification in Networked Data论文。

我很难理解本文所指的“Network-Only Bayes Classifier”(NBC),它是本文中解释的关系分类器之一。

我之前使用词袋特征表示为文本数据实现了Naive Bayes 分类器。我对文本数据的Naive Bayes 的想法很清楚。

我认为这种方法 (NBC) 是将相同的想法简单地转化为关系分类领域。但是,我对方程式中使用的符号感到困惑,所以我无法弄清楚发生了什么。我还有一个关于here论文中使用的符号的问题。

NBC 在第 14 页 the paper 中进行了解释,

总结:

我需要paper,第 14 页中解释的“Network-Only Bayes Classifier”(NBC) 的伪代码。

伪代码表示法:

    让我们调用vs 图中的顶点列表。 len(vs) 是 长度。 vs[i] 是第 i 个顶点。 假设我们有一个单变量和二元场景,即vs[i].class01,并且节点没有其他给定特征。 假设我们之前运行了一个本地分类器,因此每个节点都有一个初始标签,该标签由本地分类器计算。我只对关系分类器部分感兴趣。 让我们称v 为我们试图预测的顶点,v.neighbors() 是与v 相邻的顶点列表。 假设所有边的权重都是1

现在,我需要以下伪代码:

def NBC(vs, v):
   # v.class is 0 or 1
   # v.neighbors is list of neighbor vertices
   # vs is the list of all vertices

   # This function returns 0 or 1

编辑:

为了让您的工作更轻松,我这样做了example。我需要最后两个方程的答案。

【问题讨论】:

很好的问题。我感兴趣地关注(如果不是实际答案;)) 【参考方案1】:

用语言...

节点x_i属于c类的概率等于:

x_i(称为N_i)邻域的概率,如果x 确实属于c 类;乘以 ... 类c本身的概率;除以 ... 邻域N_i(节点x_i)本身的概率。

x 属于c 类的邻域N_ix_i)的概率而言,它等于:

有一定概率的product; (哪个概率?) 如果x 确实属于c 类,则邻域(N_i) 的某个节点(v_j) 属于c 类的概率 (提高到连接正在检查的节点和正在分类的节点的边的权重……但您对此不感兴趣……还)。 (我认为这里的符号有点偏离,为什么他们定义 v_j 然后从不使用它?...随便)。

最后,将product of some probability 与一些1/Z 相乘。为什么?因为所有ps 都是probabilities,因此在0 到1 的范围内,但w 的权重可以是任何值,这意味着最终计算出的概率可能超出范围。

一些x_i属于一个类c的概率给定 来自其邻域的证据是一个后验概率。 (后 东西……这是什么东西? ...请参见下文)

如果x_i 出现邻域N_i 的概率 属于c 的类是可能性

c本身的概率是先验概率。 之前……这是什么东西?证据。先前的 在没有任何证据的情况下告诉你上课的概率 呈现,但后验告诉你特定的概率 事件(x_i 属于 c)鉴于其证据 邻里。

先验,可以是主观的。也就是说,通过有限的观察得出或成为知情意见。换句话说,它不一定是人口分布。它只需要足够准确,而不是绝对已知。

可能性更具挑战性。尽管我们在这里有一个公式,但必须从足够大的人口或尽可能多的关于正在观察的现象的“物理”知识来估计可能性。

在产品中(第二个等式中的大写字母 Pi,表示可能性),您有一个条件。条件是如果x 属于c 类,则邻域节点属于某个类的概率。

在Naive Bayesian Classifier的典型应用中,即document classification(例如垃圾邮件)中,条件an email is spam GIVEN THE APPEARANCE OF SPECIFIC WORDS IN ITS BODY派生由一个庞大的观察数据库,或者,一个巨大的我们确实、绝对知道它们属于哪个类别的电子邮件数据库。换句话说,我必须对垃圾邮件的外观有所了解,最终,大多数垃圾邮件都具有一些共同的主题(我是一些银行官员,我有赚钱的机会给你,给我你的银行详细信息,以便电汇给你,让你变得富有......)。

没有这些知识,我们就不能使用贝叶斯规则。

所以,回到您的具体问题。在您的 PDF 中,您在产品的推导中有一个问号。

没错。

所以这里真正的问题是:您的图表/数据的可能性是多少?

(...你打算从哪里得到它?(很明显,要么是大量已知的观察结果要么有关该现象的一些知识。例如,一个节点被感染的可能性是多少,因为它的一部分邻域也被感染了))。

我希望这会有所帮助。

【讨论】:

感谢您的回答。这很有帮助。但是,我实际上是在寻找pseudo-code

以上是关于Network-only-bayes-classifier 的伪代码的主要内容,如果未能解决你的问题,请参考以下文章