Параметр 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)