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…

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;…

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

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

根文件系统的简介

以下内容源于网络资源的整理&#xff0c;如有侵权请告知删除。 一、文件系统 文件系统是对一个存储设备上的数据进行组织的机制。这种机制有利于用户和操作系统的交互。 尽管内核是 Linux 的核心&#xff0c;但文件却是用户与操作系统交互所采用的主要工具。对Linux来说尤其如…

函数指针的使用

在学习群里看到的一个程序&#xff0c;基本说明了函数指针的用法。就摘录如下&#xff1a;

CreateThread和_beginthread的区别

1.程序&#xff1a;程序构成&#xff1a;(1)源代码(2)可执行的二进制代码程序是指令和数据的有序集合&#xff0c;其本身没有任何运行的含义&#xff0c;是一个静态的概念。由操作系统加载其可执行的二进制代码&#xff0c;分配相应的数据结构&#xff1a;进程控制块PCB(Proces…

冒泡排序 Bubble Sort

冒泡排序 冒泡排序的过程很简单&#xff0c;就是不断比较相邻两个元素的大小关系&#xff0c;若逆序则交换之&#xff0c;这样通过一轮的比较&#xff0c;关键字最大的记录就沉底了。 一般地说&#xff0c;第i趟冒泡排序是从第一个元素起到第n-i1个元素依次比较相邻两个记录的关…

从源码到可执行程序的步骤

以下内容源于朱有鹏《物联网大讲堂》课程的学习整理&#xff0c;以及网页http://mp.weixin.qq.com/s/_iVrUtA-jgE8XAR-vKYcww的学习整理。如有侵权&#xff0c;请告知删除。 一、总结 从源码到可执行程序的步骤&#xff1a;预编译、编译、汇编、链接。前三个宏观上为编译&…

win设置壁纸

默认壁纸图片位置&#xff1a; C:\Windows\Web\Wallpaper\Scenes 你可以自己建文件夹&#xff0c;放自己喜欢的桌面壁纸。 设置壁纸&#xff1a; 桌面右键 -> 个性化 然后点击 “桌面背景” -> 可以点击标题选择其下面的所有图片&#xff0c;也可以按 ctrl 选择你想要的…

物理机安装ESXI6.7提示No Network Adapters的解决方案

下载好ESXI6.7.iso镜像&#xff0c;写入U盘后&#xff0c;提示No Network Adapters&#xff0c;找不到网卡驱动。 解决办法&#xff1a;需要重新封装ESXI&#xff0c;将对应的网卡驱动嵌入进来。 1、先下载VMware-PowerCLI-6.5.0和ESXi-Customizer-PS&#xff1a; http://down.…

mysqlslap详解--MySQL自带的性能压力测试工具(转)

本文的参考博客地址为&#xff1a;https://blog.csdn.net/fuzhongfaya/article/details/80943991 和 https://www.cnblogs.com/davygeek/p/5253830.html 本文的目的一方面是自己整理&#xff0c;防止后续忘记&#xff0c;一方面是对参考博客的进行验证. 首先在这里介绍一下常用…

Android Gallery控件使用方法详解

我们今天给大家讲的就是Gallery控件&#xff0c;这个控件在android当中是非常重要的&#xff0c;我们今天就给大家介绍一下3D的Gallery控件是怎么样来实现的。下面我们就来直接看看代码吧。 1.扩展Gallery&#xff1a; public class GalleryFlow extends Gallery { private Cam…

javax.servlet.jsp.JspTagException:

2019独角兽企业重金招聘Python工程师标准>>> Illegal use of <when>-style tag without <choose> as its direct parent 这个错误一般是在jsp页面中非法使用<when>标签 该标签必须是<choose>标签的直接子标签 不能单独是<when>标签 …

c++远征之继承篇——继承的概念、继承时构造函数/析构函数的先后顺序

1、继承的概念 2、继承中&#xff0c;构造函数和析构函数的先后顺序

结对开发:电梯调度(2)

组员&#xff1a;赵天 李金吉 分工&#xff1a;赵天&#xff1a;概要设计与编码。 李金吉&#xff1a;详细设计与调试。 界面&#xff1a; 详细代码&#xff1a; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using Sys…