首页 > 其他分享 >图数据挖掘(二):网络的常见度量属性

图数据挖掘(二):网络的常见度量属性

时间:2022-11-02 12:11:59浏览次数:88  
标签:right 聚类 路径 left 数据挖掘 长度 度量 节点 属性

1 度分布

网络的度分布\(p(k)\)表示了一个随机选择的节点拥有度\(k\)的概率。我们设度为\(k\)的节点数目\(N_k = \sharp\text{ nodes with degree } k\),除以节点数量\(N\)则可得到归一化后的概率质量分布:

\[P(k)=N_k / N(k\in \mathbb{N}) \]

我们有:\(\sum_{k \in \mathbb{\mathbb{N}}} P(k)=1\)。
对于下面这个网络:

迁移学习和多任务学习之间的区别

其归一化后的度分布直方图可表示如下:

迁移学习和多任务学习之间的区别

2 路径

2.1 图的路径

图的路径(path)指一个节点序列,使得序列中的每个节点都链接到序列中的下一个节点(注意:这里的术语不同教材不一样,有的教材把这里的路径定义为漫游(walk),而将术语“路径”保留给简单路径)。路径可以用以下方式进行表示:

\[P_n=\left\{i_0, i_1, i_2, \ldots, i_n\right\} \quad P_n=\left\{\left(i_0, i_1\right),\left(i_1, i_2\right),\left(i_2, i_3\right), \ldots,\left(i_{n-1}, i_n\right)\right\} \]

一个路径可以通过经过同一条边多次而和它自身相交。如下面这个图中更多路径ABDCDEG就和自身相交。

迁移学习和多任务学习之间的区别

注意,在有向图中路径只能沿着边的方向。

2.2 路径的条数

路径的条数定义为节点\(u\)和\(v\)之间的路径数量。我们发现邻接矩阵的幂和路径的条数之间有着关系。

  • 长度 \(h=1\)(这里的h可理解为跳数hops)的路径计数矩阵: 只需要考察\(u\)和\(v\)之间是否存在长度为\(1\)的链接,即

    \[H_{uv}^{(1)} = A_{uv} \]

  • 长度 \(h=2\)的路径计数矩阵: 需要考察\(u\)和\(v\)之间是否存在长度为\(2\)的路径,即对满足\(A_{u k}A_{k v}=1\)的\(k\)进行计数。

    \[H_{u v}^{(2)}=\sum_{k=1}^N A_{u k} A_{k v}=\left[A^2\right]_{u v} \]

  • 长度 \(h\)的路径计数矩阵: 需要考察\(u\)和\(v\)之间是否存在长度为\(h\)的路径,即对满足\(A_{u k_1} A_{k_1 k_2} \ldots . A_{k_{h-1} v}=1\)的所有$\langle k_1,k_2,\cdots, k_{h-1}\rangle $序列进行计数。

    \[H_{u v}^{(h)}=\left[A^h\right]_{u v} \]

上述结论对有向图和无向图都成立。上述定理解释了如果\(u\)和\(v\)之间存在最短路径,那么它的长度就是使\(A\)^k_{uv}非零的最小的\(k\)。
进一步推论可知,在一个\(n\)个节点的图中找到所有最短路径的一个简单方法是一个接一个地对图的邻接矩阵\(A\)做连续的幂计算,知道第\(n-1\)次,观察使得每一个元素首次变为正值的幂计算。这个思想在Folyd-Warshall最短路径算法中有着重要应用应用。

2.3 距离

图中两个节点之间的距离(distance)定义为两个点最短路径中的边数(如果两个点没有连通,距离通常定义为无穷大)。
如对下面这个图我们有\(B\)、\(D\)之间的距离\(H_{B,D}=2\),\(A\)、\(X\)之间的距离\(h_{A, X}=\infty\)。

迁移学习和多任务学习之间的区别

注意,在有向图中距离必须沿着边的方向。这导致有向图中的距离不具有对称性。比如下面这个图中我们就有\(h_{A, C} \neq h_{C, A}\)。

迁移学习和多任务学习之间的区别

我们定义两两节点之间距离的最大值为图的直径(diameter)。

2.4 平均路径长度

无向连通图(连通分量)或有向强连通图(强连通分量)的平均路径长度(average path length)定义为:

\[\bar{h}=\frac{1}{2 E_{\max }} \sum_{i, j \neq i} h_{i j} \]

这里\(h_{ij}\)是节点\(i\)到\(j\)的距离。\(E_{max}=\frac{n(n-1)}{2}\),这里\(2E_{max}\)中的系数\(2\)可要可不要,不同教材定义方法不一样。
在计算平均路径长度时,我们通常只计算连通节点之间的距离(也即忽略长度为“无穷”的路径)

2.5 寻找最短路径

对于无权图,我们可以由宽度优先搜索(BFS)搜寻图的最短路径。

  • 从节点\(u\)开始,将其标注为\(h_u(u)=0\),并将其加入队列。
  • 当队列不为空时:
    • 将队首元素\(v\)移出队列,将其未标注的邻居加入队列并标注为\(h_u(w) = h_u(v) + 1\)。
    • 循环往复。
迁移学习和多任务学习之间的区别

对于带权图,我们当然就得寻求Dijkstra、Bellman-Ford等算法啦,此处不再赘述.

3 聚类系数

节点\(i\)的聚类系数(clustering coefficient)可以直观地理解为节点\(i\)的邻居有多大比例是互相连接的。设节点\(i\)的度为\(k_i\),则其聚类系数\(C_i\)定义为

\[C_i=\frac{2 e_i}{k_i\left(k_i-1\right)} \]

这里\(e_i\)为节点\(i\)邻居之间的边数,我们有\(C_i\in[0, 1]\)。下面展示了聚类系数的一些实例:
迁移学习和多任务学习之间的区别

迁移学习和多任务学习之间的区别

图的平均聚类系数(average clustering coefficient)定义为:

\[C=\frac{1}{N} \sum_i^N C_i \]

4 真实世界网络的属性

接下来我们来看一MSN收发信息网络(有向)的实例。

迁移学习和多任务学习之间的区别

该网络中245 million用户注册,180 million用户参与了聊天,拥有超过30 billion个回话。超过 255 billion条交互信息。
连通性

迁移学习和多任务学习之间的区别

度分布
迁移学习和多任务学习之间的区别

其度分布高度倾斜,平均度为\(14.4\)。

log-log度分布

迁移学习和多任务学习之间的区别

聚类系数

这里为了方便出图,我们定义横坐标为度\(k\),对应的纵坐标\(C_k\)为度为\(k\)的节点的聚类系数\(C_i\)的平均值,即\(C_k=\frac{1}{N_k} \sum_{i: k_i=k} C_i\)。

迁移学习和多任务学习之间的区别

整个网络的平均聚类系数为\(0.11\)。

距离分布

迁移学习和多任务学习之间的区别

其中平均路径长度为\(6.6\),\(90\%\)的节点可以在\(8\)跳之内到达。

参考

[1] http://web.stanford.edu/class/cs224w/
[2] Easley D, Kleinberg J. Networks, crowds, and markets: Reasoning about a highly connected world[M]. Cambridge university press, 2010.
[3] Barabási A L. Network science[J]. Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences, 2013, 371(1987): 20120375.
[4] 《图论概念梳理》

标签:right,聚类,路径,left,数据挖掘,长度,度量,节点,属性
From: https://www.cnblogs.com/orion-orion/p/16850617.html

相关文章

  • 图数据挖掘(一):网络的基本概念和表示方法
    最近《复杂网络建模》这门课要考试了,正好也在跟Stanford的《CS224W:MachineLearningWithGraphs》这门课,这里就一边整理笔记一边复习了。1.网络的定义网络(network)是......
  • Spring中注解---事务注解 @Transactional中的属性与值
    @Transactional修饰范围:类上或方法上作用:给类中方法加入事务,当类上和方法上同时存在该注解时方法优先注解属性:propagation:控制事务传播属性......
  • 创建对象,属性操作
    创建对象letobj={};letobj=newObject();letobj=Object.create(null);//不能不传值,null表示空值letobj=Object.assign(obj1,obj2,obj3);//**操作obj1......
  • 【笔记】点云距离度量
    对点云做优化,不能想当然算L1/L2Loss,用标号不敏感的distance会更好DirectedChamferDistance考虑S上每个点到T的最短欧氏距离\[CD(i,j)=\sum_{i\inS}\min_{j\in......
  • 用XML操作Excel文件的一些属性说明
    在利用velocity导出excel中遇到了一个坑,理论上讲是没有问题的,看了vm文件也没有问题,但是打开生成的vm文件时会提示文件已损坏。经研究,Excel在生成xml的时候为了不浪费资源,......
  • vue之列表排序-计算属性的应用
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-e......
  • c# 动态添加属性字段
    上来先吐槽一波,近一段时间公司为搞跨平台的客户端,我的wpf客户端逐渐被放弃,我的工作也越来越少,新的客户端采用qt来做,也有可能是qt开发进度太慢,项目比较紧,于是想让我的客......
  • js 如何给一个对象,动态添加属性字段
    第一种方法:无指定属性letobj={"name":"tom","age":16}letkey="id";letvalue=2obj[key]=value;console.log(obj)第二种方法,利用扩展运算符,简单又实用无......
  • 【WPF 数据验证机制】三、INotifyDataErrorInfo接口+DataAnnotation数据特性实现model
    环境vs2022+.net6.0+wpf+MVVM+EFcore6.0MVVM验证示意图INotifyDataErrorInfo接口功能publicinterfaceINotifyDataErrorInfo{boolHasErrors{get;}//提供......
  • vue计算,监听属性插槽和动态组件
    计算属性如果{{函数()}},每次页面刷新,函数都会重新执行函数---》当属性来使用,缓存<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><ti......