zoukankan      html  css  js  c++  java
  • 浅析十三种常用的数据挖掘的技术&五个免费开源的数据挖掘软件

    一、前 沿

       数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的但又是潜在有用的信息和知识的过程。数据挖掘的任务是从数据集中发现模式,可以发现的模式有很多种,按功能可以分为两大类:预测性(Predictive)模式和描述性(Descriptive)模式。在应用中往往根据模式的实际作用细分为以下几种:分类,估值,预测,相关性分析,序列,时间序列,描述和可视化等。

       数据挖掘涉及的学科领域和技术很多,有多种分类法。根据挖掘任务分,可分为分类或预测模型发现、数据总结、聚类、关联规则发现、序列模式发现、依赖关系或依赖模型发现、异常和趋势发现等等;根据挖掘对象分,有关系数据库、面向对象数据库、空间数据库、时态数据库、文本数据源、多媒体数据库、异质数据库、遗产数据库以及环球网Web;根据挖掘方法分,可粗分为:机器学习方法、统计方法、神经网络方法和数据库方法。机器学习中,可细分为:归纳学习方法(决策树、规则归纳等)、基于范例学习、遗传算法等。统计方法中,可细分为:回归分析(多元回归、自回归等)、判别分析(贝叶斯判别、费歇尔判别、非参数判别等)、聚类分析(系统聚类、动态聚类等)、探索性分析(主元分析法、相关分析法等)等。神经网络方法中,可细分为:前向神经网络(BP算法等)、自组织神经网络(自组织特征映射、竞争学习等)等。数据库方法主要是多维数据分析或OLAP方法,另外还有面向属性的归纳方法等等。

       二、数据挖掘技术简述

       数据挖掘的技术有很多种,按照不同的分类有不同的分类法。下面着重讨论一下数据挖掘中常用的一些技术:统计技术,关联规则,基于历史的分析,遗传算法,聚集检测,连接分析,决策树,神经网络,粗糙集,模糊集,回归分析,差别分析,概念描述等十三种常用的数据挖掘的技术。

           1、统计技术

       数据挖掘涉及的科学领域和技术很多,如统计技术。统计技术对数据集进行挖掘的主要思想是:统计的方法对给定的数据集合假设了一个分布或者概率模型(例如一个正态分布)然后根据模型采用相应的方法来进行挖掘。

           2、关联规则

       数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之I司存在某种规律性,就称为关联。关联可分为简单关联、时序关联、因果关联。关联分析的目的是找出数据库中隐藏的关联网。有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此关联分析生成的规则带有可信度。

           3、基于历史的MBR(Memory-based Reasoning)分析

       先根据经验知识寻找相似的情况,然后将这些情况的信息应用于当前的例子中。这个就是MBR(Memory Based Reasoning)的本质。MBR首先寻找和新记录相似的邻居,然后利用这些邻居对新数据进行分类和估值。使用MBR有三个主要问题,寻找确定的历史数据;决定表示历史数据的最有效的方法;决定距离函数、联合函数和邻居的数量。

           4、遗传算法GA(Genetic Algorithms)

       基于进化理论,并采用遗传结合、遗传变异、以及自然选择等设计方法的优化技术。主要思想是:根据适者生存的原则,形成由当前群体中最适合的规则组成新的群体,以及这些规则的后代。典型情况下,规则的适合度(Fitness)用它对训练样本集的分类准确率评估。

           5、聚集检测

       将物理或抽象对象的集合分组成为由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其它簇中的对象相异。相异度是根据描述对象的属眭值来计算的,距离是经常采用的度量方式。

           6、连接分析

       连接分析,Link analysis,它的基本理论是图论。图论的思想是寻找一个可以得出好结果但不是完美结果的算法,而不是去寻找完美的解的算法。连接分析就是运用了这样的思想:不完美的结果如果是可行的,那么这样的分析就是一个好的分析。利用连接分析,可以从一些用户的行为中分析出一些模式;同时将产生的概念应用于更广的用户群体中。

           7、决策树

       决策树提供了一种展示类似在什么条件下会得到什么值这类规则的方法。

           8、神经网络

       在结构上,可以把一个神经网络划分为输入层、输出层和隐含层。输入层的每个节点对应—个个的预测变量。输出层的节点对应目标变量,可有多个。在输入层和输出层之间是隐含层(对神经网络使用者来说不可见),隐含层的层数和每层节点的个数决定了神经网络的复杂度。

       除了输入层的节点,神经网络的每个节点都与很多它前面的节点(称为此节点的输入节点)连接在一起,每个连接对应一个权重Wxy,此节点的值就是通过它所有输入节点的值与对应连接权重乘积的和作为—个函数的输入而得到,我们把这个函数称为活动函数或挤压函数。

           9、粗糙集

       粗糙集理论基于给定训练数据内部的等价类的建立。形成等价类的所有数据样本是不加区分的,即对于描述数据的属性,这些样本是等价的。给定现实世界数据,通常有些类不能被可用的属性区分。粗糙集就是用来近似或粗略地定义这种类。

           10、模糊集

       模糊集理论将模糊逻辑引入数据挖掘分类系统,允许定义“模糊”域值或边界。模糊逻辑使用0.0和1.0之间的真值表示一个特定的值是一个给定成员的程度,而不是用类或集合的精确截断。模糊逻辑提供了在高抽象层处理的便利。

           11、回归分析

       回归分析分为线性回归、多元回归和非线性同归。在线性回归中,数据用直线建模,多元回归是线性回归的扩展,涉及多个预测变量。非线性回归是在基本线性模型上添加多项式项形成非线性同门模型。

           12、差别分析

       差别分析的目的是试图发现数据中的异常情况,如噪音数据,欺诈数据等异常数据,从而获得有用信息。

           13、概念描述

       概念描述就是对某类对象的内涵进行描述,并概括这类对象的有关特征。概念描述分为特征性描述和区别性描述,前者描述某类对象的共同特征,后者描述不同类对象之间的区别,生成一个类的特征性描述只涉及该类对象中所有对象的共性。

       三、结束语

       由于人们急切需要将存在于数据库和其他信息库中的数据转化为有用的知识,因而数据挖掘被认为是一门新兴的、非常重要的、具有广阔应用前景和富有挑战性的研究领域,并应起了众多学科(如数据库、人工智能、统计学、数据仓库、在线分析处理、专家系统、数据可视化、机器学习、信息检索、神经网络、模式识别、高性能计算机等)研究者的广泛注意。作为一门新兴的学科,数据挖掘是由上述学科相互交叉、相互融合而形成的。随着数据挖掘的进一步发展,它必然会带给用户更大的利益

    Orange

        Orange 是一个基于组件的数据挖掘和机器学习软件套装,它的功能即友好,又很强大,快速而又多功能的可视化编程前端,以便浏览数据分析和可视化,基绑定了Python以进行脚本开发。它包含了完整的一系列的组件以进行数据预处理,并提供了数据帐目,过渡,建模,模式评估和勘探的功能。其由C++ 和 Python开发,它的图形库是由跨平台的Qt框架开发。

    RapidMiner

        RapidMiner, 以前叫 YALE (Yet Another Learning Environment), 其是一个给机器学习和数据挖掘和分析的试验环境,同时用于研究了真实世界数据挖掘。它提供的实验由大量的算子组成,而这些算子由详细的XML 文件记录,并被RapidMiner图形化的用户接口表现出来。RapidMiner为主要的机器学习过程提供了超过500算子,并且,其结合了学习方案和Weka学习环境的属性评估器。它是一个独立的工具可以用来做数据分析,同样也是一个数据挖掘引擎可以用来集成到你的产品中。

    Weka

        由Java开发的 Weka (Waikato Environment for Knowledge Analysis) 是一个知名机器学机软件,其支持几种经典的数据挖掘任务,显著的数据预处理,集群,分类,回归,虚拟化,以及功能选择。其技术基于假设数据是以一种单个文件或关联的,在那里,每个数据点都被许多属性标注。 Weka 使用Java的数据库链接能力可以访问SQL数据库,并可以处理一个数据库的查询结果。它主要的用户接品是Explorer,也同样支持相同功能的命令行,或是一种基于组件的知识流接口。

    JHepWork

        为科学家,工程师和学生所设计的 jHepWork 是一个免费的开源数据分析框架,其主要是用开源库来创建 一个数据分析环境,并提供了丰富的用户接口,以此来和那些收费的的软件竞争。它主要是为了科学计算用的二维和三维的制图,并包含了用Java实现的数学科学库,随机数,和其它的数据挖掘算法。 jHepWork 是基于一个高级的编程语言 Jython,当然,Java代码同样可以用来调用 jHepWork 的数学和图形库。

    KNIME

        KNIME (Konstanz Information Miner) 是一个用户友好,智能的,并有丰演的开源的数据集成,数据处理,数据分析和数据勘探平台。它给了用户有能力以可视化的方式创建数据流或数据通道,可选择性地运行一些或全部的分析步骤,并以后面研究结果,模型 以及 可交互的视图。 KNIME 由Java写成,其基于 Eclipse 并通过插件的方式来提供更多的功能。通过以插件的文件,用户可以为文件,图片,和时间序列加入处理模块,并可以集成到其它各种各样的开源项目中,比如:R语言,Weka, Chemistry Development Kit, 和 LibSVM.

        源文:http://www.junauza.com/2010/11/free-data-mining-software.html(墙)

  • 相关阅读:
    狄利克雷卷积
    洛谷P2044 [NOI2012]随机数生成器
    Miller Rabin算法详解
    BZOJ3667: Rabin-Miller算法
    洛谷P3383 【模板】线性筛素数(Miller_Rabin)
    洛谷P3806 【模板】点分治1
    BZOJ1468: Tree
    Android Camera调用过程分析
    安卓开发37:自定义的HorizontalScrollView类,使其pageScroll的时候焦点不选中
    Android抖动动画
  • 原文地址:https://www.cnblogs.com/androllen/p/3216836.html
Copyright © 2011-2022 走看看