使用 PageRank 对全球机场进行排序、

人工分类----文本分类----

6指的就是图中所有的节点

再说一个包

数据保存在./dataset/out.opsahl-openflights.csv 中

networkx 中的 read_edgelist 函数

作用:从边列表中读出一个图。

参数含义:create_using为创建的图的类型(有向图,无向图等)

由于我们处理的是有向网络,所以需要将 create_using 参数设置为 nx.DiGraph()

使用 nx.draw 函数,将网络进行可视化。

# 导入数据
import pandas as pd#分隔符sep设置为 空格
flights = pd.read_csv('./dataset/out.opsahl-openflights.csv',header=None,sep=' ')# 读取数据
## 读取数据
import networkx as nxflights_network = nx.read_edgelist("./dataset/out.opsahlopenflights.csv",create_using=nx.DiGraph())## 观察样本类别分布
print("航班数:" + str(len(flights_network.nodes))) # 读取节点
print("航线数:" + str(len(flights_network.edges))) # 读取边## len() 计算数量## 网络可视化
## 网络绘制
import matplotlib.pyplot as plt
%matplotlib inlinefig, ax = plt.subplots(figsize=(24, 16))
pos_flights = nx.kamada_kawai_layout(flights_network) #网络布局
ax.axis('off') #不显示坐标轴
plt.box(False) #不显示四个边框nx.draw(flights_network, node_size=30,node_color = "green", edge_color = "#D8D8D8",width=.3, pos = pos_flights,ax=ax)

得出的图 发现不是连通图

从图中可以看出,这个网络不是一个连通图所以我们需要从航线网络中提取出最大连通子图进行下一步分析。 对于有向网络, nx.weakly_connected_component_subgraphs() 函数可以返回网络中的连通子图列表。我们只提取最大连通子图。


largest_component = max(nx.weakly_connected_component_subgraphs(flights_network),key=len)#找出最大连通子图
## 输出最大连通子图的类别数
print("航班数:" + str(len(largest_component.nodes)))
print("航线数:" + str(len(largest_component.edges)))# 得到航班数和航线数

再次进行网络可视化

fig, ax = plt.subplots(figsize=(24, 16))
pos_flights2 = nx.kamada_kawai_layout(largest_component) #设置网络布局
ax.axis("off") #不显示坐标轴
plt.box(False) #不显示四个边框
nx.draw(largest_component, node_size=30,node_color = "green", edge_color = "#D8D8D8",width=.3,pos = pos_flights2, ax=ax)
## 调用PageRank算法计算值
pr_dict = nx.pagerank(largest_component)  # 用字典存储# 将计算出来的PageRank值列出来
import pandas as pd
pr_df = pd.DataFrame.from_dict(pr_dict,orient="index")
pr_df.columns = ["pr_value"]
pr_df.sort_values(by = "pr_value").head(20) # .head(20)表示查看前20行

设置一个函数 get_nodesize_pagerank ,将网络中节点的 PageRank 值,映射为网络中节点的大小。参数pagerank为pr_dict。

def get_nodesize_pagerank(pagerank, min_size, max_size): ## 定义一个函数nodesize_list = [] ## 建一个节点大小的空列表pr_max = max(pagerank.values())for node, pr in pagerank.items():nodesize = (max_size-min_size)*pr/pr_max + min_size ## 将映射出来的节点大小存储在列表中nodesize_list.append(nodesize)return nodesize_list
fig, ax = plt.subplots(figsize=(24, 16))
pos_flights2 = nx.kamada_kawai_layout(largest_component) #网络布局ax.axis('off') #不显示坐标轴
plt.box(False) #不显示四个边框nx.draw(largest_component, node_size = get_nodesize_pagerank(pr_dict,1,100),node_color = "green", edge_color = "#D8D8D8",width=.3,pos = pos_flights2,ax=ax)

总结:

首先先对数据集进行了简单介绍,其次介绍了利用networkx中的read_edgelist函数,加载网络的方法,然后学习了利用nx.draw()将网络进行可视化,然后我们通过networkx中的 weakly_connected_component_subgraphs函数,提取最大连通子图。最后我们计算每个节点的PageRank 值,将节点大小与 PageRank 值关联并可视化。

博雅数智|第四次直播|PageRank算法相关推荐

  1. 博雅数智|3.23直播笔记

    案例所需函数的简单介绍: 正则表达式: 进行1+2+3的计算 shift+alt 运行 b  在下方添加一个单元 a  在上方添加一个单元 markdown可以输入文字说明

  2. 泛零售企业需要的数据中台长什么样?| 「数智泛零售」干货集锦

    2020年,在疫情黑天鹅.新基建政策.市场扩张受限.数据存储爆炸等多重因素的裹挟下,数据中台成为了许多泛零售企业直面未来不确定性的新选择: 用数据中台解决日益增长的数据存储和仍然稀缺的数据应用的矛盾, ...

  3. 开发周期节省50%以上!EasyV数字孪生技术赋能区域综合能源数智“大脑”建设

    内容来源于<数字孪生世界白皮书(2022版)> 本周,我们迎来了2022年主题为"绿色低碳 ,节能先行"的全国节能宣传周. 如今,全球能源紧缺.气候变化以及环境污染等问 ...

  4. “数智话”技术沙龙 第四期 | 弹性MapReduce(EMR)专场内容回顾!

    1月10日晚19:00,腾讯云大数据"数智话"技术沙龙 第四期<EMR&StarRocks携手共建云端开源大数据生态>直播圆满落幕.本次沙龙围绕腾讯云大数据沉淀 ...

  5. 政企数智办公潮水里的融云「答卷」

    在这张集合了党政机关.金融保险.交通.能源电力等中大型组织复杂办公需求的高难度答卷上,融云在扎实耐打的通信底层之上,保持灵活的身段和强大的进化能力,稳定而轻盈,在不断变化的环境中正在成为确定性本身. ...

  6. 数智企业 财税云领——用友全线产品支持专票电子化

    2021年1月21日对于全国企业来说是一个特殊的日子.根据国家税务总局<关于在新办纳税人中实行增值税专用发票电子化有关事项的公告>(国家税务总局公告2020年第22号)发文,自此日起,在全 ...

  7. 优云数智X咪咕视频 | 可以跑世界杯的云

    今年7月15日23时,历时一个多月,世界杯决赛于莫斯科卢日尼基球场打响,最终法国以4:2力克克罗地亚,时隔20年,第二次捧起大力神杯,在决赛当天有超过2亿人次通过咪咕观赛. 今年7月15日23时,历时 ...

  8. 聚数·智赢未来丨云和恩墨2020夏季产品发布会要点回顾

    点击上方蓝字关注我们,了解更多精彩! 6月10日,云和恩墨2020年夏季产品发布会如约而至.本次发布会以"聚数·智赢未来"为主题,立足DT时代,集中展示了云和恩墨围绕数据为客户提供 ...

  9. 打开数“智”化之门,一字之差带来的思考

    20年前,"数字化"三个字敲开了新世纪的大门,大量传统行业的从业者开始拥抱互联网,IT技术开始辅助人力,完成一系列的增产和增效任务. 20年已至岁末,数字化发展如火如荼,产业数智化 ...

最新文章

  1. Python机器学习——Agglomerative层次聚类
  2. LINUX常用命令(基础)
  3. 【Spring Web MVC】Spring Web MVC 注解开发环境搭建
  4. 【MFC】带进度条的状态栏
  5. java中intvalue_Java Number intValue()方法与示例
  6. git push到GitHub的时候遇到! [rejected] master -> master (non-fast-forward)的问题
  7. fastjson为什么默认是无序的
  8. winform list集合怎么 in过滤_Java List集合遍历数据的八种方式
  9. 学校为什么要单位接收函_签了三方,想毁约怎么办?这几点你必须要知道!
  10. 32核心板怎么样使用stlink_终极调试工具 EventRecorder 使用方法,各种 Link 通吃
  11. Xpose安装 xposed下载出错 http://dl.xposed.info/repo
  12. 行人重识别实验笔记3-JDAI fast-reid项目配置
  13. pandas学习task05变形
  14. win10用账户登录计算机,Win10支持两种账户登录,一种是本地账户,另一种是Microsoft账户...
  15. 搞定 conda 安装包报错问题
  16. 从志愿军“断刀”再论敏捷之道(上篇)
  17. JAVA 实现《五子棋》游戏|CSDN创作打卡
  18. 票房突破9亿,翻拍片《误杀》凭什么收获票房口碑双丰收?
  19. banner 生成、模板
  20. 最新10款好看的英文字体免费下载

热门文章

  1. uniapp中picker及默认组件改国际化
  2. 消费金融加速内卷,地推要求硕士起步…
  3. python源代码制作星空_用python画星空源代码是什么?
  4. c语言课程设计高校水电费管理系统
  5. uni-app之uniCloud(一)
  6. Deep Neural Networks are Easily Fooled:High Confidence Predictions for Unrecognizable Images
  7. Linux中最危险的是个命令(很有趣呦~)(链接:http://os.51cto.com/art/201408/448756.htm)
  8. Android作业批改系统(后台管理+前台app)
  9. 如何提升广告ROI?转化跟踪了解一下
  10. uniapp尺寸适配的一些记录