《数据挖掘导论》研读(1)
认识数据挖掘
数据挖掘的定义
- 数据挖掘是利用一种或多种计算机学习技术,从数据中自动分析并提取信息的过程。
- 数据挖掘的目的是寻找和发现数据中潜在的有价值的信息、知识、规律、联系和模式。
机器学习
概念学习
- 传统角度:所有概念都有明确的定义
- 概率角度:对个别样本实例进行概括性描述,这些概括性说明构成了概率角度
- 样本角度:将某个概念中的典型实例组成一个集合,使用该集合描述概念定义
归纳学习
有指导的学习(监督学习)
这是一种基于概归纳的概念学习。模型的训练过程是从个体实例归纳出概念类,属于归纳学习,但利用分类模型对未知实例进行分类判断的过程则是演绎的过程。
常用方法和技术:
如决策树:一种简单的、易于解释和理解的概念结构,非叶子节点表示在一个属性上的分类检查,叶子节点表示决策判断的结果。决策树有很多算法,书中介绍了经典算法C4.5。
无指导的聚类
在学习训练之前,没有预先定义好的实例,数据实例按照某种相似性度量方法,计算实例之间的相似程度,将最为相似的实例聚类在簇(Cluster)中,在解释和理解每个簇的含义,从中发现聚类的意义,
常用算法和技术:K-means算法、凝聚聚类方法、概念分层Cobweb算法、EM算法等
数据查询
- 数据查询是通过数据查询语言找出所需要的数据或信息。
- 数据查询只能获得浅知识,要获得隐含知识需要数据挖掘。
专家系统
- 有一些情况下,数据查询和数据挖掘方法都不能有效地解决问题。
- 专家系统是一种具有“智能”的计算机软件系统,模拟某个领域的人类专家的决策过程,解决需要人类专家处理的复杂问题。
数据挖掘的过程
数据挖掘是KDD过程中的一个阶段,一次数据挖掘实验分为以下四个步骤:
- 准备数据,包括准备训练数据和检验数据;
- 选择一种数据挖掘技术或算法,将数据提交给数据挖掘软件;
- 解释和评估结果;
- 模型应用
准备数据来源途径:
- 传统数据库
- 数据仓库
- 平面文件
挖掘数据:
- 判断学习有无指导
- 数据集中进行分别选择前往数据挖掘工具,或作为训练数据,或作为检验数据
- 如何设置数据挖掘算法的参数
解释和评估数据
- 对数据挖掘的输出进行检查,评估是否达到目标,如果没有,就需要重新实验
模型应用
数据挖掘的作用
分类
- 分类是通过有指导的学习训练建立分类模型,使用模型对未知分类的实例进行分类,输出的是分类类型,
估计
- 估计模型用来确定一个未知的输出属性值,输出的是数值类型。
预测
- 确定未来的输出结果,可以是分类结果或者数值结果。
无指导聚类
- 在数据中发现概念形式的有价值的知识;
- 对有指导的学习模型的性能进行评估;
- 选择属性,确定有知道学习的最佳输入属性;
- 探测孤立点。
关联关系分析
- 发现事物之间关联关系的分析过程,典型应用就是购物篮分析。
数据挖掘技术
是对一组数据应用一种数据挖掘方法,一般由一个数据挖掘算法和一个相关的知识结构。。
神经网络
回归分析
关联分析
聚类技术
数据挖掘的应用
Weka数据挖掘软件
怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),它的源代码可通过http://www.cs.waikato.ac.nz/ml/weka得到。同时weka也是新西兰的一种鸟名,而WEKA的主要开发者来自新西兰。WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。
如果想自己实现数据挖掘算法的话,可以看一看weka的接口文档。在weka中集成自己的算法甚至借鉴它的方法自己实现可视化工具并不是件很困难的事情。2005年8月,在第11届ACM SIGKDD国际会议上,怀卡托大学的Weka小组荣获了数据挖掘和知识探索领域的最高服务奖,Weka系统得到了广泛的认可,被誉为数据挖掘和机器学习历史上的里程碑,是现今最完备的数据挖掘工具之一。
页面四个功能介绍:
- Explorer:数据挖掘用户最常用的界面。可以加载数据集,对数据进行预处理,选择各种数据挖掘算法和设置参数,执行数据挖掘,获得挖掘结果,并在整个过程进行可视化查看;
- Experimenter:可在此同时使用多个算法对一组数据进行分析,并对各种算法结果进行比较,选出最佳;也可将一项任务分割成多个子项,每个子项可在计算机上单独执行,以加快数据为挖掘进程;
- KnowledgeFlow:用户可以在此界面中,通过拖动工具条的部件将其放置在画布中,组合成一个数据流。在执行递增学习算法时,大型数据集就可以被分批读取和处理,从而解决了Explorer将数据集中数据全部加载到内存,对内存要求高的问题;
- Simple CLI:其他三个界面的所有功能据能够在该界面中通过输入文本命令的方式来运行。