【《社区划分展示系统设计与实现》2300字】_第1页
【《社区划分展示系统设计与实现》2300字】_第2页
【《社区划分展示系统设计与实现》2300字】_第3页
【《社区划分展示系统设计与实现》2300字】_第4页
【《社区划分展示系统设计与实现》2300字】_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

社区划分展示系统设计与实现展示系统是通过用户输入复杂网络数据集给出社区划分的应用系统,为了更直观的看到各种社会关系网络的的结构特点,本章设计了的复杂网络展示系统不仅能够展示各种社会网络的原始网络结构,还能针对不同网络进行社区划分效果的展示。1.1展示系统概述1.1.1系统简述本章的展示系统从功能来看主要分为三个模块:一、对同质网络与异质网络的原始网络结构进行可视化展示,通过对原始网络的结构分析,可以得到原始数据节点的分布情况的大致情况。二、对不同的社区关系网络进行社区发现,用户可以在此模块选择不同的社区划分算法对不同的数据集进行社区发现运算,然后得到可视化社区发现效果图。三、为用户提供了一个可以上传数据的功能,用户可以选择向展示系统中加入数据集,用来观察其网络结构或者对上传的数据集进行社区划分的可视化展示。1.1.2系统总体设计本文的系统的主要实现有三部分构成:一、原始网络结构可视化展示,二、复杂网络社区划分可视化展示,三、用户登录数据集上传。图5-1为系统总体框架:图5-1系统总体框架图1.1.2开发环境及工具本文的开发环境是基于Windows10操作系统展开的,使用Python程序设计语言+Flask前端框架+CSV文件存储格式以web端进行展示。Python语言是一个高层次的结合了解释性,编译性,互动性和面向对象的脚本语言,具有较好的可移植性,可扩展性以及可嵌入性,并且开发效率非常高,python拥有众多模块,从简单的字符串处理到复杂的3D图像绘制,大大降低了程序开发周期。Flask是一个轻量级的Web框架,拥有很好的可扩展性,第三方开源组件丰富,其默认使用Jinjia2进行模板渲染。本文存储数据采用CSV格式文件格式,可以直接在程序中对数据进行操作。1.2系统功能分析与设计1.2.1社会网络结构展示为了能够更加直观的观察到各种不同复杂网络的原始网络结构,本文设计与实现了数据网络结构展示平台。平台中针对同质网络选用了(1)dolphins数据集根据学者通过观察海豚群体的交流情况而得到的海豚社会关系网络,节点表示海豚,而边表示海豚间的频繁接触;(2)karate数据集是美国大学空手道俱乐部进行观测而构建出的一个社会网络,其中节点表示俱乐部中的成员,而边表示成员之间存在的友谊关系。在异质网络数据集(1)本文所构建的DBLP数据集,其中包括节点有论文,发表期刊会议以及论文所属研究领域,边是论文共同发表期刊关系,同属研究领域,每篇论文特征通过词袋模型获得;(2)Cora数据集由机器学习论文组成,在数据集中,论文之间的关系为引用关系,每篇论文的特征通过词袋模型获得。数据网络展示模块如图5-2所示:图5-2数据展示功能图1.2.2社区发现算法分析与展示通过对原始数据结构的观察,能够得到数据集的节点分布情况,但是想要深入的发现其中的存在的潜在关系,就必须要通过社区发现算法对数据进行深层次的解析,本文设计与实现了可视化社区划分结构展示。社区划分模块通过采用不同的算法针对对同质网络数据集和异质网络数据集分别展开了社区划分任务,首先用户可以选择要进行社区划分的数据集,然后再选择合适的社区划分方法,通过后台算法计算训练,最后返回社区划分的可视化展示图,过程如图5-3所示。图5-3社区展示流程图1.3展示系统实现系统主界面如图5-4所展示为进入系统的主界面,用户可以在主界面根据自身需求,选择相应的功能页面进行操作,比如进入同质网络,异质网络或者社区划分模块。图5-4系统主界面数据网络结构展示在进入数据原始网络结构页面,分为对同质网络数据与异质网络数据进行网路结构展示两部分,其操作流程都相同,首先读取数据集文件,将id作为标签,获取数据集的节点和边,在图中添加节点和边,设置图形大小,画出节点随机分布图,设置点和边的样式,将图转换为二进制文件,再转换成html文件以实现将图传到前端,连接数据库,获取数据集表中的数据集介绍,设置参数,将参数传到前端,返回数据集原始网络图展示页面,部分代码如表5-1所示:表5-1原始网络图功能实现defread_gml(data):H=nx.read_gml(data,label='id')#获取数据集,将ID作为标签nodedata=H.nodes;eagedata=H.edges;returnnodedata,eagedata@app.route('/ka')defka():#引用函数得到边和点(nodeums,edgesnum)=read_gml('data/dolphins.gml')net_grid.add_nodes_from(nodeums)net_grid.add_edges_from(edgesnum)plt.clf()plt.rcParams['figure.figsize']=(10.0,8.0)#设置figure_size尺寸pos=nx.random_layout(net_grid)#随机分布图nx.draw_networkx_nodes(net_grid,pos=pos,node_color='b',node_size=150,alpha=0.7)#点的样式nx.draw_networkx_edges(net_grid,pos=pos,width=0.3,alpha=0.2)#边的buffer=BytesIO()plt.savefig(buffer)plot_data=buffer.getvalue()imb=base64.b64encode(plot_data)#对plot_data进行编码ims=imb.decode()conn=sqlite3.connect("flask.db")c=conn.cursor()#获取游标c.execute("select*fromdataset")mit()rows=c.fetchall()conn.close()returnrender_template('ka.html',img=imd,rows=rows)首先在上传的数据集中选择需要查看网络结构的数据集,这里选择异质网络数据集中的DBLP异质网络数据集与Cora数据集为例,对应分别得到如图5-5与图5-6所示系统页面。图5-5DBLP数据原始结构展示图图5-6Cora数据原始结构展示图如图所示,展示系统通过对上传的数据集进行解析,得到了对应的原始结构展示图,在上述两幅图中可以看出,不同的颜色代表不同的节点,以及节点之间的联系。在展示系统页面的左上角为数据集的介绍信息。三、社区结构展示在社区结构展示中,用户首先需要选择要进行社区划分的数据集,然后再选择社区划分方法对数据集进行模型训练,查询调用社区划分算法代码如表5-2所示。表5-2算法查询调用#算法信息查询功能@app.route('/alg',methods=('GET','POST'))defalg():conn=sqlite3.connect("flask.db")c=conn.cursor()#获取游标sql_select="select*fromalg"c.execute(sql_select)rows=c.fetchall()print(c.fetchall())msg="查询成功"mit()conn.close()returnrender_template('alg.html',rows=rows,msg=msg)但是在展示异质网络数据社区划分结果的时候,由于数据量较大,数据的加载训练时间比较长,系统效率就会大大降低,所以系统将会在进行数据量比较大的异质网络社区划分的时候,就会借助Gephi绘图软件构建社区划分展示图,将最终划分结果导入到展示系统中,如下图5-7所示。图5-7Cora社区结构展示图图5-8DBLP社区结构展示图图5-7与图5-8是系统调用GCN+K-means社区划分方法对DBLP数据集与Cora数据集进行的社区划分,根据节点颜色的不同,可以很直观的看到,C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论