本发明属于软件工程技术领域,具体涉及一种面向学生校园卡行为数据构建社交网络的方法。
技术背景
在计算机软硬件迅速发展的今天,随着科学技术的进步,人们已经可以通过手机app、校园卡、校园网wifi等来收集一个学校里面绝大多数学生的生活和学习行为数据,对这些学生每天产生的海量数据进行行为分析,可以从中挖掘出学生的日常行为规律并且可以对老师的教育管理方法提供必要的指导。同时,对大数据的处理分析正成为新一代信息技术融合应用的结点。通过对不同来源数据的管理、处理、分析与优化,将创造出巨大的经济和社会价值。
网络与网络分析是定量科学中近几年热度增长最快的领域之一。社交网络是动态的、复杂的系统。社会网络分析问题起源于物理学中的适应性网络,通过研究网络关系,有助于把个体间关系、“微观”网络与大规模的社会系统的“宏观”结构结合起来。在传统的网络研究中研究者选取的网络关系是基于直接的交互数据,比如说基于已知的友谊关系、基于统计的交互强度、基于用户行为的链接关系、基于统计特征和用户关系的强度等,这些数据都是或多或少与被研究者的社交关系直接相关。随着科技的飞速发展,在高校的大数据研究也进入飞速发展的时代,人们已经可以获取更多的个人行为数据集,希望能够通过对这些数据的挖掘分析找到这个群体的社交网络结构,进一步进行社交网络分析。
技术实现要素:
本发明的目的就是为了克服现有技术中的不足,提供一种社交网络关系构建方法,一种面向学生校园卡行为数据进行关系挖掘从而构建社交网络进行研究分析,其中将从校园卡获取的行为数据集进行分类,选取了食堂就餐的这一种常规行为,通过数据清洗、处理、分析,利用时空共线的判断方法找到其关系链接,统计其链接强度,当大于阈值的时候,认为这个关系链接是符合朋友关系的链接,从而获得该社交网络中任意用户之间相互关系的真实、可靠的关系,实现整个社交网络的结构构建。
本发明的目的是通过以下技术方案实现的。
一种面向学生校园卡行为数据构建社交网络的方法,包括以下步骤:
(1)从学校校园卡管理中心oracle数据库下载学生的校园卡消费数据集d0,通过数据清洗、处理,获取食堂就餐消费数据集d;
(2)根据获取的食堂就餐消费数据集d,找到每一个学生在食堂就餐行为的时间序列e;
(3)将时间序列e转换数据结构,将时间数据线性化,得到每一个学生的食堂就餐数据字典e;
(4)通过时空共线的方法,对每一个学生的每一次就餐行为,寻找在相同时间(前后2分钟内)相同地点(同一个食堂的同一个窗口)有就餐行为的同学,将其行为看作一次行为交互的链接,统计行为交互的链接次数,当两个学生的链接强度次数大于阈值n的时候,认为这种行为不是随机出现的,指示这种链接关系符合朋友关系的链接;
(5)遍历上一个步骤中每一个学生的食堂就餐消费数据,得到学生节点集v和朋友关系集l;
(6)构建g=(v,l)的社交网络。
在上述技术方案中,基于数学的统计概率,设定阈值n为5。通过数值统计分析,发现高校学生中任意两个学生在一个月内食堂就餐发生时空共线关系超过5次的概率非常低,不到0.1%
在上述技术方案中,步骤(1)具体包括:
s11、创建一个csv文件保存从数据库里面下载的学校所有学生的校园卡消费记录,就是原始数据集d0的所有内容。d0的数据样式为:
{“index”,“student_id”,“amount”,“date-time”,“category”,“student_category”,“location”},实例化样式如下:{"130158694","c23ba2f437019c42ac804c26d92b4c1a","38.50","2018/1/2510:56:31","消费","本专科生","华中师范大学\后勤集团\饮食中心\学子中西餐厅\一楼";
"130158695","b083603351bb3e73d9ad5c98d3a18f78","12","2018/1/2511:00:40","消费","本专科生","华中师范大学\后勤集团\饮食中心\学子中西餐厅\一楼";
"130158696","f45e394f39cf088d2c2e7000fa0cd267","16.50","2018/1/2511:03:30","消费","硕士生","华中师范大学\后勤集团\饮食中心\学子中西餐厅\一楼";
……}。
s12、清洗数据,对于缺失值做删除个案处理,并且剔除每个月消费次数低于15次的学生的消费数据,只保留每个学生食堂消费时间和地点数据,得到每个学生的食堂就餐消费数据集d:
d={“student_id”,“date-time”,“location”}。
在上述技术方案中,步骤(2)具体包括:
s21、将每个学生的d序列的每次就餐时间和地点想对应起来,按照时间先后给date-time和location进行排序。
s22、整合数据,得到每个学生的食堂就餐行为的时间序列e:
e={t1-d1-l1,t2-d2-l2,…,tn-dn-ln}
这里的dn代表日期,如“2019/1/1”,tn表示时间,范围为[00:00:00,23:59:59],ln表示食堂窗口,n表示学生食堂就餐总的次数。
在上述技术方案中,步骤(3)具体包括:
s31、为了方便对时间数据进行处理,将日期时间数据{dk-tk}转换为一个线性的数值,方便下一步进行比较和判断。
s32、利用python中的time模块对时间进行集中统一处理,转换为从1970/1/1零点整到现在过了多少秒,{dk-tk}就得到tk。例如{2018/3/1122:22:22}转换得到1520778142。
s33、转换数据结构,将每一个学生的食堂就餐时间序列e统计整合成学生数据字典e,e={'stu_id','tn','ln'},其中stu_id表示学生的学号,tn表示学生食堂就餐日期时间数据列表,ln表示学生食堂就餐的窗口位置列表。
在上述技术方案中,步骤(4)具体包括:
s41、对某学生(设为i)的每一次就餐行为,都有其对应的tk和lk,寻找在相近时间(|tk-t’k|≤120)相同地点(lk==l’k)有就餐行为的同学(设为j),将其看作i同学和j同学的一次行为交互的链接,统计
s42、重复s41的步骤,直到遍历完学生i的所有就餐行为的tk和lk,找到所有符合时空共线的学生的stu_id,用列表link_friendshiprelation以键值对形式保存在学生数据字典e中。
在上述技术方案中,步骤(5)具体包括:
s51、获取所有学生的数字字典,保存在date数据列表中。遍历这个date,剔除没有找到link_friendshiprelation的学生元素。
s52、给剩下的学生字典按照date列表顺序遍历加索引键index_id(从1开始自然数线性增加)。
s53、将学生数据字典e中的link_friendshiprelation对于的学生学号id转换成每个学生对应的s52添加的index_id。
s53、获取所有学生的index_id可以得到学生节点集v,汇集每个学生link_friendshiprelation数据,可以确定关系集l。
最后根据节点集v和关系集l,就可以构建社交网络g=(v,l),进一步进行网络分析了。
本发明与现有技术相比,具有以下优势:
1.对海量数据的校园卡刷卡的记录进行深度挖掘,利用时空共线挖掘朋友关系,最终构建社交网络。
2.对基于高校食堂就餐这种普遍且易量化的日常行为进行朋友关系挖掘,为非直接的社会网络的构建提供指导。
3.利用时空共线的原理和基于统计概率的阈值筛选方法找到的朋友关系是符合实际和预期。
附图说明
图1是本发明实施例的总体架构图。
图2是本发明实施例的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
如图1、2所示,本发明实施例提供一种面向学生校园卡行为数据构建社交网络的方法,包括以下步骤:
(1)如图1所示,首先从学校校园卡管理中心oracle数据库下载学生的校园卡消费数据集d0,对于缺失值做删除个案处理,并且剔除每个月消费次数低于15次的学生的消费数据,只保留每个学生食堂消费时间和地点数据,得到每个学生的食堂就餐消费数据集d={“student_id”,“date-time”,“location”}。
(2)根据选取的学生食堂就餐数据集d,按照时间先后给date-time和location进行排序,整合数据,得到每个学生的食堂就餐行为的时间序列e:
e={t1-m1-l1,t2-d2-l2,…,tn-dn-ln}
(3)将时间序列e转换数据结构,将时间数据线性化,得到每一个学生的食堂就餐数据字典e:e={'stu_id','tn','ln'}。
(4)如图2所示,对学生(设为i)的每一次就餐行为,都有其对应的tk和lk,寻找在相近时间(|tk-t’k|≤120)相同地点(lk==l’k)有就餐行为的同学(设为j),将其看作i同学和j同学的一次行为交互的链接,统计
(5)获取学生节点集v和朋友关系集l。
(6)构建社交网络g=(v,l)。
本说明书未作详细描述的内容,属于本专业技术人员公知的现有技术。
应当说明的是,以上包含的本发明实例内容说明,是为了详解释本发明的技术特征。在不脱离本发明的前提下,所做出的若干改进和修饰也受本发明的保护,因此本发明的保护范围应当以本申请的权利要求所界定的内容为标准。
1.一种面向学生校园卡行为数据构建社交网络的方法,其特征在于该方法包括以下步骤:
(1)从学校校园卡管理中心oracle数据库下载学生的校园卡消费数据集d0,通过数据清洗、处理,获取食堂就餐消费数据集d;
(2)根据获取的食堂就餐消费数据集d,找到每一个学生在食堂就餐行为的时间序列e;
(3)将时间序列e转换数据结构,将时间数据线性化,得到每一个学生的食堂就餐数据字典e;
(4)通过时空共线的方法,对每一个学生的每一次就餐行为,寻找在相同时间相同地点有就餐行为的同学,将其行为看作一次行为交互的链接,统计行为交互的链接次数,当两个学生的链接强度次数大于阈值n的时候,指示这种链接关系符合朋友关系的链接;
(5)遍历上一个步骤中每一个学生的食堂就餐消费数据,得到学生节点集v和朋友关系集l;
(6)构建g=(v,l)的社交网络。
2.根据权利要求1所述的面向学生校园卡行为数据构建社交网络的方法,其特征在于:基于数学的统计概率,设定阈值n为5。
技术总结