使用scikit-learn的GaussianProcessRegressor代替GaussianProcess进行克里格插值

时间:2019-03-28 22:49:04

标签: python scikit-learn kriging

我有一个跨2D区域的各个气象站的温度观测数据集。我正在尝试执行Kriging分析以创建网格化数据集。

我已经可以使用Barnes分析来做到这一点,但是后来发现Kriging的表现更好。具体来说,我使用了Python - Kriging (Gaussian Process) in scikit_learn的答案并获得了想要的结果。

现在的问题是,此答案中的GaussianProcess模块​​已被淘汰,现在建议使用GaussianProcessRegressor。现在,我不得不弄乱我不知道的内核,alpha,重启和其他机器学习术语。我只想简单地使用scikit-learn的最新版本来更新我的代码。

这是我的代码的外观:

from sklearn.gaussian_process import GaussianProcess

def kriging(lat_points, lon_points, values, 
            gridded_lats, gridded_lons):

    points = zip(lon_points,  lat_points)
    gp = GaussianProcess(theta0=0.1, thetaL=.001, 
                         thetaU=1., nugget=0.001)
    gp.fit(points, values)
    XY_pairs = np.column_stack([glons.flatten(), glats.flatten()])

    return gp.predict(XY_pairs).reshape(glons.shape)

现在我需要使用

from sklearn.gaussian_process import GaussianProcessRegressor 

我发现的每个主题都会涉及到有关内核和优化器重新启动的真正令人困惑的细节。我认为也许alpha选项可能与nugget选项相似。但是如何在theta0中为thetaLthetaUGaussianProcessRegressor设置值?

我是否需要使用kernelalpha确实与nugget相同吗?

我只是在寻找更新上述代码以在scikit-learn> 0.18中可用的最直接途径。

0 个答案:

没有答案