добрый день всем.Я получил следующее:
Я использую объект GaussianProcessRegressor из библиотеки Sklearn.После подгонки модели я хочу выбрать точки, используя предикторы, чтобы лучше понять, как выглядит модель.Но теперь у меня возникает проблема, что он просто принимает нулевые очки где угодно, кроме тренировочных очков.
Я сбрасываю альфа-значение Регрессора с моего начального значения 1e-5 до значения по умолчанию 1e-10, а n_restarts_optimizer с 9 до нуля по умолчанию, мое ядро является ядром Matern с почти стандартными настройками.Теперь я получаю ненулевые значения, но я не уверен, как действовать:
У меня есть следующее:
a = df_reduced.values[0:4, :]
print("a[0,0]: ", a[0,0])
gp.predict(a)
Конечно, это дает мне хороший результат (так как этопримерные данные):
a[0,0]: 150.0
Out[47]:
array([[10.4 ],
[ 9.3 ],
[78.39990234],
[78.39990234]])
Теперь я немного изменил первую особенность первого образца в его начальной окрестности:
a = df_reduced.values[1:4, :]
a[0, 0] = 151
gp.predict(a)
array([[4.85703698e-254],
[7.83999023e+001],
[7.83999023e+001]])
, и для [0, 0] = 152
array([[ 0. ],
[78.39990234],
[78.39990234]])
.Таким образом, кажется, что в большей части области функция просто равна нулю, что является своего рода проблемой, потому что я хочу использовать это для гауссовой оптимизации гиперпараметров, минимизирующей глобально.Может быть, у кого-нибудь есть подсказки, как лучше оптимизировать?
Кстати, я использую 16 функций и до сих пор подгоняю к 30 выборкам, а функция вывода принимает значения от 0 до 100. Параметры следующие (copy-paste):
matern = C(1.0)*Matern(length_scale=1.0, nu=2.5)
gp = GaussianProcessRegressor(kernel=matern)
gp.fit(df_reduced.values, Y) # df_reduced.values, because meanwhile we have overwritten X_reduced
Спасибо уже за любой вывод,
С уважением,
robTheBob86