Я использовал scikit-learn
функцию регрессии гауссовского процесса, чтобы сделать прогноз, который работает очень хорошо. Однако, когда я пытаюсь вычислить доверительные интервалы и построить его вместе с расчетным значением, я получаю следующую ошибку: ValueError: Input passed into argument "'y1'"is not 1-dimensional.
Отображение полной ошибки
Traceback (most recent call last):
File "<ipython-input-2-9591f875973b>", line 5, in <module>
alpha=.001, label='95% confidence interval', color='#B22222')
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 2592, in fill_between
**({"data": data} if data is not None else {}), **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\__init__.py", line 1599, in inner
return func(ax, *map(sanitize_sequence, args), **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py", line 5239, in fill_between
'is not 1-dimensional.')
ValueError: Input passed into argument "'y1'"is not 1-dimensional.
Я не поймите эту ошибку и где я ошибся. Не могли бы вы помочь мне с этим. Заранее благодарим.
это образцы входных и выходных данных, которые я получил из библиотеки GP.
X_te = [0.153353 0.0515063 0.586284 0.0339375 0.122825 0.177068]
x_tr = [7.84039 8.4702 9.65098 11.1335 11.7386 14.9299]
y_tr= [849.677 1098.86 1465.67 2016.77 2139.09 2300.13]
pred_y= [0.217954 0.0305254 0.98304 0.00793167 0.152876 0.272415]
Эти вышеупомянутые типы данных - 'Array of float 64'
Код имеет следующий вид:
confidence_interval = sigma * 1.96
# low_CIs=pred_y - confidence_interval
# Upper_CIs= pred_y + confidence_interval
# Plot the function, the prediction and the 95% confidence interval based on
plt.scatter(X_tr, y_tr, label='Train data')
plt.fill_between(X_tr[:,0],
pred_y - confidence_interval,
pred_y + confidence_interval,
alpha=.001, label='95% confidence interval', color='#B22222')
# plt.gca().set_title(gp.kernel_)
plt.plot(X_tr, pred_y, label='Prediction')
альфа-значения рассчитываются путем оптимизации гиперпараметров.