基于扩增高光谱数据集改善土壤氧化铁预测精度的方法
文献发布时间:2024-04-18 20:01:23
技术领域
本发明涉及土壤属性预测技术,特别是一种基于扩增高光谱数据集改善土壤氧化铁预测精度的方法。
背景技术
土壤氧化铁是衡量土壤肥力和水土保持能力的重要指标之一,同时氧化铁也可反映土壤的淋溶过程、风化发育程度以及土壤的地带性分布特征,因此,土壤氧化铁也是描述土壤发育和土壤分类的最有用指标之一。综上所述,土壤氧化铁含量的快速、精准获取对农业生产和土壤发生分类研究有重要意义。
传统获取土壤氧化铁含量的方法一般为土壤采样和实验室测量相结合的方式,密集的土壤样品采集和实验室测量不仅耗费大量人力物力财力,也拉长了数据获取的周期。近年来,可见-近红外光谱技术被广泛应用土壤属性的快速获取领域,也被证明可用于土壤氧化铁含量的快速精准获取。与此同时,随着人工智能技术的进一步发展,深度学习不需要手工设计的特征提取过程,如预处理过程。各种深度学习卷积神经网络(CNN)模型(即AlexNet,VGGnet,GoogLeNet和ResNet)已经开发和训练了大量数据,其中包括超过1000万的图像数据。近期有研究人员将1DCNN网络用于土壤属性的快速获取中,尽管CNN经常处理图像作为输入数据,但它最近已成功地应用于振动和反射光谱,但是光谱数据的规模往往没有图片数据那么大,因土壤光谱的收集易受土壤样品数量的限制。另有研究表明训练集的规模会影响衍生出来的模型预测土壤属性的能力,在少的样本上使用CNN的优势是不确定的,当光谱数据集的规模<1000条时,CNN的建模效果不及偏最小二乘(PLSR)和Cubist模型。最近一篇关于光谱学的综述表明,有几项研究也曾使用小规模的训练样本进行了深度学习的训练,增加训练样本量能进一步提高模型性能。
对于图片类的数据,往往采用水平翻转,垂直翻转,放大,缩小,改变对比度和亮度等等措施进行数据扩增,而对于高光谱数据目前尚未有人提出相应的扩增数据方法。
发明内容
发明目的:本发明的目的是提供一种基于扩增高光谱数据集改善土壤氧化铁预测精度的方法,从而改善土壤氧化铁的现有预测精度,从根本上解决小规模数据集应用CNN模型效果不佳的问题,提高CNN模型的可用性和普适性。
技术方案:本发明所述的一种基于扩增高光谱数据集改善土壤氧化铁预测精度的方法,包括以下步骤:
(1)扩增高光谱数据集,采用分数阶微分算法将原始高光谱进行多分数阶微分变化;然后将分数阶微分光谱与原始光谱组合,形成不同的扩增高光谱数据库,以扩增原始光谱数据量。
步骤(1)所述的采用分数阶微分算法将原始高光谱进行多分数阶微分变化的公式为:
式中,f(x)为对应波段的光谱反射率;v为微分阶数;Γ(·)为伽玛函数;m为微分的上下限之差,即波段范围;
按照以上公式,v分别取0、0.1、0.2、0.3、……、2,v按照上述规律逐个取值分别对应原始光谱、0.1阶微分光谱、0.2阶微分光谱、0.3阶微分光谱、……、2阶微分光谱,构建扩增光谱数据库,如0、0+0.1阶微分光谱、0+0.1+0.2阶微分光谱、……、0+0.1+0.2+……+2阶微分光谱,其中0阶微分代表原始光谱数据。
(2)对最终形成的不同扩增高光谱数据库分别建立以为神经网络1D-CNN模型,此时自变量为高光谱反射率值,因变量为土壤氧化铁含量。
(2.1)对形成的扩增微分光谱库进行1D-CNN建模,输入数据为光谱数据,输出数据为土壤氧化铁含量;
(2.2)随机将数据集划分为训练集和测试集两部分,然后从训练集中随机抽出一部分作为验证集,用于参数调优;
(2.3)为避免过拟合,当验证集的损失函数loss不再明显下降,就停止训练,并保存最优模型;
(2.4)计算训练集中氧化铁含量实测值和模型预测值的决定系数R
(3)根据不同的扩增数据库所建立的模型,选择最优1D-CNN模型。
分别针对不同的扩增数据集,建立1DCNN模型,并计算评价指标,选择R
一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的一种基于扩增高光谱数据集改善土壤氧化铁预测精度的方法。
一种计算机设备,包括储存器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的一种基于扩增高光谱数据集改善土壤氧化铁预测精度的方法。
有益效果:与现有技术相比,本发明具有如下优点:本发明有效解决了小样本条件下深度学习模型精度不高的问题,在一定程度上提高了深度学习模型的适用性和有效性,有效改善了基于高光谱数据的土壤氧化铁现有预测精度,为其他土壤属性的高光谱预测研究提供了新的方法和思路。
附图说明
图1为高光谱数据扩增流程示意图;
图2为不同扩增数据库计算结果比较;
图3为最优模型下测试集土壤氧化铁实测值和预测值散点图;
图4为本发明所述方法的步骤流程图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
如图4所示,一种基于扩增高光谱数据集改善土壤氧化铁预测精度的方法,包括以下步骤:
(1)扩增高光谱数据集,采用分数阶微分算法将原始高光谱进行多分数阶微分变化;然后将分数阶微分光谱与原始光谱组合,形成不同的扩增高光谱数据库,以扩增原始光谱数据量。
步骤(1)所述的采用分数阶微分算法将原始高光谱进行多分数阶微分变化的公式为:
式中,f(x)为对应波段的光谱反射率;v为微分阶数;Γ(·)为伽玛函数;m为微分的上下限之差,即波段范围;
按照以上公式,v分别取0、0.1、0.2、0.3、……、2,v按照上述规律逐个取值分别对应原始光谱、0.1阶微分光谱、0.2阶微分光谱、0.3阶微分光谱、……、2阶微分光谱,构建扩增光谱数据库,如0、0+0.1阶微分光谱、0+0.1+0.2阶微分光谱、……、0+0.1+0.2+……+2阶微分光谱,其中0阶微分代表原始光谱数据。
(2)对最终形成的不同扩增高光谱数据库分别建立以为神经网络1D-CNN模型,此时自变量为高光谱反射率值,因变量为土壤氧化铁含量。
(2.1)对形成的扩增微分光谱库进行1D-CNN建模,输入数据为光谱数据,输出数据为土壤氧化铁含量;
(2.2)随机将70%的数据划分为训练集,30%的数据划分为测试集,然后将训练集中30%的数据再一次随机划分为验证集,用于参数调优;
(2.3)为避免过拟合,当验证集的损失函数loss在10次循环中不下降,就停止训练,并保存最优模型;
(2.4)计算训练集中氧化铁含量实测值和模型预测值的决定系数R
(3)根据不同的扩增数据库所建立的模型,选择最优1D-CNN模型。
分别针对不同的扩增数据集,建立1DCNN模型,并计算评价指标,选择R2和RPD高且RMSE最低的模型为最佳模型,用于预测土壤氧化铁含量。
以823组光谱数据和土壤氧化铁数据为例对本发明作进一步详细描述,光谱范围为400~2400nm,但不作为对本发明的限定。
(1)将823组数据读入Python,数据大小为823×2002,即823行×2002列,代表823个样品和2001个波段,1个氧化铁含量,并将其存储为二维矩阵,记为矩阵X0。
(2)按照以下公式逐行分别计算每个样本的分数阶微分光谱,微分阶数从0到2,微分步长为0.1,其公式为
其中式中,f(x)为对应波段的光谱反射率;v为微分阶数;Γ(·)为伽玛(gamma)函数;m为微分的上下限之差,即波段范围。
微分后的分数阶微分光谱矩阵记为X0.1,X0.2,X0.3,……,X2。
(3)将微分光谱矩阵按照依次逐渐增加的方式组合成为扩增光谱矩阵,如X0.1+X0.2,组合方式为矩阵垂直拼接。
(4)针对每一个扩充光谱矩阵,建立1D-CNN模型,输入数据为光谱数据,输出数据为土壤氧化铁含量。随机将70%的数据划分为训练集,30%的数据划分为测试集,然后将训练集中30%的数据再一次随机划分为验证集,用于参数调优。为避免过拟合,当验证集的损失函数loss在10次循环中不下降,就停止训练,并保存最优模型。并计算测试集中氧化铁含量实测值和模型预测值的决定系数R
(5)选择决定系数R
- 一种静态、推靠式液压旋转导向钻井工具
- 一种带有自适应支撑结构的旋转导向钻井工具
- 一种带有自适应支撑结构的旋转导向钻井工具