我们都知道机器学习里的决策树,其可以表示为给定特征条件下类的条件概率分布。并且我们知道决策树由结点和有向边组成,结点又由表示特征的内部结点和表示类的叶结点构成。而通常决策树的学习又包括了特征的选择、决策树的生成和决策树的剪枝。那么这种树型算法又是来自哪呢?其实树型只是图的一个小分支,而接下来我们将进一步了解源于离散数学并十分重要的分支:图论(graph theory)。
    如果这是你第一次涉足关于图论的内容,那么本篇文章将会给你一个清晰的概念。同时也希望本文能将图论的思想、基本模型阐述清楚,因此不论是对以后的机器学习模型构建还是概率图模型的理解都能提供一定的助力。
Loosey–goosey图
    当第一次开始研究非线性结构时,我们需要学习它们最基础的特征:即数据并不遵循特有的顺序,至少是没有明显的数值关系,这一点就和我们看到的数组与链表一样。正如我们所了解的,树型结构从根结点开始,并能和其他结点相连接,也就是说一棵完整的树可以由其子树构成。树由一组规则定义而成:即一个根结点可能连接或不连接到其他结点,但最终所有叶结点或内部结点都能追溯到这个特定的位置。一些树有更多的特定规则,如二叉搜索树,该树在任意时间内每个结点都只和两个子结点相连。而机器学习常用的决策树就可以看成是 IF-THEN 规则的集合。即由决策树的根结点到叶结点的每一条路径构建一条规则,路径上内部结点的特征对应着规则的条件,而叶结点的类对应着规则的结论。
       那我们是否能将构成树状的这些规则抛弃掉,不用再严格地遵守这些规则而生成图(graph)。当然这样做是不会出错的,只是生成不了树,也不能以树状的结构进行计算了。但是我们进一步能用图进行计算或处理任务。
那么到底是什么让树型有别于伞状图呢?
      首先,一棵树只能朝一个方向传播,即树型是由有向边(directed edge)构成的。每一颗树都是由根节点开始,向下往子节点或叶节点传播。同样树型的每一条路径都是唯一的,并且路径上的所有子结点有且仅有一个父节点。所以这种树型结构一定不会存在循环结构或链路。

QQ图片20170405093940.jpg

而通过图,所有的这些限制好像都突然消失了。因为图是没有任何「根结点」、「叶节点」和「单向边」等这些概念的,所以图中的结点可以连接多个子结点也可以有多个父结点,路径也可以是有向流或者无向边。或者如果想要图更加复杂一点,也可以采用有向流和无向边的组合,但是本文暂时并不会关注这些复杂系统。
   有向图和无向图
   现在我们已经知道图确实打破了构造树型的所有规则。但每一个图都必须遵守一个基本原则:即图有且至少有一个单结点。就像树型至少需要一个根结点才可以看作是「树」,图也至少需要一个单结点以便可以看作是「图」。只有一个结点的图通常称为「单例图」,基本上我们不会使用这种单例图处理任务。
通常能进行运算处理的图都是更复杂一些的图,但是不要太担心,本文所描述的图都不会太复杂,不过有些图真的是超级复杂的。
首先我们会探讨一下很容易辨认和理解的两种图:有向图(directed graphs)和无向图(undirected graphs)。这两种图在图论(graph theory)探讨的问题中十分常见。
   在图中,结点和结点之间的连接并没有确切的规则,边(有时候也称为链接)能以任何方式连接结点。

QQ图片20170405094329.jpg

不同类型的边或路径对定义和识别图时非常重要。边的类型实际上是图之间最大、最明显的区别之一。大多数情况下(只有一种例外),图会有两种类型的边:即具有方向或流向的边和不具有方向或流动的边。我们将其称为有向边(directed edges)和无向边(undirected edges)。
在有向边中,两个结点以特定的方式连接。如下图结点 A 连接结点 B 的方式所示,有向边规定了两个结点之间只有单一的方向,即只能从起始结点(origin)沿特定方向到目标结点(destination),永远不能反过来从目标结点到起始结点。这种类型的有向边在图论问题中十分常见。

QQ图片20170405094536.jpg

现在,我们再介绍一下与有向边完全不同的无向边。在无向边(undirected edge)里,可通过的路径是双向的。也即两个结点之间的路径是双向互通的,起始结点和目标结点并没有固定。
这种差异是十分重要的,因为图中的边确定了图的类型。如果图中所有的边都是有向边,那么该图就是有向图(directed graph)。如果图所有的边都是无向边,那么该图就是无向图(undirected graph)。

QQ图片20170405094618.jpg

以上所描述的图看起来很有结构性,但也许我们更应该关心两件事情:首先具体是什么条件或事件填充了图,其次我们具体要关注图的什么信息?