叶 煜 李 敏 文 燕
(成都农业科技职业学院 信息技术分院,四川 成都611130)
我国是一个传统农业大国。农业生产、管理和经营产生了大量的农业数据。这些原始农业数据,需要经过分析、处理、提炼,才能转换为有意义的信息,成为有价值的知识。数据挖掘技术可以有效地从海量的农业数据中探索出各种因素之间的联系,从而发现其中隐藏的规律,它正是农业生产经营活动所需要的、能够引导农业高效生产的技术。通过数据挖掘技术获得的信息和知识可以应用于农业生产经营活动的各个领域从而实现这些信息和知识的价值。
分类是数据挖掘中的一项非常重要和关键的任务,利用分类技术能够从数据集中提取描述数据类的一个函数或模型——即分类器,从而把数据集中的每个对象归结到某个已知的对象类中。从机器学习的观点,分类技术是一种有监督的学习,通过在一组已知类别标号的样本中,训练某种分类器,从而具有能够预测某种未知数据类型的能力[1]。从这个意义上说,数据挖掘的目的就是根据样本数据形成的类知识,对源数据进行分类,从而也可以预测未知数据的类型。
分类过程是找到描述和区分数据类的函数或模型,也就是分类器,再利用分类器预测类标记未知的对象类。要构造分类器,需要输入一个数据集作为训练样本,训练样本数据集由一组数据库记录也即元组构成,每个记录是一个由相关字段(或属性)值和类别标记组成的特征向量,样本的形式可以表示为:(v1,v2,...,vn;c),其中的vi 表示字段值,c 表示类别。
数据挖掘的分类算法很多,本文仅描述常用的几个分类算法:决策树算法、贝叶斯分类算法、K 邻近算法、支持向量机算法、基于关联规则算法、人工神经网络算法等。数据分类的效果一般和数据的特点有关,有的数据噪声大,有的有空缺值,有的分布稀疏,有的字段或属性间相关性强,有的属性是离散的而有的是连续值或混合式的[2]。总的来说没有哪一种算法优于其他分类算法并能适合于各种特点的数据。
决策树是用于分类和预测的主要技术之一,决策树学习是以实例为基础的归纳学习算法,它采用从一组无次序、无规则的实例中推理出以决策树表示的分类规则[3]。构造决策树的目标是要找出属性与相应类别之间的关系,以便用它来预测未来未知数据的类别。它采用自顶向下的树状结构表现分类规则,内部结点描述属性,叶子结点代表结论,自上而下的一条路径代表一条分类规则。它具有结构简单直观、规则易于理解、有较高分类精度的特点。主要的决策树算法有ID3、C4.5、SLIQ 和SPRINT算法等。这些算法在选择测试属性时所使用的技术、生成的决策树结构、剪枝的时机和方法,以及处理大数据集的能力等多方面都各具特点。
ID3 算法的核心思想是首先计算决策树各个非叶子结点的每一个属性的信息增益,用最大信息增益的属性作为类别划分标准,因为信息增益越大,就越具有代表性、特异性,区分样本的类别能力就越强,选取信息增益最大的特征分裂出各个子结点,然后递归建立决策树的分支,当样本集中只有一种类别时结束,生成最终的决策树。这是一种自顶向下的贪心策略。
C4.5 算法通过采用信息增益率来选择特征,改善了ID3 算法属性偏向的缺点,是ID3 算法的改进。C4.5 算对变量特征进行递归选择,用最优特征分类数据集,至到数据集中所有子集归于同一个类为止。C4.5 算法分类规则易于理解、算法复杂度较低。
SLIQ 算法在C4.5 算法基础之上,对算法的实现方法进行了改进,在决策树构造过程中采用“预排序”和“广度优先策略”等技巧划分节点,减少读写磁盘次数从而提高算法效率。SLIQ 算法具有执行速度快、有较好的伸缩性和较高的数据分类精确度等优点。但由于需要将类别列表存放于内存,因此处理数据集的大小受内存容量限制。
SPRINT 算法进一步改进了数据结构,舍弃了SLIQ 算法需要驻留内存的类别列表,减少驻留内存的数据量,它将类别信息直接合并到每个属性列表中。在遍历每个属性列表寻找当前结点的最优划分标准时,不需要参照其他信息,对决策树结点的划分表现在对属性列表的分割,每个属性列表被分割成两个,分别保存属于各个结点的样本对应的信息。SPRINT 算法在寻找每个结点的最优划分标准更为简单,但在分割非分割属性的属性列表时很困难。
贝叶斯分类预测算法是基于概率统计知识进行分类的算法。贝叶斯算法采用Bayes 定理,假定特征条件相互独立,利用先验概率和条件概率计算未知类别样本属于某个类别的概率,以最大概率的类别作为该样本的最终类别,如朴素贝叶斯算法。此算法在数据集属性个数较多或者属性之间相关性较大时,分类效果不好。TAN 算法是降低独立性假设的改进算法,基于贝叶斯网络结构,通过增加属性对之间的相关性来实现。该方法包括:按降序排序每个属性对的互信息值,依次提取节点对,遵循不生成循环的原理,构造最大权重跨度树直到n-1 个边被选择;然后确定整个无向图的边的方向,选择任意一个属性节点作为根节点,根节点的向外方向是属性节点之间的方向;为每个属性节点添加一个父节点,父节点分类属性节点,这样完成了贝叶斯网络结构的构建。
K- 邻近算法是一种基于实例的分类方法。K- 邻近算法的具体工作原理是:它有一个样本数据集,并且在样本集中每个数据都有一个标签,即已知样本集中的每个数据与归属类别之间的对应关系。在没有标签的情况下输入新数据后,将新数据的每个特征与样本集中的数据对应的特征进行比较,然后提取样本中最相似的数据(最邻近)的分类标签。通常,只选择样本数据集中k 最相似的数据,即K 邻近,通常K 是大于20 的整数。最后,选择K 个最相似数据中出现次数最多的类别作为新数据的分类。K- 邻近方法是一种懒惰的学习方法,它存储样本直到需要分类为止。如果样本集是复杂的,它可能会导致较大的计算开销,所以很难应用于实时情况。
支持向量机是一种基于统计学习理论的学习方法。它是一个二元分类模型。其基本模型定义为特征空间中间隔最大的线性分类器。它的学习策略是最大化间距,并最终可以将其转化为凸二次规划问题的解。其最大的特点是通过最大化分类区间来构造学习机的泛化能力,根据结构风险最小化准则构造最优分类超平面,更好地解决非线性、高维和局部极小点的问题。对于分类问题,支持向量机算法从该区域的样本中计算出该区域的决策曲面,从而确定该区域中未知样本的类别。它具有较高的分类准确率和较好的适应能力。但处理大规模数据集时速度较慢。
关联算法是数据挖掘中的一类重要算法。其核心是基于两阶段频繁集思想的递归算法。关联规则在分类上分为一维、单层和布尔型关联规则。典型的算法是Apriori 算法。Apriori 算法将关联规则发现过程分为两步:第一步是迭代检索事务数据库中的所有频繁项集,即支持度不低于用户设置的阈值的项集;第二步利用频繁项集构造规则满足用户的最小信任度。其中,挖掘或识别所有频繁项集是算法的核心,占整个计算量的大部分。算法通过发现样本集中的关联规则来构造分类器,从而减少了对大样本量的依赖性。
人工神经网络是一门结合了众多学科内容的信息处理学科,它是一种应用类似生物神经网络结构进行信息处理的数学模型。在这个模型中,节点代替神经元,每个节点代表一个特定的功能,它们之间的互连构成一个巨大的网络系统、即“神经网络”,从而达到模拟生物大脑结构和功能来处理信息的目的。人工神经网络经历了从线性感知机到多层感知机的发展过程。神经网络通过网络学习,改变每个网络节点的连接权值,使其具有分类功能,经过训练的网络可用于目标识别。目前,已有多种不同的神经网络模型。常见的如BP 网络、径向基RBF 网络、Hopfield 网络、随机神经网络(Boltzmann 机)、竞争神经网络(Hamming 网络、自组织映射网络)等。然而,目前的神经网络仍然普遍存在着收敛速度慢、运算量大、训练时间长、无法解释等缺点。
数据分类预测算法是数据挖掘中的核心和基础技术之一。通过数据挖掘对农业数据进行有效的采集,进而进行深层次的分析,为用户提供分类预测和农业决策,科学有效地利用农业数据。本文对常见数据分类算法进行了综合阐述,各种算法有自己的优缺点,在数据挖掘实践中,用户要根据数据的不同特点选择合适的分类算法。准确度更高、执行速度更快、可伸缩性更强的算法还需要在今后的工作中进一步研究。