【算法】克里金kriging参数值预测模型

需求

搭建kriging参数值预测模型

模型中特征值2个,目标值1个,data数据集如图所示
在这里插入图片描述

克里金模型

克里金(Kriging)模型是一种基于空间相关性的插值方法,通过建立半变异函数来描述空间相关性,并利用已知观测点的数值和空间位置来预测未知点的数值。常用于地质、地理和环境科学等领域。
克里金模型的基本原理是通过建立半变异函数来描述空间相关性。半变异函数可以测量两个点之间的相似性程度,它表示两个点之间的数值差异随距离增加而变化的速率。常见的半变异函数包括指数模型、高斯模型和球模型等。

优点

  1. 精度高
    Kriging模型通过对已有数据的空间相关性进行建模,能够较准确地估计未观测点的数值,尤其适用于连续变量的插值。
  2. 不受外部影响
    Kriging模型不仅仅依赖于周围点的数值,还考虑了点之间的空间相关性。因此,它对异常值和局部波动有较好的免疫性,能够提供相对稳定的估计结果。
  3. 提供不确定性估计
    Kriging模型不仅能够给出点估计值,还能给出估计的不确定性。通过计算协方差函数,可以得到预测值的方差和置信区间,提供了对预测结果的可靠性评估。

缺点

  1. 数据需满足空间相关性
    Kriging模型的建立基于变量的空间相关性,因此,如果数据的空间相关性很弱或不存在,模型可能不适用。此外,Kriging模型对于大数据量的计算需求较高。
  2. 对模型参数的选择敏感
    Kriging模型的结果受到模型参数的影响,包括半方差函数的参数和拟合方法等。选择合适的参数值对于结果的准确性很重要,但也较为困难。
  3. 不适用于非线性插值
    Kriging模型是一种线性插值方法,对于非线性、非正态的数据拟合效果较差。在这种情况下,可能需要使用其他插值方法。
  4. 计算复杂度较高
    Kriging模型在进行预测时需要计算协方差矩阵的逆矩阵,这一过程的计算复杂度较高,尤其是当数据量较大时会增加计算的困难度。

参数值预测模型搭建

资源已经上传,可以直接下载使用,接下来对其搭建过程进行简单介绍
在这里插入图片描述

库导入

import numpy as np
import pandas as pd
from pykrige.ok import OrdinaryKriging
from scipy import stats
from sklearn.metrics import mean_squared_error,r2_score,mean_absolute_percentage_error,mean_squared_error
import matplotlib.pyplot as plt

数据集导入

由于数据集以csv形式存在,采用read_csv进行数据集的导入,代码如下:

# 从 csv 文件读取数据
data = pd.read_csv('data.csv')

数据预处理

数据预处理包括异常值的删除,以及测试集和训练集的划分,代码如下:

# 使用拉依达准则删除异常值
z_scores = stats.zscore(data)
outliers_mask = (z_scores<-3) | (z_scores>3)
outliers = data[outliers_mask.any(axis=1)]
# 删除异常值
data_cleaned = data[~outliers_mask.any(axis=1)]
# 随机保留三百组数据
data = data_cleaned.sample(n=300)

# 划分训练集测试集数据
train_data = data.iloc[:210]
x = train_data['A']
y = train_data['B']
z1 = train_data['C']
test_data = data.iloc[210:]
X = test_data['A']
Y = test_data['B']
Z1 = test_data['C']

kriging 预测

# # 进行 Kriging 插值
OK1 = OrdinaryKriging(x, y, z1, variogram_model='gaussian', verbose=False,anisotropy_scaling=0.7,nlags=5,anisotropy_angle=0.1)
# # 进行差值,返回差值结果和方差
z1_pred, ss1 = OK1.execute('points', X, Y)
# 计算预测值与真实值之间的均方误差
mse1 = mean_squared_error(Z1, z1_pred)
#MSE for z1: 0.000463147093922302
print('MSE for z1:',mse1)
error1 = r2_score(Z1, z1_pred)
MAPE=mean_absolute_percentage_error(Z1, z1_pred)
RMSE = mean_squared_error(Z1, z1_pred) ** 0.5
# r方 for z1: 0.03829658714923134
# MAPE for z1: 0.09049643963686702
# RMSE for z1: 0.021520852537069764
print('r方 for z1:',error1)
print('MAPE for z1:',MAPE)
print('RMSE for z1:',RMSE)
  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Kriging是一种空间插值技术,其目的是根据样本点的空间关系,预测空间中未知位置的值。Matlab是一种编程语言和计算工具,可用于实现各种科学计算任务。 在Matlab中,可以使用kriging函数来进行Kriging插值。该函数需要输入一些参数,例如空间坐标,观测值,残差变差函数和预测位置。然后,该函数将使用Kriging模型根据样本点的空间布局来估计未知位置的值。用户还可以使用其他函数来可视化Kriging结果,例如surf函数来创建三维表面图。 使用Kriging可用于许多应用程序,例如地球科学,环境监测和工程设计。Kriging还具有许多变体,例如指数Kriging和简化Kriging。这些变体具有不同的目的和参数,可以根据应用程序的需要进行选择和调整。 Kriging在Matlab中的实现使其成为强大的空间分析工具,可用于处理大量的复杂数据集。 MatLab提供了易于使用和可靠的接口,使得数据的分析和处理变得简单和直观。这使得Kriging成为了处理空间数据的重要工具。 ### 回答2: Kriging 是一种空间插值技术,也被称为最优插值方法或克里格插值。它是一种基于统计学和地质学原理的高级插值方法,可以用于精确预测离散数据的空间分布,并产生均匀光滑的表面。 Kriging方法可以利用自相关和协方差信息,以及多个观察点之间的距离和方向来确定未知位置的值。在内插过程中,K的选择和模型拟合参数是必要的。 MATLAB 是一款科学计算软件,它的强大性能和广泛的功能使其成为Kriging方法实施的一种非常好的工具。MATLAB提供了一些内置的函数和工具箱,可用于Kriging,例如 Spatial Statistics Toolbox 和 Mapping Toolbox。Spatial Statistics Toolbox中具有一系列专用的kriging工具,可以进行不同类型的kriging,包括简单克里格、ORD克里格、泊松曼克妙夫斯基(POM)克里格、以及 Universal Kriging等。此外,MATLAB还提供了用于计算Kriging模型的函数和工具,例如 kriging,krig,kriging_interp2 和 interp2。 要在MATLAB中实施kriging,需要进行一系列基本步骤,包括数据采集、预处理、样本变异的评估和模型参数化、控制和检验。数据采集和预处理可以使用各种方法,包括测量、遥感技术、地形数据、地下数据等。样本变异的评估可以使用半方差函数(SVF)方法和经验函数方法,并使用可利用MATLAB进行计算的校准参数和插值方法。对于模型参数化,可基于选择的kriging表面类型、样本数量和变量之间的关系来执行。最后,模型检验和验证可以使用预测精度测量、交叉验证、残差分析等方法。 总的来说,利用MATLAB实现kriging方法,最终可以得到高质量的空间结构信息和精确的表面预测结果。无论您要处理任何类型的离散数据和地理数据,MATLAB的Kriging工具都可以帮助您快速、准确地进行空间插值和预测。 ### 回答3: Kriging是一种基于空间统计学的插值方法,通常用于地质学、地理信息系统、气象学、环境科学和农业等领域中,以估算空间数据的未知值。它可以通过建立空间自相关性模型来预测未知点的值,并提供了误差估计量。 在Matlab中,kriging有多种实现方式,其中最常用的方法是基于Variogram模型的Ordinary Kriging(OK)。 Ordinary Kriging(OK)是一种插值技术,它以数据点的值和距离为基础,建立经验变异函数,并利用这个函数来计算未知点的值。通常,Ordinary Kriging估算值的精度比普通线性插值更高,并且它可以估算空间模式的自相关性。 在Matlab中,可以使用Kriging Toolbax插件来执行kriging分析。该工具箱提供了各种kriging模型和算法,可用于估算点数据和空间数据。 使用Kriging Toolbax执行kriging分析的一般步骤如下: 1.加载数据:输入已知点数据并确定待估点的坐标。 2.建立半方差点图:根据数据点之间的距离计算半方差并将其绘制为点图。 3.选取等值线:选择半方差函数的等值线,并确定插值表面的变换函数。 4.确定Krige参数:确定Krige插值方法的参数,如:方差、距离阈值、样本点数量、kriging权值等。 5.执行Krige分析:使用已选择的Krige算法预测未知点的值,并得到误差度量。 6.评估Krige结果:使用重交叉检验法(cross validation)或其他方法评估krige的结果的质量。 总的来说,kriging在Matlab中的实现非常简单,它是一个非常有用的工具,可以为许多应用场景提供可靠预测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻傻虎虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值