一种基于数据挖掘的农作物生长预警的方法及装置与流程

文档序号:20619530发布日期:2020-05-06 20:38阅读:112来源:国知局
一种基于数据挖掘的农作物生长预警的方法及装置与流程
本发明涉及数据处理
技术领域
,特别涉及一种基于数据挖掘的农作物生长预警的方法及装置。
背景技术
:农业是一巨型复杂系统。中国土地辽阔,土壤类型众多,农作物品种复杂,病虫害发生频率高且症象不断变化,土壤条件、气候条件相互之间的关系和影响,许多还未被人们去认识,然而所积累的数据之多是任何一个领域所没有的,它具有大量、多维、动态、不完整、不确定等特性。数据挖掘是数据库知识发现中的一个重要环节,其主要目的是从大量的数据中搜索隐藏于其中的有着特殊关系性的信息,数据分析是对挖掘出来的信息进行分析,形成结论,从而对数据加以详细研究和概括总结。通过对农业数据的挖掘和分析,可以获取农业数据之间存在的联系,为开展后续增产工作研究打下坚实的基础。我国作为世界上的农业大国,但是存在着“信息爆炸但只是缺乏知识”的现状,随着农业科学数据不断积累,从中提取潜在有用的知识变得越来越重要,数据挖掘技术的出现为农业行业的信息化和智能化提供了新的方法和途径。技术实现要素:为解决上述问题,本发明提供了一种基于数据挖掘的农作物生长预警的方法及装置。根据本发明实施例提供的一种基于数据挖掘的农作物生长预警的方法,包括:农作物数据采集模块通过对实验农作物的生长期间的各种数据进行采集,得到所述实验农作物的生长属性数据信息;农作物数据分析模块通过对所述生长属性数据信息进行分析统计,得到所述实验农作物的生长分类数据信息和每个生长分类所对应的生长属性信息;挖掘分析模块利用改进的id3决策树算法对所述生长分类数据信息和所述生长属性信息进行挖掘分析,得到所述农作物的生长预警结果。优选地,所述改进的id3决策树算法包括用于计算分类信息熵和属性信息熵的泰勒级数的对数运算简化等式;其中,所述泰勒级数的对数运算简化等式为:优选地,利用泰勒级数获取所述泰勒级数的对数运算简化等式。优选地,所述利用泰勒级数获取所述泰勒级数的对数运算简化等式包括:将f(x)=ln(1+x),a=0代入到泰勒级数中,得到当x取值为无穷小时,将公式(1)简化为:根据对数运算法则对公式(2)进行对数简化处理,得到所述泰勒级数的对数运算简化等式;其中,所述对数运算法则公式为优选地,所述生长属性数据信息包括:生长环境信息和生长施肥信息;其中,所述生长环境信息包括生长温度信息、生长土壤信息以及生长湿度信息;所述生长施肥信息包括生长肥料信息、生长农药信息以及生长活水信息。优选地,所述农作物数据分析模块通过对所述生长属性数据信息进行分析统计,得到所述实验农作物的生长分类数据信息和每个生长分类所对应的生长属性信息包括:农作物数据分析模块根据生长预警需求,得到所述实验农作物的生长分类数据信息;农作物数据分析模块根据所述生长分类数据信息分别对所述生长分类个数信息和每个生长属性的个数信息进行统计,得到所述实验农作物的生长分类数据信息和每个生长分类所对应的生长属性信息。优选地,所述挖掘分析模块利用改进的id3决策树算法对所述生长分类数据信息和所述生长属性信息进行挖掘分析,得到所述农作物的生长预警结果包括:利用所述泰勒级数的对数运算简化等式,分别计算所述农作物的分类信息熵和多个属性信息熵;根据所述分类信息熵和所述多个属性信息熵,分别计算所述农作物的每个属性信息的信息增益;利用所述每个属性信息的信息增益进行挖掘分析,得到所述农作物的生长预警结果。优选地,所述利用所述每个属性信息的信息增益进行挖掘分析,得到所述农作物的生长预警结果包括:从所述每个属性信息的信息增益中选取最大的信息增益,并将所述最大的信息增益所对应的属性信息作为决策树根节点的分裂节点进行分裂处理;判断剩余的其他信息增益中是否有相同的信息增益;当判断剩余的其他信息增益中有相同的信息增益,则将所述相同增益所对应的属性信息通过笛卡尔乘积的方式进行组合,得到决策树子树节点和决策树子叶节点的分裂节点;按照所得到的决策树子树节点和决策树子叶节点的分裂节点进行分裂处理,生成决策树,并根据所述决策树进行挖掘分析,得到所述农作物的生长预警结果。根据本发明实施例提供的一种基于数据挖掘的农作物生长预警的装置,包括:农作物数据采集模块,用于通过对实验农作物的生长期间的各种数据进行采集,得到所述实验农作物的生长属性数据信息;农作物数据分析模块,用于通过对所述生长属性数据信息进行分析统计,得到所述实验农作物的生长分类数据信息和每个生长分类所对应的生长属性信息;挖掘分析模块,用于利用改进的id3决策树算法对所述生长分类数据信息和所述生长属性信息进行挖掘分析,得到所述农作物的生长预警结果。优选地,所述改进的id3决策树算法包括用于计算分类信息熵和属性信息熵的泰勒级数的对数运算简化等式;其中,所述泰勒级数的对数运算简化等式为:其中,利用泰勒级数获取所述泰勒级数的对数运算简化等式,其包括:将f(x)=ln(1+x),a=0代入到泰勒级数中,得到当x取值为无穷小时,将公式(1)简化为:根据对数运算法则对公式(2)进行对数简化处理,得到所述泰勒级数的对数运算简化等式;其中,所述对数运算法则公式为根据本发明实施例提供的方案,采用了大数据平台hadoop对农作物生长数据进行分析,hadoop平台具有较高的挖掘效率、性能优越、结果可靠,能够实现农作物生长的预警。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于理解本发明,并不构成对本发明的不当限定。在附图中:图1是本发明实施例提供的一种基于数据挖掘的农作物生长预警的方法流程图;图2是本发明实施例提供的一种基于数据挖掘的农作物生长预警的装置示意图;图3是本发明实施例提供的一种基于数据挖掘的农作物生长预警系统的模块图;图4是本发明实施例提供的决策树示意图;图5是本发明实施例提供的具有组合属性{a,b}的决策节点示意图;图6是本发明实施例提供的改进的id3算法流程图。具体实施方式以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。图1是本发明实施例提供的一种基于数据挖掘的农作物生长预警的方法流程图,如图1所示,包括:步骤s100、农作物数据采集模块通过对实验农作物的生长期间的各种数据进行采集,得到所述实验农作物的生长属性数据信息;步骤s110、农作物数据分析模块通过对所述生长属性数据信息进行分析统计,得到所述实验农作物的生长分类数据信息和每个生长分类所对应的生长属性信息;步骤s120、挖掘分析模块利用改进的id3决策树算法对所述生长分类数据信息和所述生长属性信息进行挖掘分析,得到所述农作物的生长预警结果。其中,所述改进的id3决策树算法包括用于计算分类信息熵和属性信息熵的泰勒级数的对数运算简化等式;其中,所述泰勒级数的对数运算简化等式为:其中,利用泰勒级数获取所述泰勒级数的对数运算简化等式。具体地说,所述利用泰勒级数获取所述泰勒级数的对数运算简化等式包括:将f(x)=ln(1+x),a=0代入到泰勒级数中,得到当x取值为无穷小时,将公式(1)简化为:根据对数运算法则对公式(2)进行对数简化处理,得到所述泰勒级数的对数运算简化等式;其中,所述对数运算法则公式为其中,所述生长属性数据信息包括:生长环境信息和生长施肥信息;其中,所述生长环境信息包括生长温度信息、生长土壤信息以及生长湿度信息;所述生长施肥信息包括生长肥料信息、生长农药信息以及生长活水信息。其中,所述步骤s110包括:农作物数据分析模块根据生长预警需求,得到所述实验农作物的生长分类数据信息;农作物数据分析模块根据所述生长分类数据信息分别对所述生长分类个数信息和每个生长属性的个数信息进行统计,得到所述实验农作物的生长分类数据信息和每个生长分类所对应的生长属性信息。其中,所述步骤s120包括:利用所述泰勒级数的对数运算简化等式,分别计算所述农作物的分类信息熵和多个属性信息熵;根据所述分类信息熵和所述多个属性信息熵,分别计算所述农作物的每个属性信息的信息增益;利用所述每个属性信息的信息增益进行挖掘分析,得到所述农作物的生长预警结果。具体地说,所述利用所述每个属性信息的信息增益进行挖掘分析,得到所述农作物的生长预警结果包括:从所述每个属性信息的信息增益中选取最大的信息增益,并将所述最大的信息增益所对应的属性信息作为决策树根节点的分裂节点进行分裂处理;判断剩余的其他信息增益中是否有相同的信息增益;当判断剩余的其他信息增益中有相同的信息增益,则将所述相同增益所对应的属性信息通过笛卡尔乘积的方式进行组合,得到决策树子树节点和决策树子叶节点的分裂节点;按照所得到的决策树子树节点和决策树子叶节点的分裂节点进行分裂处理,生成决策树,并根据所述决策树进行挖掘分析,得到所述农作物的生长预警结果。图2是本发明实施例提供的一种基于数据挖掘的农作物生长预警的装置示意图,如图2所示,包括:农作物数据采集模块、农作物数据分析模块以及挖掘分析模块。所述农作物数据采集模块,用于通过对实验农作物的生长期间的各种数据进行采集,得到所述实验农作物的生长属性数据信息;所述农作物数据分析模块,用于通过对所述生长属性数据信息进行分析统计,得到所述实验农作物的生长分类数据信息和每个生长分类所对应的生长属性信息;所述挖掘分析模块,用于利用改进的id3决策树算法对所述生长分类数据信息和所述生长属性信息进行挖掘分析,得到所述农作物的生长预警结果。其中,所述改进的id3决策树算法包括用于计算分类信息熵和属性信息熵的泰勒级数的对数运算简化等式;其中,所述泰勒级数的对数运算简化等式为:其中,利用泰勒级数获取所述泰勒级数的对数运算简化等式,其包括:将f(x)=ln(1+x),a=0代入到泰勒级数中,得到当x取值为无穷小时,将公式(1)简化为:根据对数运算法则对公式(2)进行对数简化处理,得到所述泰勒级数的对数运算简化等式;其中,所述对数运算法则公式为本发明拟针农业生产过程中生长要素对于农作物生长的影响,通过数据挖掘技术,对农作物生长要素进行数据挖掘,分析所得结论辅助农业从业者实现增收。图3是本发明实施例提供的一种基于数据挖掘的农作物生长预警系统的模块图,如图3所示,包括了数据采集模块、数据导入模块、数据预处理模块、数据分析模块、数据验证模块、数据导出模块。数据采集模块,通过传感器等设备将生产过程中土壤湿度、空气温度、土壤成分等数据采集起来,存储到oracle数据库中进行保存。数据导入模块,通过kettle(pdi)将数据采集模块中的原始数据导入到hdfs和hive中作为数据预处理的数据源进行保存,并建成数据库,用于后续的数据挖掘。其中,可以根据用户需求选择增量导入或者全量导入。数据预处理模块,将数据的初步分类采用分类变量方法,将获取的数据分为有序变量和无序变量两类。无序变量法中,利用二项分类法将植株分为雌性、雄性等,利用多项分类法将土壤类型分为砂质土、黏质土、壤土等等。利用有序变量法将培养环境分为优秀、良好、及格和差四类等。其中主要包括了缺失数据处理、错误值检测、检测和清理数据、光滑噪声、不一致数据清理、连续数据离散化、数据分词等。本实施例中主要将已分类的数据再进行如下预处理:1)缺失数据处理。采用同类均值插补方法,使得数据保持一致,进行清理。2)错误值检测。用统计分析的方法识别相关属性可能的错误值或异常值,使用不同属性间的约束、外部的数据来检测和清理数据。3)光滑噪声。通过分箱、回归、聚类等多种方法,对数据中属性值相同的记录,通过判断记录间的属性值是否相等来检测记录是否相等,相等的属性记录合并为一条记录。4)不一致数据清理。采用分箱、回归、聚类等多种方法,将连续的成绩数据进行量化,转换成离散属性。5)数据分词。通过正向最大匹配、逆向最大匹配、最少切分等方法,将字符串与词典中的词进行匹配,识别出所需要的数据。同时系统根据数据源的特点和数据挖掘的目标,数据预处理模块对数据源利用hql和mapreduce进行清洗,具体利用hql完成缺失值删除和缺失值补充工作,利用mapreduce完成数据去重工作。数据挖掘模块,利用数据预处理后数据进行数据挖掘分析,其中数据挖掘模块利用改进id3决策树算法、朴素贝叶斯分类算法和k-means算法对农作物生产过程中的相关数据进行挖掘。改进的id3决策树算法具体为:计算分类信息熵、属性信息熵、信息增益,选取信息增益最大的属性作为分裂节点循环迭代,直到完成决策树。在id3的信息熵的计算过程中,不可避免会进行多次对数运算,增加了算法计算时间。由此引入了泰勒中值定理和麦克劳林展开式。根据泰勒级数的定义一个在a邻域上的无穷可微的函数f(x)的泰勒级数具有式(11)的幂级数:那么当f(x)=ln(1+x),a=0时代入上式,此时f(x)为麦克劳林级数:所以当x的取值无穷小时,可以将公式简化为:有对数运算法则可知:将式(13)带入式(14)中,可得泰勒级数的对数简化公式,公式如下:由此可见,通过泰勒公式优化熵值运算减少了算法时间复杂度,提高挖掘效率。所述数据挖掘模块进行数据挖掘的流程如下:步骤1,采用改进id3决策树算法对数据集进行挖掘分析,获得数据挖掘结果ⅰ;改进的id3算法流程图如图6所示,步骤如下所示。步骤一,计算待分类数据集的信息熵i(x),计算公式为i(x)=-∑x∈xp(x)log2x………(21)步骤二,计算属性信息熵e(a),计算公式为e(a)=∑v∈v{-p(v)*∑x∈xp(xv)log2p(xv)}………(22)步骤三,计算信息增益,计算公式为ig(a)=i(x)-e………(23)步骤四,选取信息增益最大的属性作为分裂节点循环迭代,当出现两个属性信息增益相同时,将属性通过笛卡尔乘积的方式进行组合,得到新的节点和叶子,当训练集属性全部遍历或者分类结果不再变化时,停止迭代,得到决策树。针对步骤1的改进id3决策树算法,本实施例的一个具体的应用为:实验数据为通过对是否适合种植的数据,共分为两类,分别是同意种植和拒绝种植。包含了四个属性,分别是土壤类型、是否大棚、是否农药、是否活水、培养条件,详细数据如下表1所示。表1:实验数据表土壤类型是否大棚是否农药是否活水培养条件分类结果砂质土nnn及格拒绝砂质土nnn好拒绝砂质土yyn好同意砂质土yny及格同意砂质土nyn及格拒绝黏质土nnn及格拒绝黏质土nnn好拒绝黏质土yyy好同意黏质土nny非常好同意黏质土nyy非常好同意壤土nny非常好同意壤土nyy好同意壤土yyn好同意壤土ynn非常好同意壤土nnn及格拒绝(1)首先计算分类属性,由数据集可得,同意种植的9个,拒绝种植的6个,由此利用泰勒级数的对数简化公式可以计算出分类信息熵(2)利用泰勒级数的对数简化公式计算属性信息熵同理可得,e(s,是否大棚)=0.647、e(s,是否农药)=0.647、e(s,是否活水)=0.550、e(s,培养条件)=0.607(3)紧接着计算信息增益gain(土壤类型)=e(s)-e(s,土壤类型)=0.083,同理可得gain(是否大棚)=0.323,gain(是否农药)=0.323,gain(是否活水)=0.420,gain(培养条件)=0.363。(4)通常,id3算法中决策节点的分支数等于属性值的个数。但是,本发明id3算法中决策节点的分支数等于候选属性值之间的笛卡尔积可以确定的元组数。例如,假设属性a和b是当前节点的候选属性。属性a有两个值,属性b有两个值。通过合并来自两个属性的值,分支的数量等于4(2x2)。图5显示了具有组合属性{a,b}的决策节点。其中,表示t1和t2是两个子树。l1、l2为叶节点。改进后得到的决策树可以极大的减少树的遍历次数,提高分类效率。本发明根据id3算法选取信息增益最大的作为分裂节点,如图4所示,由此选择“是否活水”作为根节点,再不断迭代,寻找下一个分裂节点,由于gain(是否大棚)=gain(是否农药)=0.323相同,因此选择将“是否大棚”与“是否农药”做笛卡尔乘积得到新的4个组合,即“大棚,农药”、“不是大棚,农药”、“大棚,不施农药”、“不是大棚,不施农药”。当训练集属性全部遍历或者分类结果不再变化时,停止迭代,得到决策树。步骤2,采用朴素贝叶斯分类算法对数据集进行挖掘分析,获得数据挖掘结果ⅱ;步骤3,采用k-means聚类算法对数据集进行挖掘分析,获得数据挖掘结果ⅲ;步骤4,数据挖掘结果ⅰ、数据挖掘结果ⅱ和数据挖掘结果ⅲ同时发送给结果验证模块,进行准确性验证。数据验证模块通过对数据挖掘模块的输出结果进行准确性验证,最后得到预警系统的输出结果。数据导出模块通过kettle(pdi)将数据挖掘模块挖掘处理后的结果导出到农作物生长预警系统数据库oracle中,用于后续分析。本发明的特点还在于,系统还包括了模块调度模块、日志模块,模块调度模块实现了对系统各模块进行调度和整合,保证了系统的高效、准确的运行。日志模块记录整个数据挖掘过程中的日志数据,便于工作人员对数据挖掘过程的监控和管理。根据本发明实施例提供的方案,有益效果包括以下几个:(1).所述数据预处理模块根据用户需求检查数据集的完整性和一致性,并对数据集进行过滤,去除数据集中错误的或不一致的数据,保证了有效数据集的有效性。(2).所述日志模块可以记录整个系统运行过程中的日志数据,方便用户实现管理和维护。(3).所述结果验证模块可以验证数据挖掘结果的准确性,当准确性较低时重新进行数据挖掘,极大地提高了预警的准确性。(4).充分利用了hadoop平台本身具有的高可靠性、高扩展性、高效性、成本低的特点。(5).该方案中用到的各个模块相互独立、互不影响,除了调度模块任何一个模块、日志模块均可作为执行模块,具有较高的可扩展性。尽管上文对本发明进行了详细说明,但是本发明不限于此,本
技术领域
技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1