GraphChi之pagerank分析新浪微博用户
2013-07-06 23:20
423 查看
GraphChi由卡内基梅隆大学的Aapo Kyrola 博士生开发,是GraphLab项目的一个分支。该框架能够在单机上完成大数据的图计算。
项目地址:https://code.google.com/p/graphchi/
实例地址:http://code.google.com/p/graphchi/wiki/ExampleApps
其中的工具之一是pagerank,可以用它非常方便的对SNS的关系图(如新浪微博的好友关注图)进行分析。下面两篇文章就利用该工具对微博数据进行了分析,得出了用户的排名结果。
http://www.cnblogs.com/sing1ee/archive/2012/12/13/2811581.html
http://blog.sina.com.cn/s/blog_c2e02d1d01018qj7.html
2、tar zxvf graphchi_src_v0.1.7b.tar.gz
3、cd graphchi_v0.1.7b #后面称该目录为graphchi_ROOT
4、make example_apps/pagerank
make成功后将会在graphchi_ROOT/bin/example_apps/中生成可执行程序pagerank
bin/example_apps/pagerank file input-file <arg-label1> arg1 <arg-label2> arg2 ...
arg-label为参数标识,常用的有:
1、file 图数据文件
2、filetype 后面是图存储类型 edgelist或者adjacencylist
3、execthreads 计算的线程数
4、membudget_mb 加载图数据可使用的内存大小
5、niters 迭代计算的次数
示例:
bin/example_apps/pagerank file ../pg/part1_sort.txt 3 filetype edgelist execthreads 8 niters 10
EdgeListFormat:src dist1 value1
AdjacencyListFormat:src 4 dist1 dist2 dist3 dist4
分析SNS关系图时,用EdgeListFormat更加方便处理,先将原始数据进行处理得到EdgeListFormat格式的数据,例如:
1 2
1 3
1 4
1 5
...
表示1关注了2、3、4、5,value值可以省略。
实验:
本文利用上面的工具进行了测试,测试的数据也是用的爬盟的新浪微博的用户信息数据(如图1所示的位原始数据),先对原始数据进行预处理,得到EdgeListFormat的关系图数据(如图2所示),这里需要注意的是GraphChi处理的id最大是2^32-1,而微博id太大无法处理,这里对微博id映射到从0开始递增的新id,映射关系如图3所示,最后运行pagerank程序得到最终的结果。实验的数据集包含100w+的微博用户信息,结果如图4所示,列出了rank值最高的20个用户的id、rank值和username。
图1
图2
图3
图4
项目地址:https://code.google.com/p/graphchi/
实例地址:http://code.google.com/p/graphchi/wiki/ExampleApps
其中的工具之一是pagerank,可以用它非常方便的对SNS的关系图(如新浪微博的好友关注图)进行分析。下面两篇文章就利用该工具对微博数据进行了分析,得出了用户的排名结果。
http://www.cnblogs.com/sing1ee/archive/2012/12/13/2811581.html
http://blog.sina.com.cn/s/blog_c2e02d1d01018qj7.html
安装:
1、下载graphchi:wget http://graphchi.googlecode.com/files/graphchi_src_v0.1.7b.tar.gz2、tar zxvf graphchi_src_v0.1.7b.tar.gz
3、cd graphchi_v0.1.7b #后面称该目录为graphchi_ROOT
4、make example_apps/pagerank
make成功后将会在graphchi_ROOT/bin/example_apps/中生成可执行程序pagerank
运行方式:
需在graphchi_ROOT中运行,bin/example_apps/pagerank file input-file <arg-label1> arg1 <arg-label2> arg2 ...
arg-label为参数标识,常用的有:
1、file 图数据文件
2、filetype 后面是图存储类型 edgelist或者adjacencylist
3、execthreads 计算的线程数
4、membudget_mb 加载图数据可使用的内存大小
5、niters 迭代计算的次数
示例:
bin/example_apps/pagerank file ../pg/part1_sort.txt 3 filetype edgelist execthreads 8 niters 10
数据格式:
graphchi支持两种数据格式:EdgeListFormat:src dist1 value1
AdjacencyListFormat:src 4 dist1 dist2 dist3 dist4
分析SNS关系图时,用EdgeListFormat更加方便处理,先将原始数据进行处理得到EdgeListFormat格式的数据,例如:
1 2
1 3
1 4
1 5
...
表示1关注了2、3、4、5,value值可以省略。
实验:
本文利用上面的工具进行了测试,测试的数据也是用的爬盟的新浪微博的用户信息数据(如图1所示的位原始数据),先对原始数据进行预处理,得到EdgeListFormat的关系图数据(如图2所示),这里需要注意的是GraphChi处理的id最大是2^32-1,而微博id太大无法处理,这里对微博id映射到从0开始递增的新id,映射关系如图3所示,最后运行pagerank程序得到最终的结果。实验的数据集包含100w+的微博用户信息,结果如图4所示,列出了rank值最高的20个用户的id、rank值和username。
图1
图2
图3
图4
相关文章推荐
- 新浪微博用户分析
- 智能手机应用取证系列之二:新浪微博iPad应用程序取证分析
- 爬取新浪微博用户的个人信息和微博内容
- 新浪微博用户超1.4亿 预计年内将突破2亿
- java实现新浪oauth2.0获取用户信息并发表一条微博
- 微博大战:新浪或推客户端 腾讯发力高端用户
- 新浪微博优秀工具和应用非深度主流试用体验分析推荐
- 2012年新浪微博用户密码泄露漏洞(图片解析)
- 新浪微博用户模型类
- 新浪微博粉丝通推广效果分析
- 2012年新浪微博用户密码泄露漏洞(图片解析)
- 新浪微博登陆过程分析
- 新浪微博用户重新激活策略――构架新的信息流传播节点
- 基于微博用户标签的中医药情绪分析
- 基于新浪开放平台的企业微博影响力分析应用的学习笔记。
- 新浪微博名人用词分析
- 安卓新浪微博开发报错: 20003:用户不存在
- 微博用户相似度分析
- 麦考林联手新浪盼将微博用户转向电子商务
- 微博用户行为分析