ITTC数据挖掘平台介绍(四) 框架改进和新功能

本数据挖掘框架在这几个月的时间内,有了进一步的功能增强

一. 超大网络的画布显示虚拟化

    如前几节所述,框架采用了三级层次实现,分别是数据,抽象Node和绘图的DataPoint,结构如下:

     在界面显示部分,之前并没有做过虚拟化优化,为了实现更多的功能,通过大量的事件挂接和其他操作将显示的控件与底层数据紧密耦合,因此内存回收机制几乎不起什么作用(原因见我另外一篇博客-事件的迷惑)。另外,绘图控件包含很多可视化元素。这样的恶果便是当点的数量增大时,内存占用量也急剧增大,1万点时,就会占用1GB内存,反应迟缓,性能很差。

    为了解决这个问题,我们采用了虚拟化技术。其核心技术是通过WPF的Listbox内部的VirtualStackpane内置的内存回收机制,仅保存需要在界面上显示的功能。设计参考了Kael Rowan的ZoomableCanvas。有兴趣的同学可以去他的博客看下实现,此处不做赘述。我们使虚拟画布同样实现原有的接口,上层应用可以不关心具体实现的细节。

    经过这项改进,我们的画布可以在1.3s内加载10W点的复杂网络模型(JSON数据经过Zip压缩),并通过虚拟化显示出来:如下图:

   当视觉焦点不在该范围内时,该范围内的节点和线会自动回收,其他点会自动生成。这样做的好处是节省内存,代价是CPU占用率不低,因为反复做着内存回收和申请,以及界面重绘的工作

   通常的建议是,ZoomableCanvas内部有属性:RealizationLimit="3000", RealizationRate="100",分别代表页面中最多的点的数量,以及每次刷新增加/删除的点数量。可以根据机器配置自动适配。

   理论上,画布可以支持任意数量的点的显示,而不考虑内存的限制,但不能超过int32.MaxValue.

二. 复杂网络生成

    我们为了研究复杂网络行为,专门添加了复杂网络生成模块,该模块可以根据用户需要生成不同大小,模型和参数的网络结构,方便用户研究和分析网络:它实现了INetworkGenerator接口。

复杂网络生成可按照“网络规模”参数和连接概率生成网络结构,内置了BA网络,复杂网络模型,WS网络模型等常用的模型。生成效果如下图:

  三. 改进的布点算法和筛边策略

     由于网络规模不断增大,需要更好更快的布点算法,我们经过博采众长,框架中集成了多达5种不同用途的布点算法,LargeScale算法可在半小时内处理高达50万节点的布点问题. ForceIndicate算法可在牺牲一定速度的基础上获得更好的效果,另外的一些方法可较好的处理权重网络(边强度越大,联系越紧密,位置越近)。用户可通过选择菜单,选取不同的布点算法。

     同时,可勾选3D选项,布点即可在3D情况下计算实现。

     下面是ForceIndicate算法计算微博传播网络时绘制的效果,1000点,用时30s:

      四. “任务”工具菜单

      虽然平台拥有完整的算法组装的机制,但对普通用户来说,拖拽算法并配置的操作依旧复杂。在此基础上,我们开发了针对“任务”的工作方式,如下图所示:

    用户切换到任务视图,选中某个任务点击加载,系统即可自动按照任务配置,加载所有算法模块,完成组装工作并设置参数,用户点击运行即可。

    同时,您也可以将某个计算列表保存成一个新的任务:

  

   并修改任务名称和任务描述等:

这样,其他人就可方便的重用您的设置,只需选取数据源并运行即可。

  五. 其他改进

1.增加MongoDB连接器界面,用户可更方便的从MongoDB中读取和检索数据。

2.改进配色,采用纯灰色调,使用户更关注于任务而非工具本身。

3. 工作流优化:一个数据链,当某个模块的配置被更改时,只有算法下游的模块才会被重新计算。这样大大减少了系统运行的时间。

4. 增加大规模聚类算法,万点处理速度仅需1秒。

 

欢迎您继续关注我们数据挖掘工具软件的开发情况。

时间: 2024-10-27 02:56:44

ITTC数据挖掘平台介绍(四) 框架改进和新功能的相关文章

ITTC数据挖掘平台介绍(综述)——平台简介

数据挖掘方兴未艾,大量新事物层出不穷.本系列将介绍我们自主设计的数据挖掘软件平台.与大家共同分享对知识,微博,人际等复杂网络的分析,以及对自然语言处理的见解. 一.我们需要怎样的数据挖掘系统       一直以来,以高校为代表的学术界和以公司为代表的商业界,都有很大的隔阂.学术界普遍不会做产品,商业界普遍不会搞研究.如果两者都强,那就是美国军方了.        在数据挖掘领域更是如此,大量关于复杂网络,自然语言处理的牛文层出不穷,却被研究机构和大公司养在深闺人未识.绝大多数智能机器学习算法被封

ITTC数据挖掘平台介绍(七)强化的数据库, 虚拟化,脚本编辑器

一. 前言        好久没有更新博客了,最近一直在忙着找工作,目前差不多尘埃落定.特别期待而且准备的都很少能成功,反而是没怎么在意的最终反而能拿到,真是神一样的人生.        言归正传,一直以来,数据挖掘系统的数据类型是我很头疼的问题,不可能为了每一种场景都定义一种新的数据类型,但通用类型又没法满足所有需求,而且性能上有影响.思来想去,最终决定结合两种特点制定一种方案:以通用类型为主,一些特定场合和要求再制定自定义类型,比如微博.   通用数据类型的名字叫FreeDocument,它

ITTC数据挖掘平台介绍(二) 微博数据挖掘和分析

上节我们介绍了系统的基本框架和特性,本文我们将通过该平台进行微博数据挖掘,并给出一些有意思的结果. 一.微博和微博数据 1.分析微博的意义        新浪的数据以每天海量的速度增长,它包含了四亿网民的对国家大事的看法,对生活的诉求,对环境和人的观点,以及人际间关系,是了解和分析复杂网络和社会行为的无比重要的资源.因此开发微博分析软件,是有非常重要的意义的. 2.加载微博分析独立组件     系统主要针对新浪微博,我们为微博开发了独立组件包,将其动态链接库dll文件拷贝到软件的插件目录下,系统

今天微信开放平台发布了一个内测的新功能微信登陆

摘要: 今天微信开放平台发布了一个内测的新功能微信登陆.微信登录是指移动应用和网站应用,可以通过接入该功能,让用户可以通过微信帐号来登录,降低注册门槛和用户流失率.此外, 今天"微信开放平台"发布了一个内测的新功能--微信登陆.微信登录是指移动应用和网站应用,可以通过接入该功能,让用户可以通过微信帐号来登录,降低注册门槛和用户流失率.此外,还会在经过用户同意后,将用户基本信息(头像.昵称.性别.地区.语言)提供给开发者. 微信登录当前处于邀请内测阶段,邀请已开通移动应用微信支付的帐号,

Rafy领域实体框架演示(2) 新功能展示

本文的演示需要先完成上一篇文章中的演示:<Rafy 领域实体框架示例(1) - 转换传统三层应用程序>.在完成改造传统的三层系统之后,本文将讲解使用 Rafy 实体框架后带来的一些常用功能. 数据库自动生成 在程序转换转换完毕后.由于已经配置好数据库的连接字符串,所以直接运行整个程序,Rafy 会同时生成对应的数据库.表.字段,以及相应的外键关系等. 该库满足数据库的第三范式要求.同时,开发过程中新添加的属性,也会每次自动同步到这个数据库中. 以下是服装管理系统生成的数据库结构图: 监控执行的

Rafy 领域实体框架演示(2) - 新功能展示

数据库自动生成 在程序转换转换完毕后.由于已经配置好数据库的连接字符串,所以直接运行整个程序,Rafy 会同时生成对应的数据库.表.字段,以及相应的外键关系等. 该库满足数据库的第三范式要求.同时,开发过程中新添加的属性,也会每次自动同步到这个数据库中. 以下是服装管理系统生成的数据库结构图:   监控执行的 SQL 语句 框架可以记录所有运行过程中执行的 Sql 语句及相关日志.这对于开发人员做系统调试.性能优化提供了较好的帮助. 该功能需要手动打开.在配置文件中添加以下配置: <config

中国开放政府数据平台研究:框架、现状与建议

摘要:依托"开放数据晴雨表"(Open Data Barometer)"开放数据指数"(Open Data Index)两项开放政府数据评估分析框架和和国际评估实践,基于中国国情,建立了基于"基础""数据""平台"三大层面共13个维度构成的评估框架,并对中国多个地方的开放政府数据实践情况进行了比较研究.研究显示,中国开放政府数据实践存在六个方面的主要问题:数据量少.价值低.可机读比例低,开放的多为静态数据,

XMOVE3.0手持终端——软件介绍(四):在2KB内存的单片机上实现的超精简五子棋对战算法(原创)

一. 综述 这是我两年前完成的一个小项目,它基于我开发的XMOVE动作感应系统平台.五子棋算法网上随便一搜到处都是,不过值得自豪的是,我在2KB内存的单片机上不仅跑上了我自制的嵌入式OS,还能同时跑五子棋.这是界面截图:  以下是它的功能和特性: 内存占用极低,约600byte 执行一次迭代过程,算法在初级水平(同学,这是单片机,不是电脑!) 在8MHz的MSP430上算法执行时间不超过0.3s 支持人机对战,双人对战和无线对战(通过NRF24L01实现) 代码精简 嵌入式彩屏GUI实现 支持陀

AgileEAS.NET平台视频会议培训第一辑-AgileEAS.NET平台介绍及药品系统的SAAS搭建演练

一.AgileEAS.NET 5.0预告 最近忙着准备AgileEAS.NET 5.0的东西,所以也忙的没有向大家分享有关于AgileEAS.NET平台及相关的快速开发技术,AgileEAS.NET 5.0版本将是一个具体里程碑意思的版本,如果说4.0版本是我创业以来发布的第一个商用版本的话,那么5.0的版本将是一个完整的企业级应用解决方案. 5.0版本在4.0版本的基础之上增加了表单/界面设计器.工作流系统.以及提供了对Silverlight技术的企业级应用支持,同时将会加强AgileEAS.