1、Computer Era No.11 20230 引言玉米是我国当前种植面积最大的粮食作物1。玉米病虫害的治理,传统方案分为人工筛选和机器决策。当病虫害的种类、数量或感染面积呈现不规则的区域性分布时,传统方法无法实现对病田网格的精细化管理,导致治理效果差、成本大幅提高2-3。运用基于深度学习的决策树算法,将病田细分为N*N块单元格,经过提取单元格内的玉米生长周期、病虫代数、玉米品种等特征后,进行训练,对病田感染情况做出分类,同时基于单元格细化方案,进一步精确匹配农药品种与农药喷洒量4-5。相比传统方法,可以显著降低治理成本、提高防治效果。针对传统C4.5算法在玉米病虫害治理方案选择中面临大容量
2、数据集时表现出精确度低、时效性差等问题6,本文基于C4.5算法提出一种改进的决策算法。该算法利用 K-means+算法对测试数据集进行离散化处理,在构建包含六种常见玉米病虫害数据集的过程中,生成二个以上的聚类中心来处理连续性数值,并以标签值出现的概率作为权重,生成测试集缺失值。目标函数值选用 F1-Score值和 AUC 值,从而对测试集和聚类中心数量进行优化迭代。最终采用投票方式选择最优解进行治理方案的决策。在不同容量的DOI:10.16644/33-1094/tp.2023.11.025基于改进的C4.5算法对玉米病虫害治理方案分类研究*左爽1,李文静1,陈鹏2,徐会杰1(1.河南科技大学
3、商学院,河南 洛阳 471000;2.河南科技大学信息工程学院)摘要:通过机器学习,采用特定的算法模型对农作物病虫害治理方案进行匹配,这是现代农业的发展方向之一。针对C4.5算法匹配方案时存在的精确度低、大容量数据集处理效率差等问题,提出一种改进的C4.5算法。改建的算法采用K-means+算法对数据进行离散化处理,根据特征标签值概率对测试集缺失值数据按权生成,并基于梯度优化训练集与聚类中心点。实验结果表明,改进的C4.5算法面对不同容量测试集,能够在保证效果良好的前提下,提高决策精度与治理效率。关键词:玉米;病虫害治理;方案决策;C4.5算法中图分类号:TP399文献标识码:A文章编号:10
4、06-8228(2023)11-120-04Research on classification of maize pests and diseases managementprograms based on improved C4.5 algorithmZuo Shuang1,Li Wenjing1,Chen Peng2,Xu Huijie1(1.College of business,Henan University of Science and Technology,Luoyang,Henan 471000,China;2.Information engineering college,
5、Henan University of Science and Technology)Abstract:Matching maize pest control programs with specific algorithmic models by machine learning is one of the developmentdirections of modern agriculture.Aiming at the problems of low accuracy and poor processing efficiency of large-capacity datasetswhen
6、 matching programs with C4.5 algorithm,an improved C4.5 algorithm is proposed.It uses the K-means+algorithm todiscretize the data,generates the missing value data of the test set by weight according to the probability of the feature labelvalue,and optimizes the training set and clustering center poi
7、nt based on the gradient.The experimental results show that theimproved C4.5 algorithm effectively improves the decision-making accuracy and management efficiency for different capacity testsets,while ensuring good performance.Key words:maize;pest control;program decision;C4.5 algorithm收稿日期:2023-07-
8、05作者简介:左爽(2002-),男,河南新郑人,学士,主要研究方向:信息管理与信息系统。120计算机时代 2023年 第11期数据集中,该算法保证了选择治理方案的精确度和高效性,特别是当测试集出现缺失值时,其表现优异。1 C4.5算法原理C4.5算法的核心原理是针对输入的样本信息,采用信息增益率(GainRatio)最高的特征与标签值作为子树节点,构建决策树,并将测试集样本与决策树进行匹配,返回最终解决方案。训练集样本出现缺失值时,会抽出缺失值样本进行信息增益率计算,在特征节点选取完成后,将含有缺失值的样本按特征概率分配权重,划分进子树中。设S为训练样本集,它包括n个类别的样本,样本特征的标
9、签值用 Ci表示,以下列出 C4.5算法的主要数学计算公式。以pi表示Ci的概率,计算信息熵E(S):E(S)=-i=0npilog2pi遍历特征标签 C 与样本 A1,设 C 数组下标为 y,A1数组下标为 x,将 A1x的缺失值替换为 Cy添加至S,并设置权重为Cyi以Si表示根据属性A划分的S的第i个子集,S和Si表示样本数目,计算样本熵EA(S):EA(S)=-j=1m|Sj|SE()Sj计算不同属性的信息增益Gain(S,A):Gain(S,A)=E(S)-EA(S)计算分离信息分离信息Split(S,A):Split(S,A)=-i=1c|Sislog2|Sj|S计算不同属性信息信
10、息增益Ration(S,A):Ration(S,A)=Gain(S,A)Split(S,A)选取Ration最大的特征作为子树节点,并选取特征标签值作为下一级子树节点。重复以上步骤,直到决策树构建完成。2 改进C4.5算法2.1 数据集制作数据集样本取自 2021年 7、8月采集于河南省洛阳市宜阳县李王屯村等地的玉米叶片数据,针对缺少的病虫害样本,采用中国农技推广信息服务平台发布的部分数据进行补充。最终数据集共包括多个玉米品种针对玉米蓟马、黏虫等病虫害的 6000 多条治理方案。数据集按照60%、20%、20%的比例分为初次训练集、迭代训练集、测试数据集三组,保存为csv文件。2.2 数据预处
11、理算法改进C4.5算法中传统的离散化处理方式是对属性值进行升序排序,挑选信息增益最大的点作为二分点,不仅包含大量耗时的对数运算,而且面对不同周期以及药物需求不同的病虫害时,无法满足对精确度的要求。在这里,本文保留缺失值并基于K-means+聚类算法对数据值进行离散化处理7。具体步骤为:步骤1 随机选取一个样本的标签值作为第一个聚类中心M0;步骤2 计算所有标签值与第一个聚类中心的距离,并取距离最大的标签值作为第二个聚类中心点M1;步骤3 计算所有标签值与距离最近的聚类中心的距离,并取距离最大的标签值作为下一个聚类中心点M2;步骤 4 重复步骤 3,直至所有初始中心点筛选完毕;步骤 5 用生成的
12、 K个聚类中心点替代 K-means算法随机生成的初始中心点。2.3 测试集缺失值处理改进在测试集具有缺失值时,C4.5算法采用当前特征出现频率最高的标签值对缺失值进行补充,会出现最终分类结果会趋向特定结果的问题。参考C4.5算法对于训练集缺失值的处理方式,本文采用标签出现的概率作为权重,将缺失值补充至训练集中,并采用投票方式选取最优解。其填补缺失值原理如下:/输入:测试训练集 test/输出:test12345678910def handle_miss(test,decision_tree);/定义函数:处理训练集缺失值/统计各标签出现概率并记录为map类型label_prob=get_pr
13、ob(test);for row in test;/遍历testfor i in row;/遍历行中的每个元素if rowi=None;/如果某个元素是缺失值for label in label_prob;if label.key in test.column(i);/遍历prob中属于test第i列元素test.add(rowi,label);/替换row第i个元素为label.key,设置权重为label.value并添加入testtest.delete(row);/删除rowreturn test;2.4 基于梯度的训练集优化由于初次训练集可能无法全面地反映整个数据集的特征和规律,导致训
14、练算法出现过拟合现象。为121Computer Era No.11 2023提高训练算法效果,本文将数据集分为初次训练集、迭代训练集、测试数据集三组,并每次从迭代数据集中抽选x条样本对初次训练集进行替换,如果AUC值更高则进行保存。在此基础上,算法不断调整聚类中心的数量,以提高算法的聚类效果。其部分实现伪代码如下:/输入:初次训练集train,迭代训练集iterative,测试训练集test/输出:最优决策树123456789101112131415function clustering(train,iterative,test):centers=2/初始化聚类中心数量为2centers=2/
15、初始化聚类中心数量为2while get_best:tree=build_tree(train,test)/构造决策树replace(train,iterative,x)/替换x条初次训练集current_AUC值=calculate_AUC值(tree,test,centers)/计算当前下的AUC值if current_AUC值best_AUC值:roolback;/如果当前AUC值低于最优AUC值,则回滚While get_best:tree=build_tree(train,test)current_AUC值=calculate_AUC值(tree,test,centers)if cu
16、rrent_AUC值best_AUC值:centers+=1/聚类中心数量加1return tree/返回最优决策树3 试验与结果分析3.1 评价指标本文通过F1-Score值、AUC值两个指标对算法进行综合评价,其中F1-Score值是精确率与召回率的调和平均数,AUC值是ROC(以FPR假阳率为X轴坐标,TPR真阳率为Y轴坐标)曲线下的面积。公式如下:Score=21Precision+1RecallTPR=TPTP+FNFPR=FPFP+TN其中,TP、TN为预测为正例、负例时,算法预测正确的数量,FP、FN为预测为正例、负例时,算法预测错误的数量。3.2 检测效果对比与分析本文选取 C
17、4.5算法、改进 C4.5算法、CART算法对1000条数据集进行检测,分别计算3种算法的F1-Score值评价指标值(如表1所示),并作如下分析:C4.5算法采用的悲观剪枝方法,用递归的方式从底向上针对每一个非叶子节点,评估用一个最佳叶子节点去代替这棵子树是否有益。该算法通过训练数据集上的错误分类数量来估算未知样本上的错误率,所以该算法在数据集容量较小的情况下 F1-Score值与改进C4.5算法相近,但高于CART算法。CART 算法采用二分递归分割的技术,采用GINI值作为分裂节点的依据,运用一种“基于代价复杂度的剪枝”方法进行后剪枝,故而在低样本量的情况下,该算法受限于样本数据过少,导
18、致其决策的准确度降低,在判断病虫害的F1-Score值上明显低于改进C4.5算法。由表1可知在针对锈病的治理方案时三种算法的准确率发生明显下降,处于70%-72%区间中,这可能与数据集中关于锈病的特征值不够,算法难以匹配检测目标有关。在针对黏虫的治理方案时,改进C4.5算法的F1-Score值明显高于 C4.5算法和 CART 算法。这是因为在对不完整的黏虫样本数据(即缺失值)处理时,改进C4.5算法对训练集缺失值数据进行按权分配生成,并采用投票方式选取最优解。CART 算法此时F1-Score值最低,是由于若采用代理特征分裂(surrogatesplits)的方式进行处理,会造成计算量过大且
19、提升有限的问题,故此时CART算法未对缺失值进行处理。3.3 性能对比与分析为综合评价算法优劣,选择测试集中玉米蚜的部分数据(100条)进行低数据情况下的检测,检测完成后,三种算法的检测结果及性能指标如表2所示。算法C4.5改进C4.5CARTF1-Score值/%玉米蚜91.3294.6589.12黏虫90.8594.8385.53玉米粘虫88.7691.6982.33玉米螟91.1890.0187.17大斑病86.5385.1787.49小斑病89.9591.2289.29锈病71.4670.6370.24茎腐病89.2593.9186.63表1三种算法的F1-Score值122计算机时代
20、 2023年 第11期表2三种算法在低容量数据集AUC值的对比算法算法C4.5改进C4.5CARTAUCAUC值值0.71730.78840.7308AUC值是衡量算法分类性能的重要指标。低数据量的情况下:从整体决策的精确度来看,改进C4.5算法的准确性最高,匹配各种治理方案的AUC值指标达到了0.7308。结合AUC值来看,改进C4.5算法整体的决策正确率相比其他两种算法要高。为了增强可信度,选择测试集中的部分数据(5000条)进行高数据量情况下的检测。表3三种算法在高容量的数据集AUC值算法算法C4.5改进C4.5CARTAUCAUC值值0.85730.95840.9158由表3可知,当T
21、PR=0.03时,三种算法开始出现明显区别,且传统C4.5算法AUC值明显小于改进C4.5算法与 CART 算法。且改进 C4.5 算法的 AUC 值为0.9584,可知该算法在大数量上的预测效果较为优异。将两次测量数据汇总并记录运行时间,如表 4所示。表4三种算法的训练时长算法算法改进改进C C4 4.5 5CARTCARTC C4 4.5 5F F1 1-Score-Score值值/%/%玉米蚜玉米蚜94.6589.1291.32Time/sTime/s12.3111.5615.23AUCAUC值值综合综合0.95840.91580.8573TimeTime21.7918.6740.35由
22、表4可知改进C4.5算法在高数据量条件下时间为21.79s,相比原C4.5算法的40.35s具有明显提升。4 结论针对传统病虫害治理决策的C4.5算法存在的精确度不足、大数据量处理效率低以及测试数据值缺失问题,本文提出了一种改进 C4.5 算法。该算法采用K-means+算法对数据进行离散化处理,并对训练集缺失值数据进行按权分配并生成,参考遗传算法对训练集与聚类中心点进行优化处理。实验结果表明,改进C4.5算法在处理小数据量时,其F1-Score值相较于CART 算法和 C4.5 算法分别提高了 5.53%和 3.33%。同时,相较于 C4.5 算法,该算法的运行时间提高了2.92s。处理高容
23、量数据集时,该算法的 AUC值指标相对于 CART算法和 C4.5算法分别提高了 0.0426和0.1011。由此可见,改进的C4.5算法不仅能够保证处理不同容量数据集时的精确度,而且通过简化运算量,可以大幅提高运行速度。此外,该算法还能有效应对数据缺失的情况,提高治理效率。参考文献(References):1 陈印军,王琦琪,向雁.我国玉米生产地位、优势与自给率分析J.中国农业资源与区划,2019,40(1):7-16.2 杭立,车进,宋培源,等.基于机器学习和图像处理技术的病虫害预测J.西南大学学报(自然科学版),2020,42(1):134-141.3 SHRUTHI U,Nagaven
24、i V,Raghavendra B K.A review onmachinelearningclassificationtechniquesforplantdisease detectionC,2019 5th International ConferenceonAdvancedComputing&CommunicationSystems(ICACCS).March15-16,2019,Coimbatore,India.IEEE,2019:281-284.4 赵建民,黄珊,王梅,等.改进的 C4.5算法的研究与应用J.计算机与数字工程,2019,47(2):261-265.5 杨族桥,高汉平,
25、徐小双,等.顾及粗糙集理论的CART改进算法及其应用J.黄冈师范学院学报,2006(3):38-41.6 李斌,陈爱斌,周涛,等.基于改进C4.5算法的森林火险天气等级评估J.湖南林业科技,2018,45(1):36-40.7 郭超凡,王旭明,石晨宇,等.基于改进 Kmeans算法的玉米叶片图像分割J.中北大学学报(自然科学版),2021,42(6):524-529.态图元技术研究J.山西科技,2013,28(2):115-117.5 李广丽,张红斌.基于Jscript脚本技术的SVG文档的DOM解析J.计算机与现代化,2005(4):111-113.6 杨丰萍,冯春华,王健.基于Java和S
26、VG的监控画面图形生成软件的设计J.继电器,2008,36(3):32-36.7 黄向前,孟文.智能变电站中SVG解析方式的研究实现J.制造业自动化,2014(11):92-94.8 张伟,杨大龙,陈丽,等.基于QLExpress规则引擎的 自动化运维告警系统的设计与实现J.信息通信技术,2019,13(z1):62-69,76.9 吴绍卫.WebSocket在实时消息推送中的应用设计与实现J.福建电脑,2021,37(11):80-83.10 焦健,李岩.基于Redis的SVG空间信息可视化数据库J.小型微型计算机系统,2015,36(6):1193-1198.(上接第119页)CECE123