基于C4.5决策树算法的农安县农田管理区划分
2014-06-28李威,陈桂芬
李威,陈桂芬
摘要:针对吉林省长春市农安县2012年耕地地力调查数据,使用数据挖掘中的C4.5决策树算法(以下简称C4.5算法)对土壤中速效氮、速效磷和速效钾3种主要养分含量进行分析,并根据各养分间差异划分管理区。结果表明,使用C4.5算法对农安县924、1 840、2 756组土壤速效养分数据进行分析得到的模型精度分别为95.81%、95.59%、95.13%,对测试样本的分类精度分别为88.25%、90.50%、91.57%。使用C4.5算法对农安县进行管理区划分准确度高、效率高、易于推广,是一种指导农安县精细农业实施的有效管理区划分方法。
关键词:C4.5算法;农田管理区划分;变量施肥;农安县
中图分类号:TP399 文献标识码:A 文章编号:0439-8114(2014)07-1675-03
C4.5 Decision Tree Algorithm Based Division of Farmland Management Zone in
Nongan County
LI Wei,CHEN Gui-fen
(College of Information and Technology, Jilin Agricultural University, Changchun 130118, China)
Abstract: Based on the farmland survey data of Nong'an county in 2012, C4.5 decision tree algorithm was used to analyze three soil nutrients(nitrogen, phosphorus and potassium), and divide management zone according to the difference between the nutrients. Results showed that the accuracy of the model acquired by C4.5 decision tree algorithm was 95.81%, 95.59% and 95.13% for 924, 1 840, 2 756 soil nutrient data of Nongan county. The classification accuracy of test data was 88.25%, 90.50% and 91.57%, respectively. The management partition based on C4.5 algorithm was efficient, accurate and easy to popularized, which was an effective management partition method to guide variable fertilization in precision agriculture of Nongan county.
Key words: C4.5 decision tree algorithm; management zone division; variable rate fertilization; Nongan country
土地是人类赖以生存的物质基础,而耕地是土地的精华,耕地地力的高低直接影响作物的生长发育、产量和品质,肥沃的土地是确保农业可持续发展的重要物质基础。传统耕种中,人们通常把一定区域的土地划分为一块,使用整块地土壤养分的均值来代表整个农田土壤的养分状况,然后系统分析这些数据,按照单一的施肥量对整块土地进行均匀施肥,然而田间土壤、作物的特性都不是均一的,是随着时间、空间变化的,使用单一的肥量配置既达不到按需施肥的要求,又有可能造成资源的浪费和环境污染。于是,各地纷纷提出精细农业,根据田间变异来确定最合适的管理决策,目标是在降低消耗、保护环境的前提下,获得最佳的收成[1]。
随着科技的不断发展,数据挖掘技术被广泛地应用到农业中,有效提高了管理水平。决策树是数据挖掘中广泛使用的分类方法之一,已经在遥感影像信息提取、灾害天气预测、环境变量相关性研究等方面得到广泛应用,其适合用于描述数据和处理非线性数据,具有生成速度快、建立树形结构直观性强、易于分类等优点[2],目前典型的算法有ID3、C4.5、IBLE等方法。本研究根据农安县土壤属性的多样性和差异性,利用数据挖掘中C4.5算法,对研究区域数据的速效氮、速效磷和速效钾3种主要养分含量进行了管理区分区研究,并对试验结果进行分析比较,以期为农田管理区的划分提供参考[3]。
1 研究区概况
农安县隶属吉林省长春市,位于松辽平原腹地,东经124°31′—125°45′,北纬43°55′—44°55′。东临德惠市,南接省城长春市,西与公主岭市和长岭县为邻,北与松原市接壤。年均气温4.7 ℃,年无霜期145 d, 年降水量507.7 mm,年有效积温2 800 ℃。地势平坦,四季分明,属中温带大陆性气候。农安县土地总面积527 460 hm2,其中耕地321 220 hm2,占土地总面积的60.90%;图1为2012年测得的农安县耕地地力等级图。
2 C4.5算法
1986年Quinlan提出了最早的决策树算法ID3,ID3采用信息增益来选择测试属性,使用信息增益最大的属性划分训练样本。由于ID3算法存在只能处理离散型描述数据和分类结果偏向取值个数多属性的问题,1993年Quinlan提出了C4.5算法,C4.5算法以ID3算法为基础,使用信息增益率代替信息增益来选择分类属性,算法既支持离散属性又支持连续属性,与此同时还对决策树进行必要的减枝[4]。C4.5算法的核心思想是利用信息熵原理,选择信息增益率最大的属性作为分类属性,递归地构造决策树的分枝,完成决策树的构造。
假设D是一个包含了d个数据样本的集合,且其对应于k个不同的类ci(i=1...k),所有类别构成类别集合C,则信息熵定义为:
entropy(D)=-■p(cj)log2p(cj)(1)
其中p(cj)表示D中数据属于cj类的概率,公式(1)反映了数据集合D中类别的不确定程度,假设F是数据集D的一个属性,对于离散数据F可取v个不同的值,因此根据属性F可将集合D划分为v个不相交的子集 D1,D2,…,Dv。利用属性F划分当前数据集合后类别熵为:
entropy(D,F)=■■×entropy(D■) (2)
由公式(1)和公式(2)可知,利用属性F对当前分枝节点进行相应样本集合划分所获得的信息增益为:
gain(D,F)=entropy(D)-entropy(D,F) (3)
ID3算法使用公式(3)为每个属性计算信息增益,选择信息增益最大的属性作为决策树的下一个节点,因为信息增益偏向选择值较多的属性,在C4.5算法中使用信息增益率选择分类属性,信息增益率定义为:
gainRatio(D,F)=■ (4)
以上是C4.5算法对离散数据进行分类的原理[5,6],对于连续性数据,算法先将其转换为离散属性再进行处理,假设数据集合D中属性F的取值分别为F1,F2,…,Fd ,对于F每一个取值将小于等于其的样本分到左子树,大于其的样本分到右子树,计算当前分法的信息增益率,最后选择d-1种分法中最大的信息增益率作为属性F的信息增益率。
3 结果与分析
使用农安县2012年耕地地力调查所得数据作为试验数据,数据由吉林省土壤肥料工作站和农安县农业技术推广中心提供。2012年农安县耕地地力调查主要对土壤中速效氮、速效磷和速效钾3种养分进行统计,表1为统计结果中的部分数据,其中管理分区号为专家根据多年经验划分所得,农安县共划分为20个农田管理区。试验均在MATLAB 7.0环境下进行,运行计算机配置为:Core i3-2350M, 2.3 Hz CPU,4 G 内存。
3.1 模型精度
为规范后续试验,定义模型精度为决策树模型对其构建样本的分类精度。因为构建决策树的样本个数会影响决策树模型精度,故首先对不同样本个数下生成的决策树模型进行了精度测试。模型精度测试试验分别选择500、1 000、1 500、2 000个数据样本生成决策树,每组试验10次重复,每次均随机选择样本。图2为一次试验中生成的部分决策树模型,表2为4个样本数下所生成的决策树的模型精度,由表2可以看出C4.5算法分类模型稳定,划分精度不会因构建样本个数变化而产生较大差异,并且在不同构建样本个数下都能够维持较高的精度。
3.2 分类精度
决策树模型的建立最终要应用于农田管理区的划分,为测试所建决策树模型的分类精度,在此部分将试验数据分为训练集和测试集,每次试验使用训练集样本生成决策树,而后对测试集样本进行分类。试验分3组进行,共使用4 579组土壤养分数据,第一组试验从每个农田管理区中随机选取924个样本作为训练数据,剩余样本作为测试数据;第二组试验和第三组试验分别从每个农田管理区中随机选取1 840和2 756个样本作为训练数据,剩余样本作为测试数据,每组试验10次重复。另外,还将试验结果与另一种决策树算法ID3进行比较,结果见表3。由表3可以看出,对于农安县土壤养分数据,C4.5算法模型精度高,并且农田管理区划分准确(最低分类精度为88.25%),相比ID3算法C4.5算法具有明显的优势。
表4左侧为专家划分的第一农田管理区中的部分土壤养分数据,右侧为C4.5算法划分的第一农田管理区中部分土壤养分数据,比较分析可以得出,使用C4.5算法所划分的农田管理区内土壤养分与专家划分农田管理区内土壤养分相近,并且农田管理区内各土壤样本间养分差异较小。
4 小结与讨论
农田管理区划分是精准农业中重要的一部分,对于中国这样的农业大国,精准合理地划分农田管理区有着重要意义。在以往管理区划分中,多是由专家根据多年经验或参考农户施肥及产量进行划分,但专家人数有限,完全依靠专家划分推广精准农业不现实。使用C4.5算法通过分析土壤中速效N、速效P、速效K的含量对耕地进行了管理区划分,同一农田管理区内可使用相同或相似的施肥方案,现将该方法的优势与不足总结如下。
1)与传统农田管理区划分方法相比,使用C4.5算法进行农田管理区划分效率高,实用性强,易于推广,对精准农业实施具有促进作用。
2)与早期的决策树算法ID3算法相比,C4.5算法模型精度更高,分类更准确,能够为农安县农田管理区划分提供更精准的指导。
3)使用数据挖掘中的经典算法C4.5算法,在其决策节点生成过程中并未设置针对农田管理区划分这类问题的典型优化,在以后的工作中会尝试相关改进,期望获得更好的分类效果。
通过模型精度测试和分类精度测试两个试验证明了C4.5决策树算法是解决农安县农田管理区划分的一种有效方法,依据农安县土壤速效养分数据建立的C4.5决策树模型准确度高且模型稳定,可用于指导农安县精准农业实施。
参考文献:
[1] 任舟桥,刘耀林,焦利民.基于决策树的土地适宜性评价[J].资源调查与评价,2007(3):21-25.
[2] 王宏威.基于决策树的分类算法研究[J].软件导刊,2007(17):134-135.
[3] 曹冬梅.基于自动决策树的江宁区土地利用分类[EB/OL].Http://www.baidu.com/link?url=w3MdDsq4KOYZLH6wxiqlZ2v544Gnh
wSH8GZmm9pMSsFAK7oqCCR0A-L27DX4wta2,2013-08-19.
[4] DURKIN J,蔡竞峰,蔡自兴.决策树技术及其当前研究方向[J]. 控制工程,2005,12(1):15-18,21.
[5] 季桂树,陈沛玲,宋 航.决策树分类算法研究综述[J].科技广场,2007(1):9-12.
[6] 王 磊,郑任儿.决策树算法的比较研究[J].科技信息,2012(30):156-157.
假设D是一个包含了d个数据样本的集合,且其对应于k个不同的类ci(i=1...k),所有类别构成类别集合C,则信息熵定义为:
entropy(D)=-■p(cj)log2p(cj)(1)
其中p(cj)表示D中数据属于cj类的概率,公式(1)反映了数据集合D中类别的不确定程度,假设F是数据集D的一个属性,对于离散数据F可取v个不同的值,因此根据属性F可将集合D划分为v个不相交的子集 D1,D2,…,Dv。利用属性F划分当前数据集合后类别熵为:
entropy(D,F)=■■×entropy(D■) (2)
由公式(1)和公式(2)可知,利用属性F对当前分枝节点进行相应样本集合划分所获得的信息增益为:
gain(D,F)=entropy(D)-entropy(D,F) (3)
ID3算法使用公式(3)为每个属性计算信息增益,选择信息增益最大的属性作为决策树的下一个节点,因为信息增益偏向选择值较多的属性,在C4.5算法中使用信息增益率选择分类属性,信息增益率定义为:
gainRatio(D,F)=■ (4)
以上是C4.5算法对离散数据进行分类的原理[5,6],对于连续性数据,算法先将其转换为离散属性再进行处理,假设数据集合D中属性F的取值分别为F1,F2,…,Fd ,对于F每一个取值将小于等于其的样本分到左子树,大于其的样本分到右子树,计算当前分法的信息增益率,最后选择d-1种分法中最大的信息增益率作为属性F的信息增益率。
3 结果与分析
使用农安县2012年耕地地力调查所得数据作为试验数据,数据由吉林省土壤肥料工作站和农安县农业技术推广中心提供。2012年农安县耕地地力调查主要对土壤中速效氮、速效磷和速效钾3种养分进行统计,表1为统计结果中的部分数据,其中管理分区号为专家根据多年经验划分所得,农安县共划分为20个农田管理区。试验均在MATLAB 7.0环境下进行,运行计算机配置为:Core i3-2350M, 2.3 Hz CPU,4 G 内存。
3.1 模型精度
为规范后续试验,定义模型精度为决策树模型对其构建样本的分类精度。因为构建决策树的样本个数会影响决策树模型精度,故首先对不同样本个数下生成的决策树模型进行了精度测试。模型精度测试试验分别选择500、1 000、1 500、2 000个数据样本生成决策树,每组试验10次重复,每次均随机选择样本。图2为一次试验中生成的部分决策树模型,表2为4个样本数下所生成的决策树的模型精度,由表2可以看出C4.5算法分类模型稳定,划分精度不会因构建样本个数变化而产生较大差异,并且在不同构建样本个数下都能够维持较高的精度。
3.2 分类精度
决策树模型的建立最终要应用于农田管理区的划分,为测试所建决策树模型的分类精度,在此部分将试验数据分为训练集和测试集,每次试验使用训练集样本生成决策树,而后对测试集样本进行分类。试验分3组进行,共使用4 579组土壤养分数据,第一组试验从每个农田管理区中随机选取924个样本作为训练数据,剩余样本作为测试数据;第二组试验和第三组试验分别从每个农田管理区中随机选取1 840和2 756个样本作为训练数据,剩余样本作为测试数据,每组试验10次重复。另外,还将试验结果与另一种决策树算法ID3进行比较,结果见表3。由表3可以看出,对于农安县土壤养分数据,C4.5算法模型精度高,并且农田管理区划分准确(最低分类精度为88.25%),相比ID3算法C4.5算法具有明显的优势。
表4左侧为专家划分的第一农田管理区中的部分土壤养分数据,右侧为C4.5算法划分的第一农田管理区中部分土壤养分数据,比较分析可以得出,使用C4.5算法所划分的农田管理区内土壤养分与专家划分农田管理区内土壤养分相近,并且农田管理区内各土壤样本间养分差异较小。
4 小结与讨论
农田管理区划分是精准农业中重要的一部分,对于中国这样的农业大国,精准合理地划分农田管理区有着重要意义。在以往管理区划分中,多是由专家根据多年经验或参考农户施肥及产量进行划分,但专家人数有限,完全依靠专家划分推广精准农业不现实。使用C4.5算法通过分析土壤中速效N、速效P、速效K的含量对耕地进行了管理区划分,同一农田管理区内可使用相同或相似的施肥方案,现将该方法的优势与不足总结如下。
1)与传统农田管理区划分方法相比,使用C4.5算法进行农田管理区划分效率高,实用性强,易于推广,对精准农业实施具有促进作用。
2)与早期的决策树算法ID3算法相比,C4.5算法模型精度更高,分类更准确,能够为农安县农田管理区划分提供更精准的指导。
3)使用数据挖掘中的经典算法C4.5算法,在其决策节点生成过程中并未设置针对农田管理区划分这类问题的典型优化,在以后的工作中会尝试相关改进,期望获得更好的分类效果。
通过模型精度测试和分类精度测试两个试验证明了C4.5决策树算法是解决农安县农田管理区划分的一种有效方法,依据农安县土壤速效养分数据建立的C4.5决策树模型准确度高且模型稳定,可用于指导农安县精准农业实施。
参考文献:
[1] 任舟桥,刘耀林,焦利民.基于决策树的土地适宜性评价[J].资源调查与评价,2007(3):21-25.
[2] 王宏威.基于决策树的分类算法研究[J].软件导刊,2007(17):134-135.
[3] 曹冬梅.基于自动决策树的江宁区土地利用分类[EB/OL].Http://www.baidu.com/link?url=w3MdDsq4KOYZLH6wxiqlZ2v544Gnh
wSH8GZmm9pMSsFAK7oqCCR0A-L27DX4wta2,2013-08-19.
[4] DURKIN J,蔡竞峰,蔡自兴.决策树技术及其当前研究方向[J]. 控制工程,2005,12(1):15-18,21.
[5] 季桂树,陈沛玲,宋 航.决策树分类算法研究综述[J].科技广场,2007(1):9-12.
[6] 王 磊,郑任儿.决策树算法的比较研究[J].科技信息,2012(30):156-157.
假设D是一个包含了d个数据样本的集合,且其对应于k个不同的类ci(i=1...k),所有类别构成类别集合C,则信息熵定义为:
entropy(D)=-■p(cj)log2p(cj)(1)
其中p(cj)表示D中数据属于cj类的概率,公式(1)反映了数据集合D中类别的不确定程度,假设F是数据集D的一个属性,对于离散数据F可取v个不同的值,因此根据属性F可将集合D划分为v个不相交的子集 D1,D2,…,Dv。利用属性F划分当前数据集合后类别熵为:
entropy(D,F)=■■×entropy(D■) (2)
由公式(1)和公式(2)可知,利用属性F对当前分枝节点进行相应样本集合划分所获得的信息增益为:
gain(D,F)=entropy(D)-entropy(D,F) (3)
ID3算法使用公式(3)为每个属性计算信息增益,选择信息增益最大的属性作为决策树的下一个节点,因为信息增益偏向选择值较多的属性,在C4.5算法中使用信息增益率选择分类属性,信息增益率定义为:
gainRatio(D,F)=■ (4)
以上是C4.5算法对离散数据进行分类的原理[5,6],对于连续性数据,算法先将其转换为离散属性再进行处理,假设数据集合D中属性F的取值分别为F1,F2,…,Fd ,对于F每一个取值将小于等于其的样本分到左子树,大于其的样本分到右子树,计算当前分法的信息增益率,最后选择d-1种分法中最大的信息增益率作为属性F的信息增益率。
3 结果与分析
使用农安县2012年耕地地力调查所得数据作为试验数据,数据由吉林省土壤肥料工作站和农安县农业技术推广中心提供。2012年农安县耕地地力调查主要对土壤中速效氮、速效磷和速效钾3种养分进行统计,表1为统计结果中的部分数据,其中管理分区号为专家根据多年经验划分所得,农安县共划分为20个农田管理区。试验均在MATLAB 7.0环境下进行,运行计算机配置为:Core i3-2350M, 2.3 Hz CPU,4 G 内存。
3.1 模型精度
为规范后续试验,定义模型精度为决策树模型对其构建样本的分类精度。因为构建决策树的样本个数会影响决策树模型精度,故首先对不同样本个数下生成的决策树模型进行了精度测试。模型精度测试试验分别选择500、1 000、1 500、2 000个数据样本生成决策树,每组试验10次重复,每次均随机选择样本。图2为一次试验中生成的部分决策树模型,表2为4个样本数下所生成的决策树的模型精度,由表2可以看出C4.5算法分类模型稳定,划分精度不会因构建样本个数变化而产生较大差异,并且在不同构建样本个数下都能够维持较高的精度。
3.2 分类精度
决策树模型的建立最终要应用于农田管理区的划分,为测试所建决策树模型的分类精度,在此部分将试验数据分为训练集和测试集,每次试验使用训练集样本生成决策树,而后对测试集样本进行分类。试验分3组进行,共使用4 579组土壤养分数据,第一组试验从每个农田管理区中随机选取924个样本作为训练数据,剩余样本作为测试数据;第二组试验和第三组试验分别从每个农田管理区中随机选取1 840和2 756个样本作为训练数据,剩余样本作为测试数据,每组试验10次重复。另外,还将试验结果与另一种决策树算法ID3进行比较,结果见表3。由表3可以看出,对于农安县土壤养分数据,C4.5算法模型精度高,并且农田管理区划分准确(最低分类精度为88.25%),相比ID3算法C4.5算法具有明显的优势。
表4左侧为专家划分的第一农田管理区中的部分土壤养分数据,右侧为C4.5算法划分的第一农田管理区中部分土壤养分数据,比较分析可以得出,使用C4.5算法所划分的农田管理区内土壤养分与专家划分农田管理区内土壤养分相近,并且农田管理区内各土壤样本间养分差异较小。
4 小结与讨论
农田管理区划分是精准农业中重要的一部分,对于中国这样的农业大国,精准合理地划分农田管理区有着重要意义。在以往管理区划分中,多是由专家根据多年经验或参考农户施肥及产量进行划分,但专家人数有限,完全依靠专家划分推广精准农业不现实。使用C4.5算法通过分析土壤中速效N、速效P、速效K的含量对耕地进行了管理区划分,同一农田管理区内可使用相同或相似的施肥方案,现将该方法的优势与不足总结如下。
1)与传统农田管理区划分方法相比,使用C4.5算法进行农田管理区划分效率高,实用性强,易于推广,对精准农业实施具有促进作用。
2)与早期的决策树算法ID3算法相比,C4.5算法模型精度更高,分类更准确,能够为农安县农田管理区划分提供更精准的指导。
3)使用数据挖掘中的经典算法C4.5算法,在其决策节点生成过程中并未设置针对农田管理区划分这类问题的典型优化,在以后的工作中会尝试相关改进,期望获得更好的分类效果。
通过模型精度测试和分类精度测试两个试验证明了C4.5决策树算法是解决农安县农田管理区划分的一种有效方法,依据农安县土壤速效养分数据建立的C4.5决策树模型准确度高且模型稳定,可用于指导农安县精准农业实施。
参考文献:
[1] 任舟桥,刘耀林,焦利民.基于决策树的土地适宜性评价[J].资源调查与评价,2007(3):21-25.
[2] 王宏威.基于决策树的分类算法研究[J].软件导刊,2007(17):134-135.
[3] 曹冬梅.基于自动决策树的江宁区土地利用分类[EB/OL].Http://www.baidu.com/link?url=w3MdDsq4KOYZLH6wxiqlZ2v544Gnh
wSH8GZmm9pMSsFAK7oqCCR0A-L27DX4wta2,2013-08-19.
[4] DURKIN J,蔡竞峰,蔡自兴.决策树技术及其当前研究方向[J]. 控制工程,2005,12(1):15-18,21.
[5] 季桂树,陈沛玲,宋 航.决策树分类算法研究综述[J].科技广场,2007(1):9-12.
[6] 王 磊,郑任儿.决策树算法的比较研究[J].科技信息,2012(30):156-157.