【发布时间】:2015-09-19 12:13:38
【问题描述】:
我正在尝试使用igraph 和python 为单变量网络数据实现分类工具包。
但是,我的问题实际上更多是关系分类领域的算法问题,而不是编程问题。
我正在关注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].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。我需要最后两个方程的答案。
【问题讨论】:
-
很好的问题。我感兴趣地关注(如果不是实际答案;))
标签: algorithm graph-algorithm igraph pseudocode naivebayes