社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

大暑来报「稻」!巧用机器学习算法预测水稻产量!

易智瑞 • 1 年前 • 196 次点击  

大暑至,夏更浓。大暑,是二十四节气中的第十二个节气,也是夏季最后一个节气。此时正值“三伏天”里的“中伏”前后,日照阳光最为猛烈,湿热交蒸到达顶点。同时,大暑正是万物狂长的时节,草木郁郁葱葱,稻田谷穗丰盈,仿佛在告诉人们,丰收的日子正越来越近。



01
前言

民为国基,谷为民命。粮食事关国运民生,粮食安全,充足的作物产量是国家安全的重要基础。相信大家对于“气候变化”一词并不陌生,我们都知道,“气候变化”会给世界带来许多变化,例如“全球气候变暖”,“海平面上”,“极端天气频发”。作物产量受气候条件的影响巨大,不知您是否好奇:

“气候变化”会对“作物产量”带来什么样的影响呢?

如何基于机器学习技术进行水稻产量的预测?

是否存在一种便捷的方法,快速实现机器学习模型的构建?

是否存在多源数据融合和整合的有效手段?

GA+的在线建模工具能够给您提供答案。




02
机器学习及作物产量估计

那么什么是机器学习呢?简单来说,机器学习就是利用各类算法使得计算机能够从数据中学习到模式规律,并且使用这些从数据中学到的知识及规律做出预测或做出决策。机器学习在各行各业中都有非常广泛的应用,例如机器学习在医学领域可以用于医疗影像分析,在金融领域可以用于风险管理及股票市场预测,交通领域中可以用于辅助自动驾驶。相信对于许多GISers来说,机器学习并不陌生。因为在地理信息遥感领域中,机器学习也具有非常广泛的用途,主要被用于趋势分析、预测,辅助决策,影像分类,模式识别等。例如使用机器学习算法进行卫星影像识别,制作土地利用类型图。使用机器学习算法预测地理现象,例如气候模式,土地变化模拟。

机器学习算法的应用步骤通常包括:数据获取->数据预处理及清洗->数据集分割(训练集和测试集)->模型训练->性能评估->预测



在本例中,我们使用机器学习算法进行水稻产量的估计及预测。在遥感和机器学习技术被应用于农业生产之前,作物估产采用人工估计的方式。农业生产者通过田间调查,结合人工经验估计作物的产量。该方法能够提供较为精确的结果,但需要投入大量的人力,且效率低下,无法进行大范围的产量估计。结合机器学习方法和遥感数据源,我们可以在选定的区域计算作物产量,收集一定数量的样本。利用机器学习方法使得计算机学习特定作物产量和气候、土壤情况等因素的关系,将多源遥感数据作为模型输入进行大范围的作物产量估计,大大减少产量估计的成本[1][2]。






03
GA+在线建模工具和机器学习

GeoScene GA Plus (GA+)在线建模是一种低代码应用模式,可通过交互式地拖拽分析算子,数据资源,灵活地创建业务场景模型。

那么,使用GA+在线建模工具创建机器学习业务场景模型能够带来什么利好及便利呢?

1

数据接入便捷

GA+提供了强大的多源数据接入能力,通过简单拖拽的方式即可将不同来源数据拖入画布作为分析工具的输入。


2

降低了使用门槛

GA+在线建模中提供了丰富的机器学习算子。零编程基础的非专业人士可以通过可视化、交互的方式可以轻松创建机器学习模型,降低了使用门槛


3

提高模型的复用性

在线模型可以保存,共享,编辑,非专业人员可以选择下载数据科学家创立的完善的模型,更改数据源,并对模型进行调整即可轻松创建自己的模型。大大减少了用户创建模型的成本,同时降低了使用门槛。


4

算子丰富

除了机器学习算子之外,在线建模工作中还包括了丰富的数据处理、分析、清洗的工具,可以轻松实现数据的预处理、清洗及更进一步的分析。


5

运行效率高

机器学习算法是数据驱动的算法,通常用于机器学习模型训练及预测的数据集数据量都很大。GA+支持调用分布式计算,可以解决大数据体量下的分析计算效率问题。





04
利用GA+在线建模工具预测气候变化对作物产量的影响

在本例中,我们将使用GA+中的在线建模功能探究长江中下游及其南部地区气候变化水稻产量所带来的影响。该地区包括了我国90%以上的水稻种植区,本例使用GA+在线建模中的机器学习算子从研究区内水稻产量样本数据中学习各类解释变量(例如气候,土壤条件等)与要预测的目标变量:水稻产量之间的关系。根据学习到的规律,在整个研究区范围内进行水稻产量估计,并基于未来的预测气候变量数据对2081-2100的水稻产量水平进行预测


4.1解释性变量

影响作物产量的因素多种多样,包括气候因素土壤状况肥料施用水平地形因素土地利用类型灌溉方式太阳辐射等。

在本例中,我们将使用19个气候变量、11个土壤状况变量,3个肥料施用水平变量,3个地形因素变量,1个土地利用类型变量,2个灌溉条件变量及一个太阳辐射变量作为水稻产量的解释性变量。

各类变量的描述如下:


1

生物气候变量(bio1-19):关于气温及降雨的各类属性,例如年平均值,季节性,年度范围等。用于表征作物的气候适宜性。

2

土壤质量变量(sq1-7):七个对于作物生产而言非常关键的土壤质量指标,包括营养物质可用性,营养保持力,根系氧可用性等。


3

土壤特征变量(smYear,SOC,S_pH,T_pH):分别为年土壤湿度,土壤有机碳含量,土壤上层pH值及土壤下层pH值。


4

地形因素(elev,aspect,slope):高程,坡度,坡向三个地形因素。


5

土地利用类型变量(lc):土地利用类型。


6

灌溉条件变量(CULTIR,CULTRF):分别为灌溉耕地及雨水喂养耕地所占比例。


7

太阳辐射变量(srad_avr):年平均太阳辐射。




4.2预测数据集

本例将研究区大小分辨率为1km的栅格转换为矢量点(即一个像元对应一个点),转换得来的矢量点集合即为本例中所使用的预测数据集。对未来气候场景下水稻产量进行预测时则将对应的气候变量替换为预测的气候变量值。


4.3创建在线模型

首先需要对收集到的原始数据进行数据清洗,筛除所有存在空值、无效值的记录。将算子”条件过滤”拖入画布中,为所有类别型变量设置表达式“不为空”,为所有连续型变量设置表达式“不为空”且“大于等于0”“小于等于1”。同时为训练集和预测集应用上述数据清洗过程。



接着需要进行模型训练、评估及预测。该步骤是该模型建立最为关键的一步,使得计算机学习水稻产量及解释性变量间的关系,并将其应用于预测数据集,实现预测。将“基于森林的分类与回归(预测)”算子拖入画布中,训练集和预测集作为该算子的输入分别作为训练和预测图层。选择以下选项:

1.指定要预测的变量、用于训练及预测的解释性变量,并在每个变量之后选择该变量是否为类别型变量(是或否)。



2.随机森林算法超参数选择

GA+中‘基于森林的分类与回归’算子中可供用户调整的超参数包括:

01

树数量:模型中创建的决策树的数量,大体上该参数值越大得到的模型表现越好,但该参数值的增加会急剧增加所需计算资源。

02

最小叶节点数:用于创建叶节点所需最少数据量,该值过小可能会造成对于训练数据的过拟合,过大可能会影响模型表现。

03

最大树深:创建决策树时允许的最大分割次数,同样,该参数设置过大可能会造成模型过拟合,降低模型预测能力。

04

创建每棵树的可用数据(%):创建每棵决策树时可供使用的训练数据百分比

05

创建每棵树可随机选择的解释变量:创建决策树每次分割可供使用的解释变量数

3.模型验证参数选择:模型验证也是至关重要的一步,可以使模型使用者知道该模型可能造成的误差。通常我们会随机选取训练集的一部分,该部分数据不参与模型训练,只用于测试模型表现。



“基于森林的分类与回归”算子将产生四个输出结果,即:“训练结果”、“重变量果表”、“预测结果”、“过程信息”。最后使用“写出到资源池”算子将预测结果进行输出,将其输出到已注册资源池中,可以轻松将输出结果载入GA+中进行进一步处理、分析。



至此,我们就将这个用于预测水稻产量的在线模型创建好了。



单击运行,系统则会提交任务,并验证分析环境及模型参数。当任务提交成功且分析环境及模型参数通过验证之后GA+则会开始运行模型。点击右上角的‘运行详情’则可查看模型当前进度,再次点击则可收起。



模型运行结束后可打开模型运行日志,日志中记录了模型中各个算子的参数设置、运行状态、耗时。




05
结果分析

打开模型运行的日志,找到随机森林算子部分可以查看模型表现评估相关信息

首先是模型在用于模型训练数据上的表现,可以看到在该数据集中,水稻产量的预测值和真实值之间的决定系数(R2)为0.83,意味着预测值可以解释真实值约83%的变化。且水稻产量预测的平均绝对误差(MAE)为562.25,约占水稻产量平均值的9.6%。模型对于训练数据的拟合效果良好。



在测试集中,产量预测值与真实值之间的决定系数略低,为0.64,水稻产量预测的平均绝对误差为888.54,约占水稻产量平均值的15.3%,模型泛化能力一般。但值得注意的是,测试集是从训练集中进行一次随机抽取产生的,具有较大的随机性。



预测结果:

预测得到的2010年长江中下游及其南部地区全区域的水稻产量分布,及2081-2100年水稻产量分布。我们可以看出,两个时期水稻产量的空间分布规律大致相同。安徽、江苏及重庆等地区水稻产量最高,福建,贵州,海南等省份水稻产量最低,其余地区处于中等水平。


通过两个时期水稻产量的差值(2081-2100减去2010),我们发现,未来,除了云南省南部台湾省北部海南省等地区水稻产量将会迎来大范围的增长之外,其余地区水稻产量将会迎来不同程度的下降,且原先水稻产量较高的地区会迎来相对更大幅度的产量下降。


两个时期长江中下游及其南部地区总体水稻产量的统计数据显示,受气候变化影响,水稻产量将平均下降20%左右。研究区内不同地区水稻产量的差异趋于减小


值得注意的是:本例中得到的水稻产量预测结果并不完全准确,该模型在预测‘陌生’的数据时其表现可能不尽如人意,因为其不具备很强的迁移能力。并且影响作物产量的因素及过程非常复杂,本例中只考虑了气候变化可能带来的影响,事实上,气候变化也会改变土壤条件等其他因素。因此本例只是为大家提供一个使用GA+在线建模工具来运用机器学习算法进行分析的思路。



06
小结

以上就是使用GA+在线建模工具预测气候变化对水稻产量的影响的全部流程了。GA+提供的在线建模工具能够方便快捷地接入多源数据,并提供了大量方便快捷又好用的空间分析、机器学习算子,非数据分析专业人员也可以根据自己的业务需求快速构建场景模型,快去尝试一下吧。



参考文献

[1]Cen, H. and Wan, L. (2023) ‘Crop yield estimation and prediction’, Encyclopedia of Smart Agriculture Technologies, pp. 1–13. doi:10.1007/978-3-030-89123-7_48-1.

[2]Sagar, B.M. and N K, C. (2018) ‘Agriculture data analytics in crop yield estimation: A critical review’, Indonesian Journal of Electrical Engineering and Computer Science, 12(3), p. 1087. doi:10.11591/ijeecs.v12.i3.pp1087-1093. 




能力提升

2024地理信息技术与应用能力水平考试(高级)

中国信息协会专业认证!


基于Python的GIS开发与应用实战营
效率翻倍!


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/172517
 
196 次点击