Обработка разного количества наблюдений в моменты времени

#python #gpflow

#python #gpflow

Вопрос:

Я работаю с набором данных, который содержит разное количество наблюдений в разные моменты времени. Например, при x(0) доступно 2 наблюдения, а при x (1) доступно 4 наблюдения. Есть ли принципиальный способ обработки этих данных в gpflow? Заранее большое спасибо!

Комментарии:

1. Вы имеете в виду наблюдения разных величин (например, при x (0) вы измеряете температуру и давление, при x (1) вы измеряете их, а также скорость ветра и количество осадков)? или просто несколько наблюдений (например, при x (0) вы измерили температуру дважды, при x (1) вы измерили ее четыре раза)?

2. Пожалуйста, предоставьте образец набора данных!

3. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

Предполагая, что вы говорите о наблюдениях разных величин, вы можете сделать это, используя модель «вывод как ввод», где мы добавляем дополнительный столбец к вводу, который указывает, для какого вывода мы предоставляем наблюдение. Например, ваши функциональные и целевые массивы могут выглядеть следующим образом:

 X = np.array([
    [x[0], 0],
    [x[0], 1],
    [x[1], 0],
    [x[1], 1],
    [x[1], 2],
    [x[1], 3],
])
Y = np.array([
    [y0_0],
    [y0_1],
    [y1_0],
    [y1_1],
    [y1_2],
    [y1_3],
])
 

а затем используйте Coregion ядро, см. Блокнот по корегионализации.