随着社交网络的普及,越来越多的用户通过facebook等社交平台联系到了一起。本文将基于facebook的好友关系数据,研究用户分布规律,并提供简单的好友推荐算法。
数据来源
KONECT1 http://konect.uni-koblenz.de/networks/facebook-wosn-links
数据原始格式
. txt文本格式,空格分隔
. 注释信息以%开头
. 每行一组数据,共四个字段
第一字段:用户ID1
第二字段:用户ID2
第三字段:用途不明
第四字段:好友关系建立时间,多数为0,数据缺失
% sym unweighted
% 817035 63731 63731
1 2 1 0
1 3 1 0
1 4 1 0
2 3 1 1183325626
2 7 1 0
2 9 1 1187651286
...
Note:好友信息以无向图的形式存储,不存在重复链接,保证第一字段用户ID始终小于第二字段用户ID;从实例数据中我们可以看到用户1和用户2是好友,但只存在于用户1的好友记录里,而不会在用户2的好友记录里重复出现
数据清洗
需要从原始数据中清除这些:
- 以%开头的注释行
- 不明用途的第三字段
- 数据缺失的第四字段
# 利用linux命令sed,awk完成数据清洗
cat facebook-wosn-links.txt | sed '/%/d' |
awk '{print $1" "$2}' > facebook-wosn-links-clean.txt
数据读入
利用R语言read.table函数以table格式存储数据
# R语言读入数据
friends.whole <- read.table(