У меня есть данные о погоде для 6 метеостанций. Для всех этих станций у меня есть долгота и широта, а также дата и время (каждые 10 минут с начала 2016 года или около того). Я хочу использовать метод интерполяции кригинга, чтобы заполнить пропущенные значения в других местах длинных / лат (между этими станциями).
Я знаю, что у scikit-learn есть GaussianProcessRegressor, который можно использовать для кригинга. Однако я не понимаю, как я могу включить временные измерения в процесс подбора. Это вообще возможно или мне нужно подбирать отдельную модель для каждого моего времени?
X должен быть массивом функций, которые в моем случае были бы широтой и долготой (я думаю). X теперь представляет собой список из 6 пар широта / длинна (например, [52.1093, 5.181]) для каждой станции. Я взял одну дату, чтобы проверить GPR. y - список длины 6, который содержит точки росы для этих станций в это конкретное время.
Теперь проблема в том, что я действительно хочу делать кригинг для всех дат. Как мне включить эти даты? Должен ли я добавить datetime в качестве элементов в массиве X (например, [52.1093, 5.181, 2017, 1, 2, 10, 50])? Это выглядит очень странно для меня. Однако я не могу найти другого способа также моделировать временной фактор.
Мой код для установки GaussianProcessRegressor:
one_date = meteo_df[meteo_df['datetime'] ==
datetime].drop_duplicates(subset=['long', 'lat'], keep='last')
long = one_date['long']
lat = one_date['lat']
x = [[la,lo] for la, lo in zip(lat, long)]
y = list(one_date['dew_point'])
GPR = GaussianProcessRegressor(n_restarts_optimizer=10)
GPR.fit(x, y)