[TOC]
这节课主要讲解两个工具:snap.py和google cloud
Introduction to SNAP(Standford Network Analysis Platform)


上图是本节的outline。
What‘s SNAP?

SNAP能够在大型网络上进行工作。
原始的SNAP是用C++写的,后来又用Python在C++的基础上套了一层壳,写了一个Python接口,其实底层还是C++实现的~这很重要!
自带了大量的网络数据集,便于我们学习;


下面是一些自带的网络数据集:

What‘s Snap.py?

由于C++代码运行速度更快,而python对用户使用更友好,所以采用折中的方式~trade-off



Snap.py Tutorial

关于snap.py的tutorial主要包括上面的部分,这节课也会简单的介绍这些东西。
- 基本数据类型
- vectors,hash tables和pairs
- 图和网络
- 生成图
- 添加和遍历节点和边
- 保存和加载图
- 绘图和可视化
Snap.py中的一些命名规定

- 所有以
T
开头的变量,表示的是class type
;- 所有以
P
开头的变量,表示的是graph object
;

老师说这个库很好,他保证我们的作业里面的代码不会超过50行,hhh
Basic Types in Snap.py



Vector Types


Hash Type Types



Pair Types


Basic Graph and Networks Classes

上图中给出了使用
T
和P
的指南。


图的保存以及加载

根据老师的说法,text文件加载的速度要明显慢于binary文件,所以建议存储为binary文件

Plotting & Visualizing in Snap.py

- 使用
Gnuplot
来绘制图的各种属性- 使用
Graphviz
来绘制图的形状
Plotting with Snap.py——Gnuplot



不知道为啥,我的电脑执行完函数之后,只会生成
.plt
和.tab
文件,后面需要自己点积plt
生成.png
,就很神奇。
Drawing Graphs——graphviz


Print Graph Information
当我们在网络上找到一个图的数据集,我们想要知道这个图的一些properties,可以使用
PrintInfo()
函数来获得图的基本信息。

Basic Graph Generators

Advanced Graph Generators
也可以生成一些高级的图形,其实我也不太懂。。。

Subgraphs and Conversions

Connected Components

Node Degrees

Node Centrality

Triads and Clustering Coefficient

Breadth and Depth First Search

Community Detection
在sanp中实现了大多出名的community detection算法

Spectral properties of a Graph

K-core decomposition

Google Cloud
中国的话,用不了。。。