使用Python pykrige库实现克里金(Kriging)模型
1、克里金(Kriging)模型
1.1克里金(Kriging)模型简介
现在的二代代理模型:根据一定准则加入新样本点,循环更新代理模型。
1.2克里金(Kriging)插值
克里金(kriging)插值是在有限区域内对区域化变量进行无偏最优估计的一种方法。无偏指的是估计值和实际值之差的期望等于零,最优指的是估计值和实际值的方差最小。基于这一特点使得克里金插值的效果比其他插值方法要好很多。
1.3总结
简单而言,克里金(kriging)模型就是一种插值模型,与多项式插值、线性插值、样条插值等类似,根据“采样点”上的值预测非采样点的值。只不过克里金(kriging)模型相较于其他插值方法具备一些优势(上文介绍过了)。
其对于非样本点值的预测是基于线性加权组合(linearly weighted combination)实现的。
在普通克里金(kriging)模型中,通过计算预测点附近的已知值的加权平均来获得预测值。其只有在样本值具备空间相关性时才有意义。
2、Python实现:基于pykrige模块
pykrige可以实现二维和三维的普通克里金(ordinary kriging)和通用克里金(universal kriging)模型,使用起来很方便。
但是更高维度的Kriging模型就得自己从底层原理入手了,目前网上没有找到高维克里金模型的案例。不过知乎评论区有人说“发现了在python里面kriging叫高斯过程回归,做在Python库里面找现成的高斯过程回归库就行,高斯过程回归可以在高维上面用”,后面有时间详细研究。
知乎链接:Python | Kriging算法实现 – 知乎 (zhihu.com)
关于pykrige更加详细的内容参考pykrige模块官网:pykrige.ok3d.OrdinaryKriging3D — PyKrige 1.7.1.dev10 documentation (geostat-framework.readthedocs.io)
2.1二维OrdinaryKriging
参考:克里金插值学习笔记-CSDN博客
2.1.1参数介绍:二维ordinary kriging:pykrige.ok3d.OrdinaryKriging()
pykrige.ok.OrdinaryKriging(x, y, z, variogram_model='linear', variogram_parameters=None, variogram_function=None, nlags=6, weight=False, anisotropy_scaling=1.0, anisotropy_angle=0.0, verbose=False, enable_plotting=False, enable_statistics=False, coordinates_type='euclidean', exact_values=True, pseudo_inv=False, pseudo_inv_type='pinv')
2.1.2核心方法:execute(self, style, xpoints, ypoints, mask=None, backend='vectorized', n_closest_points = None)
参数:
输出:
3、普通克里金(kriging)模型Python实现:底层原理
参考:有空再详细研究
python 普通克里金法程序实现kriging – CSDN文库
【Python进阶】克里金插值法的实现过程 – 知乎 (zhihu.com)其源码在基于 Python(gma) 的克里金 (Kriging) 法插值的主要过程 (qq.com)