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

数据挖掘方兴未艾,大量新事物层出不穷。本系列将介绍我们自主设计的数据挖掘软件平台。与大家共同分享对知识,微博,人际等复杂网络的分析,以及对自然语言处理的见解。

一、我们需要怎样的数据挖掘系统

      一直以来,以高校为代表的学术界和以公司为代表的商业界,都有很大的隔阂。学术界普遍不会做产品,商业界普遍不会搞研究。如果两者都强,那就是美国军方了。

       在数据挖掘领域更是如此,大量关于复杂网络,自然语言处理的牛文层出不穷,却被研究机构和大公司养在深闺人未识。绝大多数智能机器学习算法被封装在基础层中,以潜移默化的方式服务用户(比如用户推荐等),普通用户无法将其用于自己的应用场景。 而以SPSS为代表的统计和商业智能为核心的平台,使用复杂,结构封闭,它们以统计为核心,但在真正的“智能”领域,依旧缺乏火候。因此,我们需要能面向普通用户的易用系统,甚至不需要写脚本。

      说到数据挖掘,就一定要和“大数据”放在一起。可是,几百万条的数据,根本不算是大数据,一台笔记本都能在数小时内处理完成,更不需要用复杂的分布式引擎去完成(可能为了实现这套算法,开发时间就比使用时间都长)。而真正的应用场景,数据越大,反而越不值钱,99%都是百万级以下的数据量。因此,我们需要能在笔记本电脑上良好工作的系统。

      对于普通用户,他希望能简单直接的看到分析结果,了解复杂数据间的网络关系,了解数据的地理分布,了解如何被分类。因此,我们需要强大的可视化工具。

       现有的种种功能,也许在未来的应用场景中依然不够完备。因此平台的功能需要随时扩展,甚至面向行业做专业的定制服务。我们需要灵活的,可扩展性强的系统。

       总结以上观点,我们要开发一套使用简单,易于扩展,可面向领域,强化可视化和服务性,整合从数据导入到分析和可视化完整流程的数据挖掘系统,体现自己的独特优势,于是,该平台诞生了。

我的插件式桌面软件框架类库(一)XFrmWork简介

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

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

ITTC数据挖掘平台介绍(三) 微博社团和传播分析

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

ITTC数据挖掘平台介绍(五) 数据导入导出向导和报告生成

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

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

二. 如何与已有相关工具交互

        1. 与Hadoop等开源分布式框架的交互

       我们不需要重头开发自有的分布式平台,要做好的是前台和后台的接口。Hadoop已经成为分布式处理的事实标准,通过WebService和RPC等方式,打通平台间的通信。如此一来,Hadoop不需要与真实数据做交互,它要处理的,仅仅是软件平台传给它的抽象数据类型。 这样,Hadoop就可只关心算法逻辑,大大减轻传输数据量。而平台也能充分利用分布式系统轻松实现并行化。

       2. 与SPSS和EXCEL等成熟商业统计系统的交互

       论统计功能,我们无法与这些成熟平台相提并论,但系统可以方便的生成供这些工具使用的脚本和业务逻辑,减轻分析负担。

     

 

     该平台的主要技术特征有:

    1. 集成了从数据采集/存储,分析(聚类,分类,语义推断等) ,可视化和其他服务。

    2.  组件式结构,良好的扩展性,所有的功能和模块以插件接入系统。通用算法可对所有实现一定接口的数据实现。

    3.  前端使用.NET开发,后端使用

    4. 目前支持对新闻,微博,科研项目/专利/论文和知识网络分析。

    5. 后台可采用hadoop云计算平台加速计算,并通过跨平台交互技术实现访问。

  下图是该软件的结构:

image

       本平台基于作者开发的XFrmWork框架之上,XFrmWork提供了多数底层服务,具体介绍请看这里。

  下面,我们将会介绍其中的一些技术和实现结果,与大家分享。本节主要介绍软件的一些功能。

二. 软件特性介绍

1. 数据系统

(1)数据”组件“概念

         为保证良好的扩展性以支持当前和未来的需求,数据类型被抽象成众多接口。例如”文章“类型可实现分词处理,便需要实现ISegWordable接口,若要实现位置检索,也需实现相应的接口。算法在处理数据时,处理的是接口而非实体。

       例如, 科研项目数据类型实现了关系计算,分词和位置检索接口.

  1. [XFrmWork("科研项目", "IComputeable", "科研项目数据", "")]public partial class ProjectInfo : IRelationComputeable, ISegWordable, IGeoPositionSearchable

        不同数据类型的静态特征,如表格样式,绘图形状等特点,都通过静态方法呈现。系统通过反射静态方法获得。

        所有的数据类型都实现了IComputable接口,从而满足基本的检索,存储服务。

        通过以上技术,使得软件/算法彻底与数据类型无关,它们在编程时面对的都是接口。    分词算法不需要考虑是哪种算法类型。界面显示不考虑数据类型的同时,又能获得个性化的视觉效果。

(2)数据存取

        系统的数据访问层通过Entity Framework实现,可方便的兼容SQL Server ,MYSQL等主流数据库,并提供高效的存取修改机制。

        同样,软件可读取XML/Text,通过序列化或者特定的编码方法读取外部的数据文件。

        所有的数据在送入算法模块前,都被抽象为数据容器集合,供算法调用:

image

(3)爬虫和API调用器

        除了常规的数据导入,平台还集成了爬虫和API调用功能。

        目前已经开发了知网数据爬虫,新闻数据爬虫等。API方面,可方便的调用微博等主流SNS网站的用户数据:

 image

     这些数据都可以存入数据库,或者作为算法数据源传给算法模块。

  2. 算法系统

( 1)不同功能的算法模块

       算法模块通过插件形式接入系统,这些算法包括基本的分词、数据统计等,也包括可视化类别如地图,布点等,或者针对特定数据类型如微博的关系分析等。

image

    如上图,您可以将这些算法方便的拖动到执行列表中。

image

   在配置菜单中,可以选择算法要处理的数据源,同时可设置算法对应的参数。

(2)算法自动组装

    为了在模块级别上更好的支持代码重用,系统采用了算法组装技术。  我们可考虑类似LabView的G语言,不同的算法模块具有特定的输入和输出,符合匹配的输出可作为某一模块输入端的数据信息。例如,分词模块需作为很多算法的“预处理”模块,因此实现了ISegWordMethod接口,同时可以向外提供对应的分词数据。

    如下图:

image

     以上,计算方法A,B作为计算方法C的输入,当A,B计算完成后,会自动将结果传给C,C继续计算。若希望了解更详细的细节,可参考我的博文:实现自组装的插件技术。

(3) 算法服务:多线程并行和进度指示等

    系统充分考虑了实际开发的方便性,在底层为算法提供了调试输出工具,进度指示工具和后台线程。算法编写者可不考虑多线程/并行,这些都由平台在底层自行完成。

   3.可视化系统

     数据挖掘的重要特性,就是将隐含于海量数据中的关系和知识展示出来,展示的技巧和效果,最终直接影响到用户的接受度和信息有效性,因此我们在可视化上做了大量的工作。

     所有的参数都可以图形化配置,采用简单的拖拽方式进行操作。结果以列表,柱状图,曲线,地图地标和网络视图表示。同时可提供针对特定数据的可视化显示实现。

(1)数据列表

      类似DataGrid, 通过订制特别的ListView,可呈现列表数据,同时用户可对这些数据进行筛选,排序等操作。

数据库-18万条新闻数据

(2)可视化画布

    该画布可作为显示数据间关系网络的利器。

   image

其他的可视化介绍将会在相关文章中进一步介绍,此处从略。

 

  三. 总结

         本文介绍了数据挖掘平台的主要软件特性,后期将会进一步介绍数据挖掘的一些经验,以及对应的结果。欢迎讨论!

转载于:https://www.cnblogs.com/buptzym/archive/2012/11/15/2771027.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux—程序包安装与管理

1、软件包是对于一种软件所进行打包的方式。在不同的操作系统中,软件包的类型有很大的区别。对于Linux系统中,软件包主要以两种形式出现:二进制包以及源代码包。二进制包:1)传统的red hat linux二进制包2)d…

strlen()函数 与 sizeof运算符

以下内容源于网络资源的学习与整理,如有侵权请告知删除。欢迎交流。 一、strlen()函数 函数模型 size_t strlen(const char *s); 函数作用 strlen()函数是C库函数,其功能是计算字符串长度。 即从代表该字符串的第一个地址开始遍历,直到遇到‘…

Master-Detail(主表明细),确认可以出货的SQL指令 -- Not Exists

这是我文章的备份,原文请看: http://www.dotblogs.com.tw/mis2000lab/archive/2011/08/18/master_detail_finish_and_shipping.aspx [补充]下集,第十四章。Master-Detail(主表明细),确认可以出货的SQL指令…

开发板——X210开发板的SD卡启动方式

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 前言与总结 这里说的SD卡启动方式,指的是uboot在SD卡中或者在inand里,且启动介质拨码开关选择SD卡启动方式(对于X210,是拨到远离电源键的一侧&#xf…

使用iBATIS3.0完成增删改查

为什么80%的码农都做不了架构师?>>> 使用iBATIS3.0完成增删改查 iBATIS3.0和以前的版本有一些改变,不过学过以前版本的再学习3.0应该不是太难,3.0要求JDK1.5支持,因为其中增加了注解和泛型,这些都是JDK1.5…

oracle-11g-R2监听文件配置

客户端连接oracle数据库时出现如下错误: Listener refused the connection with the following error: ORA-12514, TNS:listener does not currently know of service requested in connect descriptor 首先看看Oracle服务是否开启: 然后找到listener.or…

【C】strcpy()需谨慎使用;

大家都知道C中的strcpy()函数是用来复制字符串的库函数。先附上代码看看strcpy()函数的功能&#xff1a; 1 #include<stdio.h>2 #include<string.h>3 #define MAX 204 5 int main(void)6 {7 char a[MAX]"abc";8 char b[MAX]"abcdefghi"…

多重指针操作

之前对多重指针操作心存忐忑&#xff0c;不能很熟练使用&#xff0c;本质原因是不了解其实质&#xff0c;因此对其进行了学习。 一、简单的代码如下 #include <stdio.h> #include <stdlib.h> #include <string.h>void myArray(char ***p2, int num) {int i0;…

C++ 初始化与赋值

1、初始化与赋值的区别&#xff1a; 二者的区别不是看&#xff0c;是否有这个赋值操作符&#xff0c;而是看操作的时候&#xff0c;对象是否已经有值。 初始化&#xff1a;创建对象&#xff0c;并给它设置初始值。 赋值&#xff1a;对象已经有值&#xff0c;擦除对象的当前值&a…

如何找出MySQL数据库中的低效SQL语句

面对业务的迅猛发展&#xff0c;DBA的一项重要工作就是及时发现数据库中的低效SQL语句&#xff0c;有的可以立刻着手解决&#xff08;比如缺少合适的索引&#xff09;&#xff0c;有的需要尽快反馈给开发人员进行修改。 MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语…

搜集的一些有意思的牛人博客地址

我要去桂林-田春峰的IT网志 http://blog.donews.com/accesine/ SEO优化的内容 转载于:https://www.cnblogs.com/zhangweilong/archive/2012/11/19/2777719.html

memory拷贝与string拷贝的区别

1、memory拷贝&#xff0c;根据拷贝的字节个数&#xff0c;从src一个一个字节拷贝到dst&#xff0c;拷贝过程不管src的取值&#xff0c;也不管dst是否能容纳。2、因此&#xff0c;对于memory拷贝&#xff0c;src中NULL字符&#xff08;取值为0的字符&#xff09;后面的字符也能…

【转载】#323 - A Generic Class is a Template for a Class

A generic classs is a class that takes one or more type parameters, which it then uses in the definition of the class. It can be thought of as a template for a class. 1 public class ThingContainer<TParam> 2 { 3   private TParam theThing; 4 5   p…

黑马程序员--ADO.Net中的知识点和难点

------- Windows Phone 7手机开发、.Net培训、期待与您交流&#xff01; ------- 1、 ADO.Net基础 程序要和数据库交互要通过ADO.Net进行&#xff0c;通过ADO.Net就能在程序中执行SQL了。 直接在项目中内嵌mdf文件的方式使用SQLServer数据库&#xff08;基于服务的数据库&#…

leetcode——15.3Sum

#include<stdio.h> #include<stdlib.h>int** threeSum(int* nums, int numsSize, int* returnSize) {if (numsSize<3)return NULL;int comNum numsSize*(numsSize - 1)*(numsSize - 2) / 6;int** ret (int**)malloc(sizeof(int*)*comNum);//先创建“用来存储一…

[New Portal]Windows Azure Virtual Machine (17) Virtual Machine成本分析

《Windows Azure Platform 系列文章目录》 在Windows Azure VM里&#xff0c;计费模式是和以下几个因素有关&#xff1a; 成本1: VM Type and VM Size 具体的计费模式请参考这里 http://www.windowsazure.com/en-us/pricing/details/virtual-machines/#service-windows 我们知道…

Servlet与JSP间的传值问题

Servlet与JSP 之间的传值有两种情况&#xff1a;JSP -> Servlet&#xff0c; Servlet -> JSP。通过对象 request和 session (不考虑 application)完成传值。一、JSP -> servletJSP页面有3种方法向 servlet传值&#xff1a; form表单、URL<!-- JSP page --> ...…

java 访问修饰符

java 访问修饰符 类、方法、成员变量和局部变量的可用修饰符 修饰符 类 成员访求 构造方法 成员变量 局部变量 abstract&#xff08;抽象的&#xff09; √ √ &#xff0d; &#xff0d; &#xff0d; static &#xff08;静态的&#xff09; &#xff0d; √ …

嵌入式Linux系统的构成和启动总结

以下内容源于网络资源的整理&#xff0c;如有侵权请告知删除。 一、嵌入式Linux系统典型结构 Flash划分成以下4个区&#xff1a; &#xff08;1&#xff09;Bootloader区。存放的是Bootloader&#xff0c;它负责嵌入式系统最初的硬件初始化、驱动和内核加载。 &#xff08;2&…

防止arp***方法

防止arp***&#xff1a;Win7下搞定ip与mac地址绑定对于玩系统的老手都知道&#xff0c;防止arp***实际上不需要这个防火墙那个防火墙&#xff0c;一句命令将ip与mac地址绑定即可。例如&#xff1a;arp -s 192.168.1.1 00-19-e0-c0-6f-0a不过这句话在Windows7显得这么无助&#…