Я пытаюсь реализовать GridSearchCV от scikit-learn для Гауссовой регрессии процесса (GPR). Я использую небольшой набор данных ~ 200 баллов и хотел бы использовать LOOCV в качестве оценщика производительности для моей модели. Моя настройка:
from sklearn.model_selection import *
from sklearn.ensemble import *
from sklearn.gaussian_process import *
param_grid = {
'kernel':[kernels.RBF(),kernels.Matern(length_scale=0.1)],
'n_restarts_optimizer':[5,10,20,25],
'random_state':[30]
}
res_GPR = GridSearchCV(estimator=GaussianProcessRegressor(),param_grid=param_grid,cv=LeaveOneOut(),verbose=20,n_jobs=-1)
res_GPR.fit(X,y)
, где X и y - мои точки данных и целевые значения соответственно. Я знаю, что методом оценки, возвращаемым GPR, является r ^ 2, что невозможно определить для случая LOOCV (поскольку имеется только один тестовый элемент) - это проверяется путем получения NaN для атрибута .best_score_ подобранной модели. Таким образом, я хотел бы, чтобы модель оценивалась только с помощью Root Mean Squared Error (RMSE) для каждого теста, усредненной по всем итерациям. Любая информация о том, как реализовать этот метод оценки, будет принята с благодарностью.