《数据挖掘》数据挖掘分类算法综述专业:计算机科学与技术专业学号:S*************指导教师:***时间:2011年08月21日数据挖掘分类算法综述数据挖掘出现于20世纪80年代后期,是数据库研究中最有应用价值的新领域之一。
它最早是以从数据中发现知识(KDD,Knowledge Discovery in Database)研究起步,所谓的数据挖掘(Data Mining,简称为DM),就从大量的、不完全的、有噪声的、模糊的、随机的、实际应用的数据中提取隐含在其中的、人们不知道的但又有用的信息和知识的过程。
分类是一种重要的数据挖掘技术。
分类的目的是根据数据集的特点构造一个分类函数或分类模型(也常常称作分类器)。
该模型能把未知类别的样本映射到给定类别中的一种技术。
1. 分类的基本步骤数据分类过程主要包含两个步骤:第一步,建立一个描述已知数据集类别或概念的模型。
如图1所示,该模型是通过对数据库中各数据行内容的分析而获得的。
每一数据行都可认为是属于一个确定的数据类别,其类别值是由一个属性描述(被称为类别属性)。
分类学习方法所使用的数据集称为训练样本集合,因此分类学习又可以称为有指导学习(learning by example)。
它是在已知训练样本类别情况下,通过学习建立相应模型,而无指导学习则是在训练样本的类别与类别个数均未知的情况下进行的。
通常分类学习所获得的模型可以表示为分类规则形式、决策树形式或数学公式形式。
例如,给定一个顾客信用信息数据库,通过学习所获得的分类规则可用于识别顾客是否是具有良好的信用等级或一般的信用等级。
分类规则也可用于对今后未知所属类别的数据进行识别判断,同时也可以帮助用户更好的了解数据库中的内容。
图1 数据分类过程中的学习建模第二步,利用所获得的模型进行分类操作。
首先对模型分类准确率进行估计,例如使用保持(holdout)方法。
如果一个学习所获模型的准确率经测试被认为是可以接受的,那么就可以使用这一模型对未来数据行或对象(其类别未知)进行分类。
例如,在图2中利用学习获得的分类规则(模型)。
对已知测试数据进行模型准确率的评估,以及对未知类别的新数据进行分类预测。
图2 数据分类过程中的分类测试分类的具体规则可描述如下:给定一组训练数据的集合T(Training set),由一条条的数据库记录(Record)组成的,T 的每一条记录包含若干条属性(Attribute)组成一个特征向量,用矢量),...,,(21n x x x X =表示,其中)1(n i x i ≤≤对应各非类别属性,可以有不同的值域,当一属性的值域为连续域时,该属性为连续属性(Numerical Attribute),否则为离散属性(Discrete Attribute),用c 表示类别属性),...,,(21k c c c c =,即数据集有k 个不同的类别,那么,T 就隐含了一个从矢量X 到类别属性的映射函数c X f H →)(:。
分类的目的就是分析输入数据,通过在训练集中的数据表现出来的特性,为每一个类找到一种准确的描述或者模型,采用该种方法(模型)将隐含函数表示出来。
构造分类模型的过程一般分为训练和测试两个阶段,在构造模型之前,要求将数据集随机地分为训练数据集和测试数据集。
在训练阶段,使用训练数据集通过分析有属性描述的数据库元组来构造模型。
在测试阶段,使用测试数据集,来评估模型的分类准确率,如果认为模型的准确率可以接受,就可以用该模型对其它数据元组进分类,一般来说,测试阶段的代价远远低于训练阶段。
2. 分类数据的预处理为了提高分类的准确性、有效性和可伸缩性,在进行分类之前通常要对数据进行预处理,包括以下几方面:(1)数据清理大多数数据预处理是数据清理的一种形式,其目的是消除或减少数据噪声和处理缺失数据的信息。
噪声代表属性值中的随机错误。
在所有大的数据集中噪声以各种形式和排列方式出现,对噪声数据通常关心的问题如下:① 发现重复记录。
② 查找错误的属性值。
在分类数据中寻找错误是大型数据集所面临的一个问题。
一些数据挖掘工具提供了频率值或分类属性的预测能力值的汇总,可以认为预测能力值接近于0的属性值可能是错误的。
③数据平滑。
数据平滑是一个数据清理和数据转换的过程。
一些数据平滑技术努力减少数值属性值的维数。
一些分类器,如神经网络,有在分类过程中用函数完成数据平滑的功能。
当数据平滑在分类过程中完成时,则称为是内部数据平滑。
外部数据平滑是在分类以前进行的,舍入和计算平均值是两种简单的外部数据平滑技术。
当我们想使用不支持数值数据的分类器,并想保留数值属性值的原始信息时,用平均值平滑就很合适。
在这种情况下,所有的数值属性值被相应的中值所替代。
在处理缺失数据时,因为在训练阶段和分类过程本身,缺失数据值会导致一些问题,训练数据中的缺失值会产生不准确的结果,所以必须进行处理。
分类方法必须能够处理一个要被分类的元组中的缺失数据,有许多种处理缺失数据的方法。
①忽略缺失数据。
一些数据挖掘算法,包括神经网络和贝叶斯分类器采用了这种方法。
②丢弃含有缺失值的记录。
当记录只有一小部分缺失数据并且我们可以确定缺失值表示信息丢失时,应用这种方法非常合适。
③对于实值数据,用中值代替缺失值。
在大多数情况下这是处理数值属性的一种理想的方法。
④对缺失数据给定一个假设的值,这可能需要使用某种方法预测这个值是什么。
⑤用其它相似样本中的属性值代替某个样本缺失的属性值。
(2)相关性分析由于数据集中的许多属性可能与分类任务不相关,若包含这些属性将减慢和可能误导学习过程。
相关性分析的目的就是删除这些不相关或冗余的属性。
(3)数据变换数据可以概化到较高层概念。
比如,连续值属性“收入”的数值可以概化为离散值:低、中、高。
此外数据也可以规范化,规范化将给定属性的值按比例缩放落入较小的区间,比如[0,1]等。
3. 分类算法数据挖掘有多种经典分类算法,这些算法基于不同的分类思想,例如基于距离的KNN算法、基于归纳的决策树算法、基于统计的贝叶斯算法等等,本文主要介绍以下几种经典分类算法。
3.1 决策树分类在求解分类问题的方法中决策树学习是应用最广的归纳推理算法之一。
它是一种逼近离散函数值的方法,分类精度高,操作简单,并且对嗓声数据有很好的健壮性,因而成为实用的并且比较流行的数据挖掘算法。
它的最大优点是,在学习过程中不需要使用者了解很多背景知识,只要训练样本集能够用“属性值”的方式表达出来就能使用决策树学习算法分类。
决策树是最为经典的决策树学习系统,它采用自顶向下不回溯策略,能保证找到一个简单的树。
(1)基本思想决策树方法是挖掘分类规则的有效方法,通常包括两个部分:①树的生成开始时所有的数据都在根节点,然后根据设定的标准选择测试属性,用不同的测试属性递归进行数据分割。
②树的修剪就是除去一些可能是噪音或异常的数据。
基于信息熵的ID3 算法、C4. 5 算法都能有效地生成决策树,建决策树的关键在于建立分支时对记录字段不同取值的选择。
选择不同的字段值使划分出来的记录子集不同,影响决策树生长的快慢及决策树的结构,从而可寻找到规则信息的优劣。
可见,决策树算法的技术难点就是选择一个好的分支取值。
利用好的取值产生分支可加快决策树的生长,更重要是产生好结构的决策树,并可得到较好的规则信息。
相反,若根据一个差的取值产生分支,不但减慢决策树的生长速度,而且使产生的决策树分支过细、结构差,从而难以发现有用的规则信息。
随着训练样本集中样本个数的不断增多(即样本集规模不断扩大),训练样本集在主存中换进换出就耗费了大量的时间,严重影响了算法效率。
因此使算法能有效处理大规模的训练样本集已成为决策树算法研究的一个重要问题,也是目前国内对决策树算法研究的热点。
(2)实现过程输入:训练数据samples,由离散值属性表示;候选属性的集合attribute_list。
输出:一棵决策树。
①创建结点N ;//根结点②IF samples 都在同一个类C THEN返回N作为叶结点,以类C标记;③IF attribute_list为空THEN返回N作为叶结点,标记为samples中最普通的类;④选择attribute_list中具有最高信息增益的属性test_attribute;⑤标记结点N为test_attribute;//选取具有最高信息增益的属性作为根结点⑥FOR each test_attribute中的已知值a i由结点N长出一个条件为test_attribute=a i分支;⑦设s i是samples 中test_attribute =a i的样本的集合;//一个划分⑧IF s i为空THEN 加上一个树叶,标记为samples中最普通的类;⑨ELSE 加上一个由Generate_decision_tree(s i,attribute_list-test_attribute)返回的结点;3.2 基于距离的分类(1)算法思想基于距离的分类算法的思路比较简单直观。
假定数据库中的每个元组为数值向量,每个类用一个典型数值向量来表示,则能通过分配每个元组到它最相似的类来实现分类。
给定一个数据库D={t1,t2,…,t n}和一组类C={C1,…,C m}。
假定每个元组包括一些数值型的属性值:t i={t i1,t i2,…,t ik},每个类也包含数值性属性值:C j={C j1,C j2,…,C jk},则分类问题是要分配每个t i到满足如下条件的类C j:sim(t i,C j)>=sim(t i,C l) , C l∈C,C l≠C j,(2-1)其中,sim(t i,C j)表示相似性。
在实际的计算中,往往用距离来表征,距离越近,相似性越大,距离越大,相似性越小。
为了计算相似性,需要首先得到表示每个类的向量。
计算方法有多种,例如代表每个类的向量可以通过计算每个类的中心来表示。
另外,在模式识别中,一个预先定义的图像用于代表每个类,分类就是把待分类的样例与预先定义的图象进行比较。
(2)实现过程输入:每个类的中心C1,…,C m;待分类的元组t。
输出:输出类别c。
①dist=∞;//距离初始化②FOR i:=1 to m DO③IF dis(c i,t)<dist THEN BEGIN④c← i;⑤dist←dist(c i,t);⑥END.3.3 规则归纳规则归纳是采用规则的形式来建立分类器,规则,是指通过学习数据,归纳总结出的该领域数据所遵守的规律。
和其余分类方法相比,分类器采用规则形式表达具有易理解性。
通常,采用规则表示的分类器构造方法有很多种,可以采用规则归纳技术直接生成规则,也可以利用决策树方法先生成决策树,然后把决策树转换为规则,还可以使用粗糙集方法或者遗传算法中的分类器技术生成规则等。