首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scikit_learn中的Python - Kriging (高斯过程)

scikit_learn中的Python - Kriging (高斯过程)
EN

Stack Overflow用户
提问于 2015-05-28 01:45:48
回答 2查看 9.2K关注 0票数 8

我正在考虑使用这种方法来插值我拥有的一些3D点。作为输入,我有一个地区不同高度的气体在大气中的浓度。我拥有的数据显示为几十英尺的垂直高程的每几英尺的值,但水平分隔数百英尺(所以“列”的紧凑的值)。

假设在任何给定的时间点上,值在垂直方向上的变化明显大于在水平方向上的变化。

我想要在考虑到这个假设的情况下执行3D克里金法(作为我可以调整的参数,或者是统计定义的参数-要么/或者)。

我相信scikit学习模块可以做到这一点。如果可以,我的问题是如何创建离散单元输出?也就是说,输出到尺寸为50x50x1英尺的3D数据网格。理想情况下,我希望输出的x_location,y_location,值与这些(或类似)距离的分隔。

不幸的是,我没有太多的时间去尝试它,所以在深入研究它之前,我只是希望弄清楚这在Python中是否可行。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2015-06-03 18:42:26

是的,你绝对可以在scikit_learn中做到这一点。

事实上,可以使用各向异性协方差核是克里金/高斯过程回归的一个基本特征。

因为它在manual (下面引用)中是精确的,所以您可以自己设置协方差的参数,也可以估计它们。您可以选择让所有参数相等或全部不同。

theta0 : double array_like,可选形状为(n_features,)或(1,)的数组。自相关模型中的参数。如果还指定了thetaL和thetaU,则theta0将被视为最佳参数集的最大似然估计的起点。默认假设各向同性自相关模型,theta0 =1e-1。

票数 5
EN

Stack Overflow用户

发布于 2017-04-07 01:22:01

在2d的情况下,这样的东西应该可以工作:

代码语言:javascript
复制
import numpy as np
from sklearn.gaussian_process import GaussianProcess

x = np.arange(1,51)
y = np.arange(1,51)
X, Y = np.meshgrid(lons, lats)

points = zip(obs_x,  obs_y)
values = obs_data    # Replace with your observed data

gp = GaussianProcess(theta0=0.1, thetaL=.001, thetaU=1., nugget=0.001)
gp.fit(points, values)
XY_pairs = np.column_stack([X.flatten(), Y.flatten()])
predicted = gp.predict(XY_pairs).reshape(X.shape)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30489610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档