На этом шаге мы рассмотрим преимущества и недостатки перекрестной проверки.
По сравнению с однократным разбиением данных на обучающий и тестовый наборы использование перекрестной проверки имеет несколько преимуществ. Во-первых, вспомним что train_test_split() выполняет случайное разбиение данных. Представьте себе, что при выполнении случайного разбиения данных нам "повезло", и все трудно классифицируемые примеры в конечном итоге попали в обучающий набор. В этом случае в тестовый набор попадут только "легкие" примеры, и правильность на тестовом наборе будет неправдоподобно высокой. И, наоборот, если нам "не повезло", все трудно классифицируемые примеры попадают в тестовый набор и поэтому мы получаем неправдоподобно низкую правильность. Однако при использовании перекрестной проверки на каждой итерации в тестовый набор, использующийся для проверки модели, попадают разные примеры. Таким образом, модель должна хорошо обобщать все примеры в наборе данных, чтобы все значения правильности (или их среднее) были высокими.
Кроме того, наличие нескольких разбиений дает определенную информацию о том, насколько наша модель чувствительна к выбору обучающего набора данных. Для набора данных iris мы увидели разброс значений правильности от 93% до 100%. Это довольно широкий диапазон значений и он позволяет нам судить о том, как модель будет работать в худшем и лучшем случае, когда мы применим ее к новым данным.
Еще одно преимущество перекрестной проверки по сравнению с однократным разбиением данных заключается в том, что мы используем наши данные более эффективно. Применяя train_test_split(), мы обычно используем 75% данных для обучения и 25% данных для оценки качества. Применяя пятиблочную перекрестную проверку, на каждой итерации для подгонки модели мы можем использовать 4/5 данных (80%). При использовании 10-блочной перекрестной проверки мы можем использовать для подгонки модели 9/10 данных (90%). Больший объем данных, как правило, приводит к построению более точных моделей.
Основной недостаток перекрестной проверки - увеличение стоимости вычислений. Поскольку теперь мы обучаем к моделей вместо одной модели, перекрестная проверка будет выполняться примерно в k раз медленнее, чем однократное разбиение данных.
На следующем шаге мы рассмотрим другие стратегии.