2.1.2 数据挖掘的目的
数据挖掘并不专用于某些特定领域,它需要使用各种技术寻找可能隐藏在数据中的知识。一般情况下,应用数据挖掘技术是为了实现以下三种目的:
(1)发现知识:知识发现的目标是从数据库存储的数据中发现隐藏的关系、模式和关联。例如,在商业应用中数据挖掘可用于发现分割、分类、关联、喜好四种知识。发现分割知识可以将客户记录分组,策划为客户度身定做的推销活动。发现分类知识可以将输入的数据分配到预定义的类别中,发现和理解趋势以及对文本文档进行分类等。发现关联知识可以帮助我们发现交叉销售的机会。发现大部分客户的喜好知识,也可以投其所好,促进商品的销售。
(2)使数据可视化:分析人员需要搞清楚数据库中存储的大量信息的含义。在做任何分析之前,需要先将待处理的数据人性化,并寻找显示数据的好方法。
(3)纠正数据:在大型的数据库中,数据库的数据通常是不完整的,而且一般包含错误和自相矛盾的信息。数据挖掘需要以最稳定的方法识别和纠正这些问题。
2.2 聚类分析算法
人类认识世界的一种重要方法是将认识的对象按照类别进行划分。同一事物往往具有更多的近似特征,因此分门别类地对事物进行研究远比在一个混杂多变的集合中研究更清晰、细致。“人以群分,物以类聚”,聚类作为一种重要的分类工具,在今天基于海量数据的分析中起着很大的作用。随着相关研究的开展,聚类分析被纳入数据挖掘范围,并成为数据挖掘中的一项核心技术。
2.2.1 聚类分析的基本概念
所谓聚类(Clustering)就是将物理对象或抽象对象的集合分成由相似对多个类或簇[2]。由聚类生成的簇是一组数据对象的集合,簇必须同时满足以下两个条件:(1)每个簇至少包含一个数据对象;(2)每个数据对象必须属于且唯一的属一个簇。同一个簇中的数据对象尽可能相似,不同的簇中的数据对象尽可能相异。在许多应用中,可以将一簇中的数据对象作为一个整体来对待。
通过聚类使得同一组内的数据对象具有较高的相似度,而不同组中的数据对象相似度较低。其严格的数学定义如下:文献综述
假设集合U含有n个数据对象 ,每个数据对象 有m个属性,即数据对象可以表示为 。聚类就是将一个数据集合U按据数据对象之间的相似性划分成若干(比如说k)个聚类: ,并且满足下列条件:
a) (2.1)
b) (2.2)
c) (2.3)
聚类是按照一定的要求和规律对事物进行区分和分类的过程。在这一过程中没有任何关于分类的先验知识,也没有教师的指导,仅靠事物间的相似性作为类属划分的准则,因此属于无监督分类的范畴。
聚类分析(cluster Analysis)则是指用数学的方法研究和处理给定主要是从数据集中寻找数据间的相似性,并以此对数据进行分类[3]。使得不同类别中的数据尽可能相异,而同一类数据之间尽可能相似,从而发现数据其中隐含的、有用的信息。
2.2.2 聚类分析算法的分类
聚类分析算法总的来说可以分为以下几类:
a)基于划分的聚类算法
给定一个包含n个数据对象的数据集,一个划分方法构建数据的k个划分,每个划分表示一个类,并且k≤n。也就是说,它将数据划分为k个组,同时满足如下的要求:每个组至少包含一个对象;每个对象必须只属于一个组。给定要构建的划分的数目k,划分方法首先创建一个初始划分,然后采用一种迭代的重定位技术,尝试通过对象在划分间移动来改进划分。一个好的划分的一般准则是:在同一个类中的对象之间尽可能“接近"或相关,在不同类中的对象之间尽可能“远离”或不同。基于划分的聚类算法有K-means算法、K-medoids算法和CLARANS算法。