ITTC数据挖掘系统(六)批量任务,数据查看器和*文档

时间:2022-02-02 02:25:21

这一次带来了一系列新特新,同时我们将会从商业智能的角度讨论软件的需求

一. 批量任务向导

一个常用的需求是完成处理多个任务,可能是同一个需求以不同的参数完成多次,这类似批量分析某一问题;或者是不同的需求顺次完成,比如系统功能级测试。因此非常有必要加入该功能。由于系统有对“任务”级功能的支持,所以添加该功能很容易,加入一个任务队列,当上一任务完成时自动配置和启动下一任务即可。

我们以批量执行同一任务为例,看下下面的操作。点击“任务”菜单的“启动批量任务”向导,即可实现如下配置:选择要批量执行的任务:

ITTC数据挖掘系统(六)批量任务,数据查看器和*文档

选取要修改的参数,

ITTC数据挖掘系统(六)批量任务,数据查看器和*文档

我们此处选择“ScaleSize”参数。以一行一个参数的形式填写下面的表格:

ITTC数据挖掘系统(六)批量任务,数据查看器和*文档

点击完成之后,系统会自动按照不同的ScaleSize参数,完成循环,并输出所需结果。

至于对于顺次执行多个任务的需求,目前可以从外部加载任务配置单,并可按任务配置顺次执行,该任务配置保存了详细的任务参数和模块名称,以XML格式存储。

二.加强的数据浏览器

系统原先内置的数据浏览器是ListView表格控件,目前使用了功能更强大的DataGrid,效果如图:

ITTC数据挖掘系统(六)批量任务,数据查看器和*文档

通过延迟加载和动态绑定的特性,该控件可以获得相当好的性能,同时可以方便的对数据列做排序,分组等操作:

ITTC数据挖掘系统(六)批量任务,数据查看器和*文档

同时,该控件还可以方便的修改数据属性,包括字符串,时间和数字等。并将修改保存到数据库中。

三. 插件式的界面替换

对WPF程序来说,换肤是一件很普通的功能,但如果完全替换成另外一个View,还是需要一定的技巧的。由于本系统在设计时,没有充分考虑到标准MVVM的需求,而采用了插件式的Model管理View的方式(可c参考我的MVVM 开发的几种模式讨论(WPF))。这导致了动态替换View变得更为困难。

经过了长久的考虑,我决定不对框架做伤筋动骨的改变,对View也采用插件的方式,通过一个新加插件接口 ICustomView,系统在加载包含View的插件时,会在插件集合中查找实现该接口,且与原插件名字一致的界面控件,并将原插件的界面动态替换成新插件。这样就实现了启动时动态界面替换。

打了比方说,如果我觉得目前的界面和控件不符合需求,可以写一个新的界面库,将该界面库的dll文件拷贝到插件目录下,即可自动替换掉原来的View.删除该dll后,就会恢复成原有的View,非常简单方便。

四. 思考:对“无类型”数据的处理

由于数据类型也是插件的一份子,因此可以方便的添加新的数据类型,但依旧有麻烦的事情。

比如对“人”,有的数据是面对普通微博用户的,有些是面对企业和*高官的,有些是面向学生教师的,他们都具有各自的特性和自定义字段。随着要处理的数据变多,这种问题变得更加尖锐。

为了处理一次数据,我们没有必要去为其新建一个数据类型(而且还是重复的)。但我们也不可能做到把所有可能的属性都添加到队列中。而系统现在只能处理“类型”数据,依赖它去存储,可视化,分析,计算…

如何解决这一问题呢?这一点可以向Excel学习,Excel本身不需要定义数据类型,通过表格的X,Y坐标命名变量并实现功能。这是一种很好的思路。但如果我也按照这样的方式处理,那么软件也成了Excel,反而丧失了它的价值。而统计这一类简单的功能还好说,对于更复杂的数据挖掘功能,如何处理这种无类型的数据呢?这真是个复杂的问题!

五. 说好的“算法”呢?

所有的读者可能都有这样的疑问,楼主你们做的是一个数据挖掘工具啊,怎么只见你更新“工具”的功能,却没有更新“数据挖掘”的功能啊?那些牛逼的算法呢?这个问题我也知道,如果没有精巧的机器学习/数据挖掘的算法模块,就算打造成一个超牛的数据可视化工具,又如何呢? 只是作者目前时间有限,做工具比做算法的实践性更高一些。我马上要找工作了啊亲!

之后的时间,关联规则,自动推荐,高级的聚类和分类算法,语义分析。。。这些模块才是最重要的,要做的事情多着呢。。。加油!