数据挖掘分类算法的学习总结( 二 )


4.2 分类过程
数据分类是一个两阶段过程,包括学习阶段和分类阶段,具体过程如图1所示 。首先我们需要了解两个基本概念:训练数据集和测试数据集,其中训练数据集由人工采集数据并对数据进行众包标注生成,测试数据集用来对从训练数据集上学习的分类模型进行验证,一般情况下,训练数据集的数据量远大于测试数据集,以此希望可以得到分类效果最好的分类模型 。
4.3 分类算法性能评估
值得我们注意的是,对于一个分类问题,精确率和召回率通常是相互制约的,即精确率高则一般召回率低,召回率高则一般精确率低 。除了以上基于分类准确率的评估指标外,我们还可以从以下性能指标进行评估分类算法[2,p.240]:
(1)速度:指生成和使用分类模型的计算成本;
(2)鲁棒性:指当测试数据受到噪声干扰或有缺省值时,分类模型可以做出正确预测的能力;
(3)可伸缩性:指对于给定的大量数据集,能否高效地进行分类模型的构建;
(4)可解释性:指使用的分类模型是否能够容易地被理解和使用 。

数据挖掘分类算法的学习总结

文章插图
五、数据挖掘常用分类算法
本小节是对目前数据挖掘中常用的分类算法基本思想的及其优缺点的简单介绍,注意数据挖掘中的分类算法及其改进算法非常多,由于笔者水平有限,仅对其中相对来说比较常用的分类算法进行说明,主要包括:决策树算法[3]、朴素贝叶斯算法[4]、神经网络算法、SVM算法[5]和KNN算法[6] 。
5.1 决策树算法
决策树算法是非常典型的数据挖掘分类算法,通过贪心方法,自顶向下不回溯递归构造的策略,将一个训练集分解成更小的子集,其最终可以形成一个直观的树结构,并将训练集的特点清晰地展现出来[7] 。决策树算法由一个树形结构表示,树中每个内部节点表示一个属性判断条件,每个叶节点表示一个类别 。对于测试数据集中一个待分类的样本数据,从树的根节点开始测试样本数据的属性,根据属性判断结果将样本数据分配到根节点的子节点上,不断重复判断和分配的过程,直到将样本分配到叶子节点上,即可得到样本数据的所述类别 。
其实,决策树算法的实现本质上一个递归过程,我们可以简单将决策树算法的过程分为以下三个步骤:
(1)从训练数据集中选择最重要最合适的属性作为决策树的根节点,然后根据根节点分割训练数据集,选择一个可以代表整个训练数据集的节点开始构造决策树 。
(2)若训练数据对象全部属于一个类别,则使用该类的类标号对节点进行定义,此时全为叶子节点;若训练数据对象不属于同一个类别,则需要根据某个策略比如信息熵来衡量属性,选择一个属性作为需要测试的属性,即为测试节点 。根据测试节点的不同特征,将训练数据集分成若干个子集,将刚才选择的属性从原始属性集删除 。
(3)重复以上步骤,直至生成一棵可以将训练数据集完好分类的决策树 。
决策树算法之所以在数据挖掘中被广泛应用,主要是因为其具有众多优点:第一,决策树算法逻辑清晰,树形结构的表示更加直观分明,其分类规则便于理解和使用;第二,决策树算法分类精度高,每个节点对应一个分类规则,可以准确将每个数据分类到叶节点;第三,决策树算法的计算成本低,时间开销小[8] 。但是,决策树算法也有一些缺陷,比如对于连续型的变量需要离散化处理,容易出现过拟合的现象 。
目前的决策树算法种类比较多,典型的决策树算法有ID3、C4.5、和SLIQ等等,本文不再一一说明 。