我正在尝试使用igraph
和python
为单变量网络数据实施分类工具包。
然而,我的问题实际上更多的是关系分类领域的算法问题,而不是编程。
我正在关注Classification in Networked Data论文。
我很难理解本文所涉及的内容" 仅网络贝叶斯分类器"(NBC),它是本文中解释的关系分类器之一。
我之前使用词包特征表示为文本数据实现了Naive Bayes
分类器。关于文本数据Naive Bayes
的想法在我的脑海中清晰可见。
我认为这种方法(NBC)是将相同想法简单地翻译成关系分类区域。但是,我对方程中使用的符号感到困惑,所以我无法弄清楚发生了什么。我对论文here中使用的符号也有疑问。
NBC在第14页the paper,
中有解释
要点:
我需要在paper,第14页中解释" 仅网络贝叶斯分类器"(NBC)的伪代码。
伪码表示法:
vs
图表中的顶点列表。 len(vs)
是
长度。 vs[i]
是第i个顶点。vs[i].class
是0
或1
,并且节点没有其他给定的功能。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。我需要最后2个方程的答案。
答案 0 :(得分:3)
用言语......
节点x_i
属于类c
的概率等于:
x_i
,则N_i
(称为x
)邻域的概率
确实属于班级c
;乘以...... c
本身的概率;除以...... N_i
(节点x_i
)本身的概率。关于邻居N_i
(x_i
)如果x
属于班级c
的概率,则等于:< / p>
v_j
确实属于班级N_i
,则邻域(c
)的某个节点(x
)属于班级c
的概率
v_j
然后从不使用它?......无论如何)。最后,将product of some probability
与某些1/Z
相乘。为什么?因为所有p
都是probabilities因此在0到1的范围内,但权重w
可能是任何东西,这意味着最终,计算出的概率可能超出范围。
某些x_i
属于某个班级c
的可能性
来自其邻居的证据是后验概率。 (后
什么东西......这是什么东西? ......请见下文)
如果N_i
出现邻居x_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中,您在产品的派生中有一个问号。
完全。
所以真正的问题是:图表/数据中的似然是什么?
(... 或你要从哪里推导出它?(显然,大量已知的观察 OR 对这种现象的一些了解。例如,如果节点被感染的可能性是多少,因为其邻居的一部分也被感染了。)。
我希望这会有所帮助。