《Python数据科学入门》之使用网络数据(第7章)

系统 1789 0

Python数据科学入门

Dmitry Zinoviev著
熊子源 译


第7章 使用网络数据

第38单元 概念剖析

图的元素、类型和密度:

名词 说明
多图 图中存在平行边(节点A可以通过多条边连接到节点B)
循环 节点A到节点A的边
简单图 不存在平行边和循环的图

边中可以存在多种类型: 权重、数字、布尔和字符串类型的变量。
图的密度: 图与完全图的接近程度。一个具有e条边的n个节点的有向图,其密度为: d = e/[n(n-1)] 。相应的无向图密度为: d = 2e/[n(n-1)]

图的结构:

名词 说明
连通分量 集合中的每个节点都具有到达集合中的所有其他节点的路径(一组节点的集合)
GCC(巨型连通分量) 最大的连通分量
移除这条单边后图就会被分开的边
每个节点都与集合中的其他节点 直接 相连(一组节点的集合)
最大团 图中最大的团
极大团 一个团不能通过向其中添加另一个节点而扩大(最大团一定是极大团;极大团不一定是最大团)
星形图 集合中存在一个节点与其他所有节点相连接,但是其他节点之间不存在连接
领域 直接与节点A相连接的节点(G(A))

中心性:

  • 度中心性
    节点A的度中心性是A的邻居节点个数
  • 接近中心性
    节点A的接近中心性是其他所有节点到节点A的平均最短路径长度LBA的倒数:
    《Python数据科学入门》之使用网络数据(第7章)_第1张图片
  • 中介中心性
    节点A的中介中心性是指:所有两个节点之间的最短路径中,经过A点的路径数量与最短路径总数量之比
  • 特征矢量中心性
    节点A的特征矢量中心性被定义为:A的所有邻居节点的特征矢量中心性的加权和:
    《Python数据科学入门》之使用网络数据(第7章)_第2张图片

第39单元 网络分析序列

典型的网络分析序列包含以下几个步骤:

  1. 识别离散实体以及实体之间的关系。实体转化为网络节点,实体之间的关系转化为网络节点的边;
  2. 计算各种网络度量。密度,分量,GCC的大小,中心性等;
  3. 识别网络社区;
  4. 对结果进行解释,并生成一个报告。

第40单元 使用networkx

探索和分析网络:
NetworKit: 一种高效的、可并行化的网络分析工具包。可以与matplotlib,scipy,numpy,pandas和networkx相结合,进一步增加了这个模块的吸引力。详细内容可以参考官网:https://pypi.org/project/networkit/
Gephi: 各种网络和复杂系统的交互式可视化探索平台。详细内容可以参考官网:https://gephi.org/

团和社区结构:
find_cliques() 检测出图中最大的团(不能直接用于有向图)
isolates() 检测图中的孤立节点
best_partition() 使用Louvain方法并返回社区的划分结果,划分结果是一个以节点标签作为索引的字典,并用不同的数字序号区分不同的社区
Modularity() 给出社区的模块度(来判断网络结构是否清晰(0.5))

输入和输出:

类型 文件后缀
邻接列表 read_adjlist(f) write_adjlist(G,f) 无特定后缀
Edge list read_edgelist(f) write_edgelist(G,f) 无特定后缀
GML read_gml(f) write_gml(G,f) .gml
GraphML read_graphml(f) write_graphml(G,f) .graphml
Pajek read_pajek(f) write_pajek(G,f) .net

"Every mountain is unclimbable until someone climbs it."--《Downton Abbey》


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论