Мне нужно реализовать GPR (гауссовскую регрессию процесса) в Python с использованием библиотеки scikit-learn.
Мой ввод X имеет две особенности.Ex.X = [x1, x2].И вывод - это одно измерение y = [y1]
Я хочу использовать два ядра;RBF и Matern, так что RBF использует функцию «x1», в то время как Matern использует функцию «x2».Я пробовал следующее:
import numpy as np
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import Matern as M, RBF as R
X = np.matrix([[1.,2], [3.,4], [5.,1], [6.,5],[4, 7.],[ 9,8.], [1.,2], [3.,4], [5.,1], [6.,5],[4, 7.],[ 9,8.],[1.,2], [3.,4], [5.,1], [6.,5],[4, 7.],[ 9,8.]]).T
y=[0.84147098, 0.42336002, -4.79462137, -1.67649299, 4.59890619, 7.91486597, 0.84147098, 0.42336002, -4.79462137, -1.67649299, 4.59890619, 7.91486597, 0.84147098, 0.42336002, -4.79462137, -1.67649299, 4.59890619, 7.91486597]
kernel = R(X[0]) * M(X[1])
gp = GaussianProcessRegressor(kernel=kernel)
gp.fit(X, y)
Но это выдает ошибку
ValueError: Найдены входные переменные с непоследовательным количеством выборок: [2, 18]
Я пробовал несколько способов, но не смог найти решение.Очень ценю, если кто-то может помочь.