Extraction ofinteresting (non-trivial,implicit, previously unknown and potentially useful) patterns or knowledge fromhuge amount of data.数据挖掘就是从大量的数据中提取出有用的(非细微的、隐式的、有潜在价值的)模式或知识的过程。
2、数据挖掘的功能:
(1) 频繁模式(Frequent Patterns)
(2) 分类(Classification)
(3) 聚类(Cluster Analysis)
(4) 异常检测(Outlier Detection)
3、学习数据挖掘算法的组件化思想
数据挖掘的算法非常多,每年仍有大批新的算法产生。对数据挖掘初学者来说,要搞清这些算法之间的区别和联系,是非常困难,但又是必须的。运用组件化思想分析数据挖掘算法是非常有帮助的,许多著名的数据挖掘算法都是由五个“标准组件”构成的,即:模型或模式结构、数据挖掘任务、评分函数、搜索和优化方法和数据管理策略。
每一种组件都蕴含着一些非常通用的系统原理,例如,广泛使用的评分函数有:似然、误差平方和、准确率等。掌握了每一种组件的基本原理之后,再来理解由不同组件“装配”起来的算法就变得相对轻松一些。而且,不同算法之间的比较也变得更加容易,因为能从组件这个层面看出算法之间的异同。
3.1 模型或模式结构
通过数据挖掘过程所得到的知识通常被称为模型(model)或模式(pattern)。例如:线性回归模型、层次聚类模型、频繁序列模式等等。模型是对整个数据集的高层次、全局性的描述或总结。例如,模型可以将数据集中的每一个对象分配到某个聚类中。模型是对现实世界的抽象描述。例如,Y=aX+b就是一个简单的模型,其中X和Y是变量,a和c是模型的参数。模式是局部的,它仅对一小部分数据做出描述。例如,购买商品A和B的人也可能经常购买C,就是一个模式。模式有可能只支持几个对象或对象的几个属性。全局的模型和局部的模式是相互联系的,就好比一个硬币的两个面。例如,为了检测出数据集内的异常对象(局部模式),需要一种对数据集内正常对象的描述(全局模型)。
模型和模式都有参数与之相关,如模型 Y=aX+b的参数是a和b。模式“如果X>c,则Y>d的概率为p”的参数为c,d和p。通常把参数不确定的模型叫做模型的结构。把参数不确定的模式叫做模式的结构。一旦模型(模式)的参数被确定,便将这个特定的模型(模式)称为“已经拟合了的模型(模式)”,或者简称为模型(模式)。
3.2 数据挖掘任务
根据数据分析者的目标,可以将数据挖掘任务分为:模式挖掘、描述建模、预测建模。
(1)模式挖掘
模式挖掘致力于从数据中寻找模式,比如寻找频繁模式,异常点等。频繁模式指在某个数据集中频繁出现的模式,这些模式可以是一个项集、一个子序列或者一个子结构(子图)。例如,在交易数据集中,牛奶和面包经常在一起出现,称之为频繁的项集。又如,人们经常在购买了个人电脑之后,就会购买打印机,称之为频繁的子序列。在某些图、树或格结构中频繁出现的一些子图、子树或子格则被称为频繁的子结构。
(2)预测建模
预测建模是指根据现有数据先建立一个模型,然后应用这个模型来对未来的数据进行预测。当被预测的变量是范畴型(category)时,称之为分类;当被预测的变量是数量型(quantitative)时,称之为回归。分类模型有时也称作分类函数或分类器。分类的典型应用如,信用卡系统中的信用分级、市场调查、疗效诊断、寻找店址等。因为分类的过程中,用到了训练集,进行了学习,所以分类是一个有监督的学习过程。回归的典型应用如性能评测、概率估计等。
(3)描述建模
描述建模的目标是描述数据的全局特征。描述和预测的关键区别是:预测的目标是唯一的变量,如信用等级、疾病种类等,而描述并不以单一的变量为中心。描述建模的典型例子是聚类分析。
3.3 评分函数
有了模型(模式)的结构之后,接下来的任务就是要根据数据集为模型(模式)选择合适的参数值,即将结构拟合到数据。由于模型(模式)代表的是函数的一般形式,它的参数空间非常大,可选的参数值有很多。那么什么样的参数值比较好呢,需要一个评价指标,这个评价指标就是评分函数。评分函数用来对数据集与模型(模式)的拟合程度进行评估。如果没有评分函数,就无法说出一个特定的已拟合的模型是否比另一个要好。或者说,就没有办法为模型(模式)选择出一套好的参数值来。常用的评分函数有:似然(likelihood)函数、误差平方和、准确率等。在为模型(模式)选择一个评分函数时,既要能够很好地拟合现有数据,又要避免过度拟合(对极端值过于敏感),同时还要使拟合后的模型(模式)尽量简洁。不存在绝对“正确”的模型(模式),所有模型(模式)都是对现有数据的一种近似。从这个角度来讲,如果模型(模式)没有随着现有数据的变化而剧烈变化,这个模型(模式)就是能够接受的了。换句话说,对数据的微小变化不太敏感的模型(模式)才是一个好的模型(模式)。
3.4 搜索和优化方法
评分函数衡量了提出的模型(模式)与现有数据集的拟合程度。搜索和优化的目标是确定模型(模式)的结构及其参数值,以使评分函数达到最小值(或最大值),如平方差最小、准确率最高等。如果模型(模式)的结构已经确定,则搜索将在参数空间内进行,目的是针对这个固定的模型(模式)结构,优化评分函数;如果模型(模式)的结构还没有确定的话(例如,存在一族不同的模型(模式)结构),那么搜索既要针对结构空间又要针对和这些结构相联系的参数空间进行。针对特定的模型,发现其最佳参数值的过程通常被称为优化问题。而从潜在的模型(模式)族中发现最佳模型(模式)结构的过程通常被称为搜索问题。常用的优化方法有:爬山(Hill-Climing)、最陡峭下降(Steepest-Descend)、期望最大化(Expectation-Maximization, EM)等。常用的搜索方法有:贪婪搜索、分支界定、宽度(深度)优先遍历等。
3.5 数据管理策略
传统的统计和机器学习算法都假定数据是可以全部放入内存的,所以不太关心数据管理技术。但是,对于数据挖掘工作者来说,GB甚至TB数量级的数据是常见的。由于外存的访问速度要慢的多,直接将传统的内存算法应用于这些外存数据,性能将变得非常差。因此,针对海量数据,应该设计有效的数据组织和索引技术,或者通过采样、近似等手段,来减少数据的扫描次数,从而提高数据挖掘算法的效率。
3.6 组件化思想的应用
在实践中,数据挖掘算法的组件化思想是非常有用的。它通过将算法分解成一些核心组件而阐明了算法的实现机制。更重要的是,该观点强调了算法的本质,而不仅仅是算法的罗列。当面对一个新的应用时,数据挖掘人员应该从组件的角度,根据应用需求,考虑应该选取哪些组件,来组成一个新的算法,而不是考虑选取哪个现成的算法。
确定模型(模式)结构和评分函数的过程通常由人来完成,而优化评分函数的过程通常需要计算机辅助来实现。实践中,通常要根据前一次的计算结果来改进模型(模式)结构和评分函数,所以整个过程要重复很多次。
有趣的是,不同的研究团体将注意力放在不同的数据挖掘算法组件上。统计学家强调推理过程,关注模型(模式)、评分函数、参数估计等,很少突出计算效率问题;而从事数据挖掘的计算机科学家则更注重高效的空间搜索和数据管理,不太关心模型(模式)或评分函数是否合适。
实际上,一个数据挖掘算法的所有组件都是至关重要的。对于小的数据集,模型(模式)的解释和预测能力相对于计算效率来说可能要重要的多。但是,随着数据集的增大,计算效率将变得越来越重要。对于海量数据,必须在模型(模式)的完备性和计算效率之间进行平衡,以期对现有数据达到某种程度的拟合。
下图中给出了运用组件化的思想来分析几个数据挖掘经典算法的例子:
4、典型数据挖掘系统的结构图