Python中输入二维特征数组的高斯过程

Python中输入二维特征数组的高斯过程,python,scikit-learn,gaussian,kernel,Python,Scikit Learn,Gaussian,Kernel,我需要使用sci工具包学习库在Python中实现GPR(高斯过程回归) 我的输入X有两个特性。 例X=[种族,体重指数]。输出是一维y=[年龄_预期] 我想用两个内核;RBF和Matren,这样RBF使用“种族”特征,而Matren使用“年龄”特征。 我尝试了以下方法: 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.,

我需要使用sci工具包学习库在Python中实现GPR(高斯过程回归)

我的输入X有两个特性。 例X=[种族,体重指数]。输出是一维y=[年龄_预期]

我想用两个内核;RBF和Matren,这样RBF使用“种族”特征,而Matren使用“年龄”特征。 我尝试了以下方法:

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=[84,  42, 47, 55,  25,  78, 52, 25, 75, 22,  45, 45, 88,  56, 77, 58,  48,  79]


kernel = R(X[0]) * M(X[1])

gp = GaussianProcessRegressor(kernel=kernel)


gp.fit(X, y)
但这会产生一个错误“ValueError:找到了样本数不一致的输入变量:[2,18]”


我尝试了几种方法,但没有找到解决办法。如果有人能帮忙,我真的很感激。

我看不到你的全部代码,但这里是我的建议

似乎你的输入是一个矩阵和一个列表。矩阵X形状是(2,18),列表y大小是18

因此,我建议将列表转换为具有明确定义的形状(1,18)的数组。运行以下命令:

y = np.reshape(y,(1,18))

gp.fit(X,y)
之前,请告诉我它是否有效:)

为什么要在X上执行
.T

这会将X的形状从(18,2)更改为(2,18),从而导致错误

以下内容适用于我(刚刚从X末尾删除了
.T
):


这不是因为OP定义内核的方式吗?
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.]])

y = [84, 42, 47, 55, 25, 78, 52, 25, 75, 22, 45, 45, 88, 56, 77, 
     58, 48, 79]

gp.fit(X, y)