首页 理论教育数据挖掘中常用的方法

数据挖掘中常用的方法

【摘要】:常用的数据挖掘方法有四大类,分别对应四个问题,这四个问题是数据挖掘的基础,分别是聚类挖掘、分类挖掘、关联模式挖掘和异常值检测。1)K最近邻分类算法K最近邻分类算法可以说是整个数据挖掘分类技术中最简单的方法。目前,数据挖掘领域有大量的聚类算法。

常用的数据挖掘方法有四大类,分别对应四个问题,这四个问题是数据挖掘的基础,分别是聚类挖掘、分类挖掘、关联模式挖掘和异常值检测。这四个问题很重要,因为它们涵盖了表示数据矩阵条目之间不同种类的正面、负面、监督或无监督关系的详尽情景。这些问题也以各种方式相互关联。

1.分类技术

从分类问题的提出至今,已经衍生出很多具体的分类技术,下面介绍数据挖掘中四种最常用的分类技术。本章节尽量用简单易理解的语言来表述这些技术,之后的章节中我们会再次给读者详细讲解各种算法和相关原理。

在学习这些算法之前必须清楚一点,分类算法不会百分百准确。每个算法在测试集上的运行都会有一个准确率的指标。使用不同的算法建模的分类器(Classifier),在不同的数据集上也会有不同的表现[7]

1)K最近邻分类算法

K最近邻(K-Nearest Neighbor,KNN)分类算法可以说是整个数据挖掘分类技术中最简单的方法。所谓K最近邻,就是K个最近的邻居,说的是每个样本都可以用它最接近的K个邻居来代表。

我们用一个简单的例子来说明KNN算法的概念。如果您住在一个市中心的住宅内,周围若干个小区的同类大小房子售价都在280万~300万元,那么我们可以把您的房子和它的近邻们归类到一起,估计售价在280万~300万元。同样,您的朋友住在郊区,他周围的同类房子售价都在110万~120万元,那么他的房子和近邻的同类房子归类之后,售价也在110万~120万元。

KNN算法的核心思想是如果一个样本在特征空间中K个最近邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分类样本所属的类别。KNN算法在类别决策时,只与极少量的相邻样本有关。由于KNN算法主要靠周围有限的邻近样本,而不是靠判别类域的方法来确定所属类别,因此对于类域的交叉或重叠较多的待分样本集来说,KNN算法比其他方法更为适合。

2)决策树

如果说KNN是最简单的算法,那决策树应该是最直观最容易理解的分类算法。最简单的决策树的形式是if-then(如果-就)决策方式的树形分叉。

决策树上的每个结点要么是一个新的决策结点,要么是一个代表分类的叶子,而每一个分支则代表一个测试的输出。决策结点上做的是对属性的判断,而所有的叶子结点属于一类。决策树要解决的问题就是用哪些属性充当这棵树的各个结点,其中最关键的是根结点,在它的上面没有其他结点,其他所有的结点都是它的后继结点。

大多数分类算法(如下面介绍的神经网络、支持向量机(SVM)等)都是一种类似于黑盒子式的输出结果,你无法搞清楚具体的分类方式,而决策树让人一目了然,十分方便。决策树按分裂准则的不同可分为基于信息论的方法和最小GINI指数方法。

3)神经网络

在KNN算法和决策树算法之后,下面介绍神经网络[8]。神经网络就像一个爱学习的孩子,你教他的知识他不会忘记,而且会学以致用。我们把学习集中的每个样本输入到神经网络中,并告诉神经网络输出应该是什么分类。在全部学习集都运行完成之后,神经网络就根据学习集构建好了神经网络模型,构建模型的过程可以看作一个黑盒。然后,我们就可以把测试集中的测试例子用神经网络来分别做测试,如果测试通过(如80%或90%的正确率),那么神经网络就构建成功了,就可以用这个神经网络来判断事物的类别。

神经网络是通过对人脑的基本单元——神经元的建模和连接,探索模拟人脑神经系统功能的模型,这种模型是一种具有学习、联想、记忆和模式识别等智能信息处理功能的人工系统。神经网络的一个重要特性是它能够从环境中学习,把学习的结果分别存储于网络的突触连接中。神经网络的学习是一个过程,在其所处环境的激励下,相继给网络输入一些样本模式,并按照一定的规则(学习算法)调整网络各层的权值矩阵,网络各层权值都收敛到一定值时学习过程结束。

4)支持向量机

与上面的三种算法相比,支持向量机算法可能会有一些抽象。因此,可以这样理解,尽量把样本中从更高的维度看起来在一起的样本分为一类。例如,在一维(直线)空间里的样本从二维平面上可以把它们分成不同类别,而在二维平面上分散的样本如果我们从三维(3D)空间上来看就可以对它们做分类[9]

支持向量机算法的目的是找到一个最优超平面,使分类间隔最大。最优超平面就是要求分类超平面不但能将两类样本正确分开,而且使分类间隔最大。在两类样本中离分类超平面最近且位于平行于最优超平面的超平面上的点就是支持向量,为找到最优超平面,只要找到所有的支持向量即可。对于非线性支持向量机,通常的做法是把线性不可分的数据转化成线性可分的数据,通过一个非线性映射将低维输入空间中的数据特征映射到高维线性特征空间中,在高维空间中求线性最优分类超平面。

由于支持向量机算法自问世以来就被认为是效果最好的分类算法,所以是我们在做数据挖掘应用时很看重的一个算法。

2.聚类技术

聚类技术是一种重要的人类行为,早在孩提时代,一个人就能不断改进意识中的聚类模式来学会如何区分猫、狗、动物植物。聚类技术在许多领域都得到了广泛的研究和成功的应用,如模式识别、数据分析、图像处理、市场研究、客户分割、Web文档分类等。

聚类就是按照某个特定标准(如距离准则)把一个数据集分割成不同的类或簇,使得同一个簇内数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能大。即聚类后同一类的数据尽可能聚集到一起,不同类的数据尽量分离。聚类技术正在蓬勃发展,对此有贡献的研究领域包括数据挖掘、统计学、机器学习、空间数据库技术、生物学以及市场营销等。各种聚类方法也被不断地提出和改进,而不同的方法适合于不同类型的数据,因此对各种聚类思想、聚类效果进行比较成为值得研究的课题。

目前,数据挖掘领域有大量的聚类算法。而对于在具体应用中,聚类算法的选择取决于数据的类型和聚类的目的。聚类分析是描述或探查数据的工具,可以对同样的数据尝试多种算法,以发现数据可能揭示的结果。

聚类算法主要可以划分为如下几类:划分方法、层次方法、基于密度的方法、基于网格的方法以及基于模型的方法。每一类聚类算法都被广泛地应用于数据挖掘中,例如,划分方法中的K-Means聚类算法、层次方法中的凝聚型层次聚类算法、基于模型方法中的神经网络聚类算法等。

目前,聚类问题的研究不仅仅局限于上述硬聚类,即每一个数据只能被归为一类,模糊聚类也是聚类分析中研究较为广泛的一个分支。模糊聚类通过隶属函数确定每个数据隶属于各个簇的程度,而不是将一个数据对象硬性地归类到某一簇中。目前,已有很多关于模糊聚类的算法被提出,如著名的FCM算法等。

3.异常值检测

异常值检测的目标是发现与大部分对象不同的对象。通常,异常对象被称作离群点。异常值检测也称偏差检测,异常对象的属性值往往明显偏离期望或常见的属性值,因为异常在某种意义上是例外的,所以异常值检测又被称为例外挖掘。

异常值检测问题可以被看作两个子问题:①在给定的数据集合中定义什么样的数据可以被认为是不一致的;②找到一个有效的方法来挖掘这样的异常点。现在比较成熟的异常点检测方法主要有以下几类:基于统计的方法、基于距离的方法、基于偏差的方法、基于密度的方法、高维数据的异常检测。

基于统计的异常检测方法对给定的数据集合假设了一个分布或概率模型(如一个正态分布),然后根据模型采用不一致检验确定异常点。基于统计的异常检测方法对于有一定分布规律的数据集合效果是明显的,但是大多数情况下,数据的分布都是未知的。基于距离的异常检测方法根据对象间的距离来探测不一致的对象。它根据在特定领域内某一对象所包含的相邻对象数目是否足够多来判断该对象是否异常。基于偏差的异常检测通过检查一组对象的主要特征来确定异常点,与其他对象有显著不同的对象被认为是异常点。常用的基于偏离的异常点检测技术有序列异常技术、OLAP数据立方体技术等。基于密度的方法通过计算数据集中数据点的局部异常因子来检测局部异常数据点。高维数据的异常检测通过把高维数据映射到低维子空间,根据子空间映射数据的稀疏程度来确定异常数据的存在。

4.关联规则挖掘

关联规则挖掘是数据挖掘中一个很重要的课题,顾名思义,它是从数据背后发现事物之间可能存在的关联。举个简单的例子,通过调查商场里顾客买的东西可以发现,30%的顾客会同时购买床单和枕套,而购买床单的人中有80%购买了枕套。这里面就隐藏了一条关联:床单——枕套,也就是说很大一部分顾客会同时购买床单和枕套,那么对于商场来说,可以把床单和枕套放在同一个购物区,那样就方便顾客进行购物了。

数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。关联可分为简单关联、时序关联和因果关联。关联分析的目的是找出数据库中隐藏的关联网。有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此关联分析生成的规则带有可信度。关联规则挖掘发现大量数据中项集之间有趣的关联,即可以根据一个数据项的出现推导出其他数据项的出现。阿格拉瓦尔等于1993年首先提出了挖掘顾客交易数据库中项集间的关联规则问题,在此之后很多的研究人员对关联规则的挖掘问题进行了大量的研究。他们的工作包括对原有的算法进行优化,如引入随机采样与并行的思想以提高算法挖掘规则的效率,对关联规则的应用进行推广。关联规则挖掘是数据挖掘中的一个重要课题,最近几年已被业界广泛研究。关联规则的挖掘过程主要包括两个阶段:第一阶段是从海量原始数据中找出所有的高频项目组;第二阶段是从这些高频项目组中产生关联规则。

关联规则挖掘在电商、零售、大气物理、生物医学等领域已经有广泛的应用。在金融行业中,关联规则挖掘技术已经被广泛应用于预测客户的需求,各银行在自己的ATM机上通过捆绑客户可能感兴趣的信息供用户了解,同时获取相应信息来改善自身的营销。