我刚开始学习Python,并尝试使用Sklearn库实现高斯回归。我试图按照这里的示例,为我自己的数据点进行操作。然而,当我尝试运行y_pred, std = model.predict(X_te, return_std=True)
这行代码时,遇到了以下错误:错误信息是’XA和XB必须具有相同数量的列(即特征维度)‘。
我不知道自己在哪里犯了错误,请帮助我,提前感谢。
输入和输出数据的样例如下
X_tr= [10.8204 7.67418 7.83013 8.30996 8.1567 6.94831 14.8673 7.69338 7.67702 12.7542 11.847] y_tr= [1965.21 854.386 909.126 1094.06 1012.6 607.299 2294.55 866.316 822.948 2255.32 2124.67]X_te= [7.62022 13.1943 7.76752 8.36949 7.86459 7.16032 12.7035 8.99822 6.32853 9.22345 11.4751]
X_tr, y_tr
和X_te
是训练数据点,已被重塑并具有’float64数组’类型
这是我代码的一个样本:
import sklearn.gaussian_process as gpkernel = gp.kernels.ConstantKernel(1.0, (1e-1, 1e3)) * gp.kernels.RBF(10.0, (1e-3, 1e3))model = gp.GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=10, alpha=0.1, normalize_y=True)# 数据重塑X_tr = X_tr.values.reshape(1,-1)y_tr = y_tr.values.reshape(1,-1)model.fit(X_tr, y_tr)params = model.kernel_.get_params()X_te = X_te.values.reshape(1,-1)y_pred, std = model.predict(X_te, return_std=True)
回答:
这样可以工作。我将你的数据从pandas
转换为numpy
数组,并修正了导致错误的reshape
问题。