Внедрение GridSearchCV с оценщиком для перекрестной проверки Leave One Out - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь реализовать 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) для каждого теста, усредненной по всем итерациям. Любая информация о том, как реализовать этот метод оценки, будет принята с благодарностью.

1 Ответ

1 голос
/ 25 марта 2020

GridSearchCV включает аргумент scoring, который вы можете использовать для установки отрицательного значения RMSE:

res_GPR = GridSearchCV(estimator=GaussianProcessRegressor(),
                       param_grid=param_grid,
                       cv=LeaveOneOut(),
                       verbose=20,
                       n_jobs=-1, 
                       scoring = 'neg_root_mean_squared_error')

См. Документацию и список доступные оценки для более.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...