Использование GaussianProcessRegressor от scikit-learn вместо GaussianProcess для интерполяции Кригинга - PullRequest
0 голосов
/ 29 марта 2019

У меня есть набор данных наблюдений за температурой с различных метеорологических станций в двухмерной области. Я пытаюсь выполнить анализ Кригинга для создания набора данных с сеткой.

Я смог сделать это с помощью анализа Барнса, но потом обнаружил, что Кригинг работает лучше. В частности, я использовал ответы из Python - Kriging (процесс Гаусса) в scikit_learn и получил результаты, которые я хотел.

Проблема теперь в том, что модуль GaussianProcess в этом ответе устарел, и теперь рекомендуется использовать GaussianProcessRegressor. Теперь я должен связываться с ядрами, альфа-версиями, перезапусками и другим жаргоном машинного обучения, о котором я понятия не имею. Я просто хочу просто использовать последнюю версию 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, thetaL и thetaU в GaussianProcessRegressor?

Нужно ли использовать kernel или нет? alpha действительно совпадает с nugget?

Я просто ищу наиболее прямой путь обновления вышеуказанного кода, чтобы его можно было использовать в scikit-learn> 0.18.

...