对症下药是在复杂网络分析中使用机器学习方法的最大优势。为什么要这样说呢?原因很简单,不同数据构使用不同的网络构造方式形成的网络往往具有不同的特性。
简单而言,在网络中对重要性节点的描述就很不一致,常见的重要性衡量指标就有度、度中心性、介数中心性、K-shell指数、pageRank值等等。在交通网络中,度往往就能衡量一个节点(枢纽)的重要性,网页的重要性则是要根据邻居的重要性来更新当前节点重要性google使用的PageRank就是一种很好的衡量方式。
以下的问答环节将简单清晰的展示出怎么在复杂网络分析中使用机器学习:
问:面对一个未知的网络我们该如何选择那种重要性指标衡量一个节点的重要性呢?
答:先确定这个网络是什么类型。
问:使用什么方式确定网络的类型呢?
答:显而易见,就是我们的主角机器学习
接下来,我们将展示如何利用机器学习确定网络类型的流程。
要确定属于什么类型,就需要先知道有哪些类型。
第一类网络(PA)。具体而言就是生成网络过程中,我们一条一条边的往上加。假设一开始有n个节点,那么第n+1个节点进入的时候,需要从已有的节点中和当前点产生m条边。每个点产生的概率均和它的度正相关。形成马太效应明显的网络。
第二类网络(ER)。给定网络的平均度,然后任意两个点之间按照这个度决定的概率进行随机抽取,决定两个点是否形成连边。(每两个点之间形成连边的概率都是平均度/(n-1))
第三类网络(CL)。在已有的网络中加边的原则是:两个节点之间产生新的连边和两个节点之间度乘积成正比关系。这样形成的网络具有明显的以关键节点为核心的网络,例如小说中的关键人物。
第四类网络(CFG)。先给定网络中所有节点的度分布,然后按照度分布进行随机生成符合条件的网络。
怎么划分网络的类型呢?首先先利用各子的规则产生若干多的四种类型网络,这样就形成了带标签的数据。我们利用SVM建立分离器就可以将未知的网络分类到合适的类型中。这里的关键问题就是如何提取网络的特征进行分离器建立。
我们已知网络的motif结构在网络起到了结构划分的作用,所以在没有任何合适的网络特征时候使用motif进行网络类型划分是一种可靠的手段。如何确定motif?这里,我们选择两大类的motif子结构,三个节点构成的motif和四个节点构成的motif。