法律状态公告日
法律状态信息
法律状态
2022-08-16
实质审查的生效 IPC(主分类):G06K 9/62 专利申请号:2022103756161 申请日:20220411
实质审查的生效
技术领域
本发明属于土壤渗透率预测技术领域,具体涉及一种基于PCA和CatBoost回归融合预测土壤渗透率的方法。
背景技术
土壤中污染物运移受土壤渗透率的影响,土壤渗透率的预测对于缩短施工工期、降低工程费用、指导工程污染物处理、促进软土力学等学科发展等方面具有切实意义。
现有关于土壤渗透率的机器学习预测技术主要有多元线性回归(LR)模型,例如将土壤渗透率(K)与粉砂含量(SI)、黏土含量(CL)、土壤有机质(OM)、土壤容重(BD)、土壤含水率(MC)这五个特征作为变量,构建的五元线性回归模型进行预测。这样的预测方法虽然计算简单,但是对诸如土壤类型等非数值的类别特征处理效果较差;此外,实际影响土壤渗透率的因素众多,但多元线性回归模型考虑的样本特征数量较少,且部分特征与因变量有较强的层级结构关系、不适应线性回归模型,预测精度难以保证。
随着环境问题的日益严峻,提出一种能够对类别特征进行有效处理、考虑因素更加全面、预测更加准确的土壤渗透率预测新方法是必要的。
发明内容
本发明的目的是解决现有预测方法存在难以处理非数值的类别特征、考虑的样本特征数量较少、现有机器学习模型预测准确率低等问题,提出一种能处理非数值类别特征、考虑因素更加全面、预测更加准确的土壤渗透率预测方法。
为实现上述目的,本发明采用如下技术方案:
一种基于PCA和CatBoost回归融合预测土壤渗透率的方法,具体步骤如下:
步骤1数据收集;收集带有渗透率数值的若干个样本土壤,以这些样本的数值特征数据作为样本集,提取待预测渗透率土壤的特征数据;所述样本集、待预测渗透率土壤的特征数据均包括:黏土含量(Clay)、淤泥含量(Silt)、沙含量(Sand)、土壤颗粒平均直径(dg)、土壤颗粒直径的标准偏差(sg)、土壤有机碳含量(OC)、土壤容重(Db)、土壤颗粒密度(Dp)、饱和土壤体积含水量(WC_s)、不饱和土壤体积含水量(WC_i)、湿骨料稳定性(WAS)、土壤电导率(EC)和土壤类型(Texture Class)。
步骤2数据清洗;对步骤1所述样本集中缺失数据进行填补、异常数据进行剔除、并进行归一化操作;
步骤3PCA主成分分析;基于PCA主成分分析方法的思想,对样本高维度数据集进行降维处理,保留重要特征并去除无关特征和冗余特征;
步骤4构建CatBoost回归模型;将样本土壤的类别特征以及土壤渗透率值,加入经步骤3得到的样本新特征数据集中,进行模型训练;训练过程中采用K折交叉验证法,将加入类别特征以及土壤渗透率值的样本新特征数据集分成K个子集,将每个子集数据分别作为一次验证集,其余的K-1组子集数据作为训练集,这样进行K轮训练,得到训练好的CatBoost回归模型;
步骤5将待预测渗透率土壤的特征数据输入训练好的CatBoost回归模型中,得到该样本土壤的渗透率预测值。
进一步地,步骤2的具体做法包括:
步骤2.1对数据集进行异常值检测;做法如下:对步骤1所得的土壤特征数据集进行标准化处理,然后进行KS检验,对检验结果符合正态分布的特征,根据3σ原则检测异常值,将异常数值清空;对非正态分布的特征用四分位法进行异常值检测,将异常数值清空。
步骤2.2对清空的数值进行缺失值填补;做法如下:用均值插补的方法对步骤2.1中数据集的特征数据进行缺失值处理,填补步骤2.1中清空的数值;若该属性使用数值等级度量,则用该属性的有效值的众数进行插补缺失值,若该属性使用常数度量,则用该属性有效值的平均值进行插补缺失值。
步骤2.3对填补后的数据集进行归一化操作,最终得到清洗后的数据集。
进一步地,步骤3是基于PCA主成分分析方法的思想,对高维度数据集进行降维处理,保留重要特征并去除无关特征和冗余特征,提升模型训练速度。具体做法如下:
步骤3.1对样本集数据进行中心化;
步骤3.2通过计算样本土壤特征数据协方差矩阵,找到使得样本土壤特征数据映射后方差最大的单位向量ω;
步骤3.3根据选取后的特征向量对样本土壤原特征进行投影,得到样本土壤降维后的k维新特征。
具体地,步骤3.2中获得方差最大的单位向量ω的做法是:
计算样本土壤特征数据协方差矩阵的特征值和对应特征向量,将特征值按从大到小进行排序,根据排序顺序及贡献度选择前k个特征,并将其对应的k个特征向量取出。
具体地,步骤4中对类别特征的处理方法是:首先对数据集进行一次随机排列,然后估算每个类别的目标变量期望值,所用公式为:
其中
CatBoost算法是基于对称决策树的GBDT改进方法。模型参数较少,是一种支持类别型变量和高准确性的Boosting算法之一。本发明之所以选择CatBoost算法,是因为其在回归预测方面的诸多优势:
首先,CatBoost具有优秀的性能,具有高准确率、训练时间短、高鲁棒性等优势。超参数较少,便于参数调优,同时过拟合的可能性较低。
其次,CatBoost具有良好的实用性和可扩展性,支持类别处理。当样本特征为类别而非数值时CatBoost同样适用,当样本土壤中含有土壤类别等信息时也可以处理。
CatBoost对传统的GBDT模型做出了改进,将传统GBDT不能处理的类别特征转化为数值型特征。CatBoost使用目标变量统计值(target statistics,TS)处理类别型特征。
对于土壤渗透率的预测来说,不同的土壤类别会影响渗透率的数值。样本土壤的特征数据中常常包含土壤类型等类别特征,传统模型难以处理,而采用CatBoost回归模型则可以有效处理。
CatBoost是一种新兴的提升决策树算法,加入了类别特征的处理方式和特征组合处理模块。基于其产生的分类器和回归器在电力预测、短期荷载预测等领域取得了优秀的预测准确度。土壤渗透率预测问题中正存在着诸如土壤类型等具有很大挖掘价值的类别型特征,传统模型不接受土壤类型等文本类别数据作为输入,而CatBoost模型为这些类别型特征的处理提供了传统预测方式所不具备的优势;PCA主成分分析法是一种常用的数据降维手段,适合于减少特征数量,提取出影响目标的主要因素。PCA的使用允许模型考虑更多土壤渗透率影响因素的同时,保障训练效果。
将PCA与CatBoost二者结合,可以改善样本土壤中类别型特征的处理效果,也可以适应样本土壤特征维度高的特点,从而提高预测精度,解决现有技术存在的缺陷。
本发明的有益效果为:
本发明为土壤渗透率的预测提供了一种考虑因素更加全面、预测更加精确、对土壤类型等类别特征处理效果更好的方法。本发明运用PCA对渗透率的大量影响因素进行降维处理,使得模型能够考虑更多的特征;运用CatBoost回归使用目标变量统计值提升对类别特征的处理能力。本发明将PCA与CatBoost二者结合,可以改善样本土壤中类别型特征的处理效果,也可以适应样本土壤特征维度高的特点,从而提高预测精度,解决了现有技术存在的精度不高,并且样本特征中只能含有数值型数据,忽视了土壤类型对渗透率造成影响的缺陷。
附图说明
图1为本发明实施例所述方法流程图;
图2为四分位法下土壤数据的箱型图;
图3为土壤渗透率样本协方差矩阵之间的特征值排序;
图4为降维后的土壤渗透率的前三个成分与原12个特征之间关系的三维映射图;
图5是PCA-CatBoost的预测准确度效果图。
具体实施方式
本发明将PCA主成分分析法和CatBoost回归模型进行融合,形成PCA-CatBoost模型,对土壤渗透率进行预测。运用PCA对渗透率的大量影响因素进行降维处理,使得模型能够考虑更多的特征;运用CatBoost回归使用目标变量统计值提升对类别特征的处理能力,从而提高预测精度。
如图1,预测方法包括:
步骤1.数据收集。在SWIG数据集内筛选带有土壤渗透率(Ksat)数值的样本,样本特征为黏土含量(Clay)、淤泥含量(Silt)、沙含量(Sand)、土壤颗粒平均直径(dg)、土壤颗粒直径的标准偏差(sg)、土壤有机碳含量(OC)、土壤容重(Db)、土壤颗粒密度(Dp)、饱和土壤体积含水量(WC_s)、不饱和土壤体积含水量(WC_i)、湿骨料稳定性(WAS)、土壤电导率(EC)、土壤类型(Texture Class)共13个特征,一共135条样本。其中土壤类型为类别特征,可取LOAM(壤土),SANDY LOAM(砂壤土),CLAY LOAM(粘壤土),SANDY CLAY LOAM(砂质粘壤土)四类。生成样本集(F,y)=[f
表1
步骤2.数据清洗
步骤2.1对数据集进行异常值检测;
对所得的土壤数据集样本的数值特征标准化后进行KS检验,KS检验结果如表2所示:
表2
pvalue大于0.05的特征满足正态分布,满足正态分布的特征有Clay、Silt、Sg、Db、WC_s、WC_i、WAS,不满足正态分布的特征有Sand、dg、OC、Dp、EC。对检验结果为正态分布的特征,根据3σ原则检测异常值:记样本集在特征j上的标准差为σ,均值为μ。由于特征j符合正态分布,因此特征j的数值分布在(μ-3σ,μ+3σ)中的概率为0.9974。对于超出(μ-3σ,μ+3σ)的数值进行清空。经检验,符合正态分布的特征值均满足3σ原则,无异常数据,无需清空。
对非正态分布的特征用四分位法进行异常值检测,四分位法下土壤数据的箱型图如图2所示。将异常数值清空:记样本集在特征j上的上四分位数为Q1,下四分位数为Q2,则有如下最大值与最小值边界:
Max=Q1+k(Q1-Q2)
Min=Q2-k(Q1-Q2)
其中,k可以取1.5或3,本实施例取1.5。据此求解得到特征j的上下边界,超出边界的数值清空,清空后的部分结果如表3所示:
表3
其中,NAN为在四分位法异常值检测下被清空的数值,表示样本25、样本27的dg特征值出现异常,需要清除。
可以得到,部分样本清空后的整体数据如表4所示:
表4
步骤2.2对清空的数值进行缺失值填补;
然后对清空的数值进行均值插补,用该属性有效值的平均值进行插补缺失值,如表5所示:
表5
步骤2.3对填补后的数据集进行归一化操作,最终得到清洗后的数据集。
对特征向量集数据进行归一化处理。暂时剔除类别特征f
其中,f
步骤3.PCA主成分分析
对步骤2所得的12个维度的数据集进行降维处理,保留重要特征并去除无关特征和冗余特征。具体做法为:
步骤3.1.对步骤2所得的12维度的样本土壤数据进行中心化。求出样本每个维度原始数据的均值,新数据为原数据减去均值后的差,新数据的均值为0,公式如下:
其中,
步骤3.2.计算使得土壤渗透率样本点映射后方差最大的单位向量ω。基于向量映射方法,根据单位向量ω将土壤渗透率数据样本点进行映射,要求单位向量ω使得样本映射后方差最大,公式如下:
其中,Var(X)表示土壤渗透率数据样本在单位向量ω上映射后的方差;ω为单位向量;n为样本个数,本实施例中为135;m为样本的特征个数,本实施例中为12。
计算土壤渗透率样本协方差矩阵之间的特征值λ和对应特征向量,将特征值λ按从大到小进行排序,如图3所示。当选取8个特征时,贡献度达到98%
本实施例中根据排序顺序及贡献度选择前8个特征,并将其对应的8个特征向量取出,得到一组:
{(λ
其中,λ
步骤3.3将原特征投影至选取后的特征向量上,得到降维后的8维土壤渗透率特征,其中前三个成分如图4所示。
步骤4.构建CatBoost回归模型
步骤4.1将剔除的类别特征以及土壤渗透率值加入步骤3中所得的8维特征向量集中,得到10维样本集,部分数据如表6所示。将其中70%作为训练集,30%作为验证集。
表6
步骤4.2将训练集输入CatBoost模型进行训练。CatBoost对传统的GBDT模型做出了改进,将传统GBDT不能处理的类别特征转化为数值型特征。CatBoost使用目标变量统计值(target statistics,TS)处理类别型特征。具体做法为:首先对数据集进行一次随机排列,然后估算每个类别的目标变量期望值,所用公式为:
其中
采用K折交叉验证方式训练模型,将原始数据分成K组,将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样进行K轮训练,这里取K=10。
步骤4.3完成训练后,向模型输入验证集的特征数据即可获得对应的土壤渗透率预测值。实际使用时,向模型输入土壤其他特征值即可得到土壤渗透率预测结果。上述样本16、17、18通过模型预测得到的结果如下表7所示:
表7
步骤5.模型评估
完成模型训练后,需要对模型的预测效果进行评估。本实施例主要采用正确率(R
其中,y为土壤渗透率实际值,
图5是PCA-CatBoost的预测准确度效果图。为了更好的评估模型效果,将模型的预测结果与已有方法进行比较。比较结果如表8。
表8
由表7可知,对于含有类别特征的样本,PCA-CatBoost模型的正确率、均方根误差、平均绝对误差、平均绝对百分误差都优于传统的线性回归和贝叶斯岭回归方法。本发明运用PCA对渗透率的大量影响因素进行降维处理,使得模型能够考虑更多的特征;运用CatBoost回归使用目标变量统计值提升对类别特征的处理能力。将PCA与CatBoost二者结合,可以改善样本土壤中类别型特征的处理效果,也可以适应样本土壤特征维度高的特点,从而提高预测精度。
机译: 包含基于荧光素的渗透率选择性化合物的传感器,以及一种通过氧化反应通过可见检测渗透率的方法来检测渗透率的方法
机译: 基于微电阻率图像和测井电阻率的孔隙度预测的一种新的独立于孔隙率的方法
机译: 基于微电阻率图像和测井电阻率的孔隙度预测的一种新的独立于孔隙率的方法