数据集的官网 http://realitycommons.media.mit.edu/index.html(可能需要FQ) ,下面是数据集的简要介绍(摘自官方网站)
The goal of this experiment was to explore the capabilities of the smart phones that enabled social scientists to investigate human interactions beyond the traditional survey based methodology or the traditional simulation base methodology. The subjects were 75 students or faculty in the MIT Media Laboratory, and 25 incoming students at the MIT Sloan business school adjacent to the Media Laboratory. Of the 75 Media Lab participants, 20 were incoming masters students and 5 were incoming MIT freshman, and the rest had remained in the Media Lab for at least a year.
本文的初衷是在尽可能保户用户隐私的情况下对用户进行好友推荐,而不是像许多文献那样(这里指获取用户的隐私数据,我个人觉得不可行.),这里只是在实验的情况下,因为在现实生活中,不会有人经常开着无线设备而为了得到一些无关紧要的推荐结果.本文思想是利用 bluetooth 数据,发现用户好友关系,对其简单的排序结果对用户进行好友推荐,并与随推荐结果相比较,验证其方法的可以行性.实验使用的数据集是 2004年,mit的数据,不知道有没近些年的相关数据集,有感兴趣的可以交流一下.
抽取部分自己需要的数据:
1 %获取需要的数据, 2 %转入原始数据 3 data = load(‘realitymining.mat‘); 4 %subject数据 struct 数组 1*106 struct 5 %结构体数组 data.s(0) - data.s(106) 6 %可以采用这种方式 给新 结构数组 赋值 datalite.s(0).mac = data.s(0).mac 7 8 % 新建一个结构体数组,可采用 使用直接引用方式定义结构 9 s = struct([]); 10 n = 1; 11 while (n~=107) 12 %添加想要的数据 13 s(n).mac = data.s(n).mac; 14 s(n).device_list_macs = data.s(n).device_list_macs; 15 s(n).device_list_names = data.s(n).device_list_names; 16 %这三列数据的 列数应该是相等的. 17 s(n).device_date = data.s(n).device_date; 18 s(n).device_names = data.s(n).device_names; 19 s(n).device_macs = data.s(n).device_macs; 20 s(n).neighborhood = data.s(n).neighborhood; 21 s(n).my_office = data.s(n).my_office; 22 n=n+1; 23 24 end 25 26 network = data.network; 27 save ‘slite‘ ‘s‘ ‘network‘
根据好友关系绘制拓扑图,结点显示 bluetooth的 mac号.
function ND_netplot(network,s) A = network.friends; [n,m]=size(A); w=floor(sqrt(n)); h=floor(n/w); x = zeros(1,w*h); y = zeros(1,w*h); index = 0; for i=1:h %使产生的随机点有其范围,使显示分布的更广 for j=1:w index = index +1; x(index)=10*rand(1)+(j-1)*10; y(index) =10*rand(1)+(i-1)*10; end end ed=n-h*w; for i=1:ed index = index +1; x(index)=10*rand(1)+(i-1)*10; y(index)=10*rand(1)+h*10; end plot(x,y,‘ok‘); title(‘网络拓扑图‘); for i=1:n for j=1:n if A(i,j) == 1 c=num2str(A(i,j)); %将A中的权值转化为字符型 text((x(i)+x(j))/2,(y(i)+y(j))/2,c,‘Fontsize‘,10); %显示边的权值 if i ~= j arrow([x(j),y(j)],[x(i),y(i)]); %带箭头的连线 end end %hold on; end if i< 94 %这里不显示点的序号,显示 mac地址. sub_index = network.sub_sort(i); mac = [‘--‘,num2str(s(sub_index).mac)]; text(x(i),y(i),[num2str(sub_index),mac],‘Fontsize‘,9,‘color‘,‘r‘); %显示点的序号 disp([num2str(sub_index),mac]); end end end
结果如图:
到这里并不没做什么实际性的工作,只是将需要的数据分离出现.并将好友关系,以有向图的方式绘制出来 .
用户 hash_number 与之对应的 bluetooth mac
3--61961024887 4--61961024891 5--61961024929 6--61961024956 7--61961024927 8--61961025059 9--61961078506 10--61961024943 11--61961024868 12--61961078565 13--61961024950 14--61961078566 15--61961024968 16--61961024963 17--61960619991 19--61961024937 20--61961024824 21--61961024912 22--61961024938 23--61961025033 25--61960946218 26--61961078573 27--61961024853 28--61961078595 29--61960946349 30--61960946207 31--61961078619 32--61961024881 33--61961025202 35--61961024951 36--61961025054 37--61961024911 38--61961025073 40--61961078559 41--61965359991 42--61965359983 43--61965360050 44--61965359948 46--61964943979 48--61965019962 49--61964944350 50--61965359903 52--61964943984 53--61964979150 54--61964961925 55--61965020029 56--61965359944 57--61964979154 58--61964979130 60--61965019994 61--61965020015 62--0 63--61964944011 65--61964944067 66--61964943982 67--61965019987 68--61965020019 69--61964961927 70--61965359883 71--61964944054 72--61965019983 73--61965020021 74--61964943996 75--61964961871 76--61964944027 77--61965359909 78--61964944064 79--61965019992 80--14720303796 81--61965019959 82--61964979163 83--61964972168 84--61964944053 86--61964979139 87--61964944337 88--61965020009 89--61964944313 90--61964944046 91--61964944038 92--61964944018 93--61964944057 94--61964943986 95--61964944035 96--61964979158 97--61964944341 98--61965019996 99--61965359937 100--61965359920 101--413791240929 102--61961353423 103--413791240838 104--413787380563 106--
把好友关系蓝牙的扫描到的次数用用图形表示出来,程序写的比较乱便不贴上来了:
完善....
Realitymining 数据集简单介绍与使用