一种基于Spark的测井数据缺失值的分布式填补方法

专利2023-08-09  98

一种基于spark的测井数据缺失值的分布式填补方法
技术领域
:1.本发明涉及一种基于spark的测井数据缺失值的分布式填补方法,属于测井数据缺失填补领域。
背景技术
::2.勘查工作中的测井数据是岩性识别、成矿预测、数据分析和数据挖掘中的数据基础。测井技术主要是利用专业设备发射反射物、电、声波等属性探索地下地质层属性信息。专家通过分析测井数据可以进一步认识和了解地下地层结构,并利用测井数据建立较为精确的地质三维模型,然而由于井径扩大、仪器故障和人为因素等因素,实际应用中经常出现部分井段属性信息失真或缺失的情况。出于成本的考虑,人们通常采用人工生成法、交互图法、多元回归法填补缺失值测井曲线属性信息,这些方法往往存在效果较差、精度低、人工成本高、时间成本高等问题。而且在海量测井数据采集、传输、存储过程也很难完全保证数据的完整性。测井数据完整性遭到破坏,无法保证成矿预测、岩性识别、智能解释和地质三维模型等应用的精度。随着勘查大数据分布式存储与管理系统的建立。传统的缺失值的解决方案,如人工输入、删除法、统计学习法(众数、平均数、最大值、最小值等)和单机机器学习法等方法,在缺失值填补的时间成本和精度方面表现不佳。人工输入通常是根据经验进行缺失值填补,但是这样带有主观意识,并不能得出一个精确的预测值;删除法是直接剔除存在缺失值部分的数据,面对勘查测井数据维度大的情况,如果每种属性信息都存在部分缺失值,分析所有的属性信息并删除所有缺失值数据,导致损失大量的样本数据,从而丢失大量的有用信息和导致大量资源浪费;统计学习法通常是采用众数、平均数、最大值等类似的统计值进行缺失值填补,忽略了数据之间的相关性和非线性关系等问题;单机机器学习法是在单节点上进行缺失值模型训练。但是在大数据场景下,单节点内存限制成为了瓶颈,导致无法训练模型或者时间成本较高。因此,从大数据分布式存储系统中利用挖掘技术挖掘出数据之间的相关性进行测井数据缺失值填补成为亟需解决的问题,也是提供高质量、高精度而完整的测井数据的关键步骤。技术实现要素:3.本发明为解决上述现有技术中存在的问题,提供了一种基于spark的测井数据缺失值的分布式填补方法,本发明能够为测井的数据缺失问题提供一种精度更高,时间成本更低的解决方案,为测井数据得进一步研究分析与利用提供了保障。4.为实现上述目的,本发明提供的技术方案为:一种基于spark的测井数据缺失值的分布式填补方法,按如下步骤进行操作:5.(1)构建储存模块:通过在服务器中搭建mapreduce并行计算框架,并在mapreduce并行计算框架内部搭建hadoop集群,利用hadoop集群中的hdfs组件对勘查工作中的测井数据进行分布式存储;其中hdfs集群用于将数据存储在hiveonspark测井数据仓库中;6.(2)构建sparkonyarn集群:通过安装部署spark集群优化mapreduce并行计算框架,并通过yarn作为资源管理和任务调度框架;7.(3)测井数据二次预处理:通过构建索引和标准化处理对数据仓库中的测井数据进行二次预处理;8.(4)集成算法模型构建:通过搭建分布式随机森林和分布式gbt模型,对勘查工作中的测井数据缺失值进行预测;9.(5)模型参数调整:通过搭建分布式网格搜索+k折交叉验证模型和train-validation-split算法模型优化后的分布式预测填补模型,并对分布式预测填补模型的参数进行优化,使分布式预测填补模型的验证误差与测试的准确率均满足设计要求;10.(6)预测和填补测井数据缺失值:运用优化过后的分布式预测填补模型,根据其性能与效率对矿产勘查中的测井数据缺失值进行分布式预测和数据填补。11.在步骤(1)中按以下步骤进行操作:12.1)数据传输:对采集到的半结构化数据和非结构化数据采用java编程的方式实现批量数据上传,对结构化数据,使用sqoop工具实现数据的抽取,并将数据传输至hdfs组件中;13.2)数据分布式存储:通过服务器搭建hadoop集群,利用hdfs组件实现数据的分布式存储;14.3)hive数据仓库:建立基于hiveonspark构建的测井数据仓库,测井数据仓库主要由gods层、gdwd层和gdwt层组成;15.4)确定数据同步策略:根据测井数据存储形式,将同步策略分为全量表、增量表和特殊表;16.5)hive数据仓库的优化:将mapreduce并行计算框架中的计算引擎替换为spark集群,利用spark计算引擎,提高hive查询和分析数据的效率。17.在步骤(2)中安装部署经过spark集群优化的mapreduce并行计算框架,并通过yarn作为资源管理和任务调度框架,其中spark仅实现调度任务,用于使mapreduce并行计算框架实现迭代和适应实时计算的目的。18.步骤(3)中通过已安装并部署spark集群进行构建索引和标准化处理,对数据仓库中的测井数据进行二次预处理。19.步骤(4)至少包括以下步骤:20.1)利用hdfs组件分布式存储铀矿勘查测井数据,并作为缺失值填补的数据源;21.2)初始化sparksession,对铀矿勘查测井数据的非数值型属性建立索引,并对铀矿勘查测井数据进行标准化处理;22.3)使用随机抽取数据集的方式,将标准化处理后的铀矿勘查测井数据以8:2的比例划分为训练数据集和测试数据集;23.4)对测井数据的输入特征标签和输出特征标签统一建立向量索引值;将训练数据集和测试数据集的工程特征值转换为向量,并完成基本的数据处理工作;24.5)分别构建分布式随机森林模型和分布式gbt模型;对于分布式随机森林模型,使用scala语言迭代式编程,采用确定的feature向量索引和标签值,采用模型的fit算子训练数据集和transform测试数据集并构建回归预测评估模型;对于分布式gbt模型,转换分布式gbt模型的feature向量索引和标签值,使用验证集验证模型的拟合程度;25.6)将预测模型、预测数据、统计值保存到hdfs组件中;26.7)使用idea将算法模型打包,并部署到spark分布式环境中。27.所述步骤(5)是采用分布式网格搜索+k折交叉验证模型和train-validation-split算法模型对分布式预测填补模型进行优化,其中分布式网格搜索+k折交叉验证模型适用于小数据集,train-validation-split算法模型适用于海量数据集。28.所述步骤(5)按照如下步骤进行操作:29.1)初始化sparksession;从hive中读取测井数据并将其转换为dataframe数据结构,将测井数据的输入特征标签和输出特征标签以对象的形式保存在dataframe中,并将dataframe中的feature转换为vector;30.2)将测井数据组成的数据集以8:2的比例切分成traindata和testdata,将traindata的vector数据转换vector索引数据;31.3)采用迭代式编程增加超参数网格,所述超参数网格的数据格式为{模型超参数,array(超参数取值)};32.4)设置预测标签值、输出预测标签名和评价指标;33.5)对于分布式网格搜索+k折交叉验证模型,首先构建网格搜索模型,然后将pipline、evaluator和网格模型定义到分布式网格搜索+k折交叉验证模型中,使用traindata数据集训练得到分布式网格搜索+k折交叉验证模型;34.对于train-validation-split算法模型,首先定义train-validation-split算法模型,然后将定义好的pipline、evaluato定义在train-validation-split算法模型中,使用traindata数据集训练验证优化train-validation-split算法模型,并使用testdata数据集对train-validation-split算法模型进行评估;35.6)采用布式网格搜索+k折交叉验证模型和train-validation-split算法模型,对分布式预测填补模型进行优化。36.对于train-validation-split优化分布式预测填补模型,首先定义train-validation-split模型,然后将定义好的pipline、evaluato定义在train-validation-split模型中,使用traindata数据集训练验证优化train-validation-split分布式预测填补模型,并使用testdata数据集对train-validation-split优化分布式预测填补模型进行评估。37.根据上述技术方案可知,本发明提供的基于spark的测井数据缺失值的分布式填补方法通过以hdfs组件作为储存系统,对勘查工作中的测井数据实现分布式存储,作为分布式计算的信息源;安装部署spark集群,并通过yarn作为资源管理和任务调度框架;通过构建索引、标准化处理等方法对数据仓库中的测井数据进行二次预处理;通过scala语言实现的分布式随机森林和分布式gbt模型,对勘查工作中的测井数据的缺失值进行预测;通过scala语言编程实现分布式网格搜索+k折交叉验证和train-validation-split方法优化分布式预测填补模型;最后运用优化过后的模型根据其性能与效率对矿产勘查中的测井数据缺失值进行分布式预测和数据填补。与现有的技术方案相比,本技术方案具有以下优点:38.(1)因为本技术方案通过分布式预测填补模型解决了铀矿勘查工作中的海量测井数据缺失值预测填补模型出现的内存溢出现象,并且分布式随机森林和分布式gbt模型对铀矿测井数据缺失值进行分布式预测填补,所以吧方法具有更低的时间复杂度和更高的模型预测填补精度。39.(2)由于本技术方案中提出的缺失值分布式随机森林预测填补模型和缺失值分布式gbt预测填补模型对铀矿勘查中的测井数据缺失值预测填补,所以本方法突破了海量数据下单机内存限制的瓶颈,并且由于在分布式环境下,充分利用集群资源和性能和挖掘数据中潜在的知识和信息,所以本方法提高了缺失值预测填补模型的精度,降低了时间成本。40.(3)由于本技术方案中提出了分布式网格搜索+k折交叉验证和train-validation-split对比优化分布式预测填补模型,其中,分布式网格搜索+k折交叉验证适用于小数据集;train-validation-split适用于海量数据集,所以本方法提高了铀矿测井数据缺失值分布式预测填补模型的速度和精度。附图说明41.图1测井数据缺失值分布式预测填补模型的流程图;42.图2测井数据基于hive数据仓库实现分布式存储的的流程图;43.图3分布式随机森林实现的流程图;44.图4分布式gbt实现的流程图。45.具体实施方法46.下面结合附图和具体实施例对本发明作详细具体的说明,但本发明的保护范围不限于下述的实施例。47.在本发明所提供的技术方案中的一种基于spark的测井数据缺失值的分布式填补方法,如图1所示,按如下步骤进行操作:48.(1)构建储存模块:通过在服务器中搭建mapreduce并行计算框架,并在mapreduce并行计算框架内部搭建hadoop集群,利用hadoop集群中的hdfs组件对勘查工作中的测井数据进行分布式存储;其中hdfs集群用于将数据存储在hiveonspaker测井数据仓库中;hdfs对机器性能要求不高,可以部署在廉价机器上。通过给数据目录配置多个副本,提高了容错性。对勘查工作中的测井数据实现分布式存储,作为分布式计算的信息源,使得其具有高可靠性、高扩展性、高效性、高容错性;其中,步骤(1)如图2所示,具体按以下步骤进行操作:49.1)数据传输:对采集到的半结构化数据和非结构化数据采用java编程实现批量数据的上传,对于结构化数据,如测井数据,使用sqoop工具实现数据的抽取、传输到hdfs集群中;50.2)数据分布式存储:通过服务器搭建hadoop集群,利用hdfs组件实现数据的分布式存储;其中hadoop实现了一个分布式文件系统,其中一个组件是hdfs。hdfs有高容错性的特点,并且设计用来部署在低廉的硬件上;而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。51.3)hive数据仓库:建立基于hiveonspark构建的测井数据仓库,测井数据仓库主要由gods层、gdwd层和gdwt层组成;hiveonspark数据仓库中的数据是以table的形式存储在hive中的,用户处理和分析数据,使用的是hive语法规范的hql,即hivesql。但这些hql,在用户提交执行时,底层会经过hive的解析优化编译,最后以spark作业的形式来运行。52.4)数据同步策略:根据测井数据存储形式,将同步策略分为全量表、增量表和特殊表;53.5)hive数据仓库的优化:将mapreduce并行计算框架的计算引擎替换为spark集群,利用spark计算引擎,提高hive查询和分析数据的效率。54.(2)构建sparkonyarn集群:通过安装部署spark集群,并通过yarn作为资源管理和任务调度框架;且在步骤(2)中安装部署spark集群优化mapreduce并行计算框架,并通过yarn作为资源管理和任务调度框架,在建立好的分布式存储系统上可以部署spark分布式环境进行模型训练。由于mapreduce中存在无法进行迭代运行、频繁操作磁盘、无法适应于实时计算等问题,同时spark提供了更多的算子,算子之间的模型分为窄依赖和宽依赖,所以采取了spark作业调度机制代替mapreduce。具体思路是运用使用idea将构建的模型打包为jar包,然后部署到spark分布式环境进行模型训练。其中spark仅实现调度任务,用于使mapreduce实现迭代和适应实时计算的目的。55.(3)测井数据二次预处理:通过构建索引、标准化处理等方法对数据仓库中的测井数据进行二次预处理;在步骤(3)中通过已安装并部署spark集群进行构建索引和标准化处理,对数据仓库中的测井数据进行二次预处理。在此过程中主要通过通过构建索引、标准化处理等方法来完成数据的处理。56.(4)集成算法模型构建:通过搭建分布式随机森林和分布式gbt模型,如图3和图4所示,对勘查工作中的测井数据缺失值进行预测;而且在步骤(4)中至少包以下步骤:57.1)建立hdfs分布式存储铀矿勘查测井数据,并作为缺失值填补的数据源;58.2)初始化sparksession,对铀矿勘查测井数据的非数值型属性建立索引,并对铀矿勘查测井数据进行标准化处理;59.3)使用随机抽取数据集的方式,将标准化处理后的铀矿勘查测井数据以8:2的比例划分为训练数据集和测试数据集;60.4)将的输入特征标签和输出特征标签统一建立向量索引值;将训练数据集和测试数据集的工程特征值转换为向量vectortransfor,并完成基本的数据处理工作;61.5)分别构建分布式随机森林模型和分布式gbt模型;对于分布式随机森林模型,使用scala语言迭代式编程,采用确定的feature向量索引和标签值,采用模型的fit算子训练数据集和transform测试数据集并构建回归预测评估模型;对于分布式gbt模型,转换分布式gbt模型的feature向量索引和标签值,使用验证集验证模型的拟合程度;62.当验证误差的优化不超过阈值boostingstrategy时,停止训练。构建pipeline,将featureindexer和上述的预测模型及验证集模型构建机器学习工作流。63.然后,采用模型的fit算子训练数据集和transform测试数据集。并构建回归预测评估模型。64.6)将预测模型、预测数据、统计值保存到hdfs中;65.7)使用idea将算法模型打包,然后部署到spark分布式环境中。66.(5)模型参数调整:通过搭建分布式网格搜索+k折交叉验证和train-validation-split方法优化的分布式预测填补模型,对模型的参数进行优化,使模型的验证误差与测试的准确率均满足设计要求;所述步骤(5)是采用分布式网格搜索+k折交叉验证和train-validation-split优化分布式预测填补模型,其中,分布式网格搜索+k折交叉验证适用于小数据集,train-validation-split适用于海量数据集。67.1)初始化sparksession;从hive中读取测井数据并将其转换为dataframe数据结构,将测井数据的输入特征标签和输出特征标签以对象的形式保存在dataframe中,并将dataframe中的feature转换为vector;68.2)将测井数据组成的数据集以8:2的比例切分成traindata和testdata,将traindata的vector数据转换vector索引数据;69.3)采用迭代式编程增加超参数网格,所述超参数网格的数据格式为{模型超参数,array(超参数取值)};70.4)设置预测标签值、输出预测标签名和评价指标;71.5)对于分布式网格搜索+k折交叉验证模型,首先构建网格搜索模型,然后将pipline、evaluator和网格模型定义到分布式网格搜索+k折交叉验证模型中,使用traindata数据集训练得到分布式网格搜索+k折交叉验证模型;72.对于train-validation-split算法模型,首先定义train-validation-split算法模型,然后将定义好的pipline、evaluato定义在train-validation-split算法模型中,使用traindata数据集训练验证优化train-validation-split算法模型,并使用testdata数据集对train-validation-split算法模型进行评估;73.6)采用布式网格搜索+k折交叉验证模型和train-validation-split算法模型,对分布式预测填补模型进行优化。74.运用优化过后的模型根据其性能与效率对矿产勘查中的测井数据缺失值进行实际的分布式预测和填补。此外,还可以采用mse、rmse、mae、r2作为评价指标,来评估分布式预测填补模型,借此验证铀矿测井数据缺失值分布式随机森林预测填补模型和分布式gbt预测填补模型的有效性和可行性。当前第1页12当前第1页12
技术特征:
1.一种基于spark的测井数据缺失值的分布式填补方法,其特征在于按如下步骤进行操作:(1)构建储存模块:通过在服务器中搭建mapreduce并行计算框架,并在mapreduce并行计算框架内部搭建hadoop集群,利用hadoop集群中的hdfs组件对勘查工作中的测井数据进行分布式存储;其中hdfs集群用于将数据存储在hiveonspark测井数据仓库中;(2)构建sparkonyarn集群:通过安装部署spark集群优化mapreduce并行计算框架,并通过yarn作为资源管理和任务调度框架;(3)测井数据二次预处理:通过构建索引和标准化处理对数据仓库中的测井数据进行二次预处理;(4)集成算法模型构建:通过搭建分布式随机森林和分布式gbt模型,对勘查工作中的测井数据缺失值进行预测;(5)模型参数调整:通过搭建分布式网格搜索+k折交叉验证模型和train-validation-split算法模型优化后的分布式预测填补模型,并对分布式预测填补模型的参数进行优化,使分布式预测填补模型的验证误差与测试的准确率均满足设计要求;(6)预测和填补测井数据缺失值:运用优化过后的分布式预测填补模型,根据其性能与效率对矿产勘查中的测井数据缺失值进行分布式预测和数据填补。2.根据权利要求1所述的基于spark的测井数据缺失值的分布式填补方法,其特征在于:步骤(1)中按以下步骤进行操作:1)数据传输:对采集到的半结构化数据和非结构化数据采用java编程的方式实现批量数据上传,对结构化数据,使用sqoop工具实现数据的抽取,并将数据传输至hdfs组件中;2)数据分布式存储:通过服务器搭建hadoop集群,利用hdfs组件实现数据的分布式存储;3)hive数据仓库:建立基于hiveonspark构建的测井数据仓库,测井数据仓库主要由gods层、gdwd层和gdwt层组成;4)确定数据同步策略:根据测井数据存储形式,将同步策略分为全量表、增量表和特殊表;5)hive数据仓库的优化:将mapreduce并行计算框架中的计算引擎替换为spark集群,利用spark计算引擎,提高hive查询和分析数据的效率。3.根据权利要求1所述的基于spark的测井数据缺失值的分布式填补方法,其特征在于:在步骤(2)中安装部署经过spark集群优化的mapreduce并行计算框架,并通过yarn作为资源管理和任务调度框架,其中spark仅实现调度任务,用于使mapreduce并行计算框架实现迭代和适应实时计算的目的。4.根据权利要求1所述的基于spark的测井数据缺失值的分布式填补方法,其特征在于:步骤(3)中通过已安装并部署spark集群进行构建索引和标准化处理,对数据仓库中的测井数据进行二次预处理。5.根据权利要求1所述的基于spark的测井数据缺失值的分布式填补方法,其特征在于:步骤(4)至少包括以下步骤:1)利用hdfs组件分布式存储铀矿勘查测井数据,并作为缺失值填补的数据源;2)初始化sparksession,对铀矿勘查测井数据的非数值型属性建立索引,并对铀矿勘
查测井数据进行标准化处理;3)使用随机抽取数据集的方式,将标准化处理后的铀矿勘查测井数据以8:2的比例划分为训练数据集和测试数据集;4)对测井数据的输入特征标签和输出特征标签统一建立向量索引值;将训练数据集和测试数据集的工程特征值转换为向量,并完成基本的数据处理工作;5)分别构建分布式随机森林模型和分布式gbt模型;对于分布式随机森林模型,使用scala语言迭代式编程,采用确定的feature向量索引和标签值,采用模型的fit算子训练数据集和transform测试数据集并构建回归预测评估模型;对于分布式gbt模型,转换分布式gbt模型的feature向量索引和标签值,使用验证集验证模型的拟合程度;6)将预测模型、预测数据、统计值保存到hdfs组件中;7)使用idea将算法模型打包,并部署到spark分布式环境中。6.根据权利要求1所述的基于spark的测井数据缺失值的分布式填补方法,其特征在于:所述步骤(5)是采用分布式网格搜索+k折交叉验证模型和train-validation-split算法模型对分布式预测填补模型进行优化,其中分布式网格搜索+k折交叉验证模型适用于小数据集,train-validation-split算法模型适用于海量数据集。7.根据权利要求1所述的基于spark的测井数据缺失值的分布式填补方法,其特征在于:所述步骤(5)按照如下步骤进行操作:1)初始化sparksession;从hive中读取测井数据并将其转换为dataframe数据结构,将测井数据的输入特征标签和输出特征标签以对象的形式保存在dataframe中,并将dataframe中的feature转换为vector;2)将测井数据组成的数据集以8:2的比例切分成traindata和testdata,将traindata的vector数据转换vector索引数据;3)采用迭代式编程增加超参数网格,所述超参数网格的数据格式为{模型超参数,array(超参数取值)};4)设置预测标签值、输出预测标签名和评价指标;5)对于分布式网格搜索+k折交叉验证模型,首先构建网格搜索模型,然后将pipline、evaluator和网格模型定义到分布式网格搜索+k折交叉验证模型中,使用traindata数据集训练得到分布式网格搜索+k折交叉验证模型;对于train-validation-split算法模型,首先定义train-validation-split算法模型,然后将定义好的pipline、evaluato定义在train-validation-split算法模型中,使用traindata数据集训练验证优化train-validation-split算法模型,并使用testdata数据集对train-validation-split算法模型进行评估;6)采用布式网格搜索+k折交叉验证模型和train-validation-split算法模型,对分布式预测填补模型进行优化。

技术总结
本发明涉及一种基于Spark的测井数据缺失值的分布式填补方法,属于缺失数据填补领域领域。本发明提供的基于Spark的测井数据缺失值的分布式填补方法通过以HDFS作为储存系统,对勘查工作中的测井数据实现分布式存储,作为分布式计算的信息源;安装部署Spark集群,并通过Yarn作为资源管理和任务调度框架;通过构建索引、标准化处理等方法对数据仓库中的测井数据进行二次预处理;通过分布式随机森林和分布式GBT模型,对勘查工作中的测井数据的缺失值进行预测;通过分布式网格搜索+k折交叉验证和Train-Validation-Split方法优化分布式预测填补模型。本发明能够为测井的数据缺失问题提供一种精度更高,时间成本更低的解决方案,为测井数据得进一步研究分析与利用提供了保障。测井数据得进一步研究分析与利用提供了保障。测井数据得进一步研究分析与利用提供了保障。


技术研发人员:张夏林 盛必宪 李章林 翁正平 王震江 藤世磊
受保护的技术使用者:中国地质大学(武汉)
技术研发日:2022.07.19
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-4460.html

最新回复(0)