pandas создать перекрестную проверку на основе указанных c столбцов - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть кадр данных из нескольких сотен строк, который можно сгруппировать по идентификаторам следующим образом:

df = Val1 Val2 Val3 Id
      2     2   8    b
      1     2   3    a
      5     7   8    z
      5     1   4    a
      0     9   0    c
      3     1   3    b
      2     7   5    z
      7     2   8    c
      6     5   5    d
...
      5     1   8    a
      4     9   0    z
      1     8   2    z

Я хочу использовать GridSearchCV, но с настраиваемым резюме, которое будет гарантировать, что все строки из один и тот же идентификатор всегда будет на одном наборе. Таким образом, либо все строки, если a находятся в наборе тестов, либо все они находятся в наборе поездов - и так для всех различных идентификаторов.

Я хочу иметь 5 сгибов - так что 80% идентификаторов будет go на поезд и 20% на тест. Я понимаю, что не может гарантировать, что все сгибы будут иметь одинаковое количество строк - поскольку один идентификатор может иметь больше строк, чем другой.

Каков наилучший способ сделать это?

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Как уже говорилось, вы можете предоставить cv итератором. Вы можете использовать GroupShuffleSplit () . Например, если вы используете его для разделения набора данных, вы можете поместить результат в GridSearchCV() для параметра cv.

0 голосов
/ 21 апреля 2020

Как упомянуто в документации sklearn , есть параметр "cv", в котором вы можете указать "Итеративный результат (тренировка, тестирование) в виде массивов индексов."

Do сначала проверьте документацию в будущем.

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