仅网络贝叶斯分类器的伪代码

Sai*_*ait 13 algorithm pseudocode igraph graph-algorithm naivebayes

我正在尝试使用igraph和实现单变量网络数据的分类工具包python.

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

我正在关注网络数据文件中的分类.

我很难理解本文所指的" 网络唯一贝叶斯分类器 "(NBC),它是本文中解释的关系分类器之一.

我之前Naive Bayes使用单词包特征表示实现了文本数据的分类器.Naive Bayes关于文本数据的想法在我的脑海中清晰可见.

我认为这种方法(NBC)是将相同的想法简单地翻译成关系分类区域.但是,我对方程中使用的符号感到困惑,所以我无法弄清楚发生了什么.我也有在纸中使用的符号的一个问题在这里.

NBC 在论文的第14页有解释,

在此输入图像描述

摘要:

我需要在第14页的论文中解释的" 仅网络贝叶斯分类器 "(NBC)的伪代码.

伪码表示法:

  1. 让我们调用vs图中的顶点列表.len(vs)是长度.vs[i]是第i个顶点.
  2. 假设我们有一个单变量和二元情形,即,vs[i].class或者是0或者1没有节点的其他给定特征.
  3. 假设我们之前运行本地分类器,以便每个节点都有一个初始标签,由本地分类器计算.我只对关系分类器部分感兴趣.
  4. 让我们调用v我们试图预测v.neighbors()的顶点,并且是邻居的顶点列表v.
  5. 我们假设所有的边权重都是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
Run Code Online (Sandbox Code Playgroud)

编辑:

为了让您的工作更轻松,我做了这个例子.我需要最后2个方程的答案.

A_A*_*A_A 3

用言语来说...

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

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

就邻域N_i( 的x_i)x属于该类的概率c而言,它等于:

  • 某种概率的产物;(哪个概率?)
  • v_j邻域 ( ) 的某个节点 ( N_i) 属于该类(c如果x确实属于该类)的概率c
    • (提高到连接正在检查的节点和正在分类的节点的边的权重...但您对此不感兴趣...)。(我认为这个符号有点偏离,为什么他们定义v_j然后从不使用它?......无论如何)。
  • 最后,将product of some probability与一些相乘1/Z。为什么?因为所有ps 都是概率,因此都在 0 到 1 的范围内,但权重w可以是任何值,这意味着最终计算的概率可能会超出范围。

  • 根据来自邻近地区的证据,某些人x_i属于某个类别c的概率是后验概率。(某事之后...这是什么东西?...请见下文)

  • N_i属于x_i 该类的邻域出现的概率c似然

  • 类别本身的概率c就是先验概率。在某事之前...这是什么东西?证据。先验告诉您在没有任何证据的情况下该类的概率,但后验告诉您特定事件(属于x_i)的概率(c鉴于来自其邻域的证据)。

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

可能性更具挑战性尽管我们这里有一个公式,但必须根据足够大的总体或尽可能多的有关所观察到的现象的“物理”知识来估计可能性。

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

在朴素贝叶斯分类器的典型应用中,即文档分类(例如垃圾邮件),由庞大的观察数据库导出an email is spam GIVEN THE APPEARANCE OF SPECIFIC WORDS IN ITS BODY的条件,或者,我们真正、绝对知道它们属于哪一类的庞大电子邮件数据库。换句话说,我必须了解垃圾邮件是什么样子,最终,大多数垃圾邮件都会有一些共同的主题(我是一些银行官员,我给你一个赚钱的机会,给我你的银行向您汇款并让您致富的详细信息...)。

如果没有这些知识,我们就无法使用贝叶斯规则。

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

确切地。

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

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

我希望这有帮助。