【斯坦福cs224w-图机器学习】Recitation: Snap.py and Google Cloud tutorial


[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主要包括上面的部分,这节课也会简单的介绍这些东西。

  1. 基本数据类型
  2. vectors,hash tables和pairs
  3. 图和网络
  4. 生成图
  5. 添加和遍历节点和边
  6. 保存和加载图
  7. 绘图和可视化

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

上图中给出了使用TP的指南。

图的保存以及加载

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

Plotting & Visualizing in Snap.py

  • 使用Gnuplot来绘制图的各种属性
  • 使用Graphviz绘制图的形状

Plotting with Snap.py——Gnuplot

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

Drawing Graphs——graphviz

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

Basic Graph Generators

Advanced Graph Generators

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

Subgraphs and Conversions

Connected Components

Node Degrees

Node Centrality

Triads and Clustering Coefficient

Community Detection

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

Spectral properties of a Graph

K-core decomposition

Google Cloud

中国的话,用不了。。。


文章作者: CarlYoung
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 CarlYoung !
 上一篇
【斯坦福cs224w-图机器学习】3. Motifs and Structural Roles in Networks 【斯坦福cs224w-图机器学习】3. Motifs and Structural Roles in Networks
本节开篇从subgraph出发,指出subgraph是一个非常重要的概念,能够描述一个network的特征。于是,顺水推舟地讲解了两个利用到subgraph的度量指标:motifs and graphlets;最后又讲解了如何提取network中每个node的structural roles;
2020-11-19
下一篇 
【斯坦福cs224w 图机器学习】2. Properties of Networks and Random Graph Models 【斯坦福cs224w 图机器学习】2. Properties of Networks and Random Graph Models
在本节课中,我们首先讲述4个关于网络的重要属性,它们是我们研究图的重要指标。然后介绍几种常见的随机图模型。
2020-11-16
  目录