Используем ли мы только обучающие данные, используя cross_val_score? - PullRequest
0 голосов
/ 25 апреля 2019

Мы передаем cross_val_score тренировочные данные или целые данные? Я в замешательстве при использовании cross_val_score. Я знаю, что мы разделяем наши данные на обучение и тестирование и наполняем нашу модель данными обучения.

from sckit learn

Это пример в документации по sckit-learn, использующий все данные.

cross_val_score(model, iris.data, iris.target,scoring=scorer, cv=5)

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

Параметр cross_val_score используется для более точной оценки точности модели, чем при обычном разделении теста на поезд. Вы должны подать все данные внутри него, и он произведет необходимые разбиения поезда-теста.

В случае, если вам необходимо выполнить перекрестную проверку гиперпараметров, вам следует запустить вложенную перекрестную проверку, с одним внешним циклом для оценки точности модели и одним внутренним циклом, чтобы получить наилучшие параметры, которые будут разбивать набор поездов внешнего цикла в поезде и проверочные наборы. Процедура должна быть примерно такой:

Outer loop:
    Split train - test
    Inner loop:
       Fix parameters      
       Split train in train2 - validation
       Train with train2 set
       Score with validation set
       Repeat Inner loop for all parameters
   Train with train set and best parameters from inner loop
   Score with test
   Repeat outer loop until CV ends
   Return test scores

К счастью, sklearn позволяет вложить GridSearchCV в cross_val_score.

validation = GridSearchCV(estimator, param_grid)
score = cross_val_score(validation, X, y)
0 голосов
/ 25 апреля 2019

Вы передаете все тренировочные данные, и sklearn разделит их на основе параметра cv.

Вывод будет получен из тестовой части, автоматически создаваемой на каждой итерации.

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