Найти тему
Властелин машин

Разделение данных на выборки

Рассмотрим способы разделения данных на выборки для обучения, валидации и теста модели. Сначала создадим демонстрационный набор:

Наиболее популярно для разделения на выборки использовать возможности библиотеки Scikit-learn. Например, ее функция train_test_split позволяет сформировать готовые датасеты, указав размер тестовой выборки:

-2

Одного зачастую удобнее использовать порядковые номера строк, так как с такими индикаторами разбиения удобнее работать (например, для воспроизведения разбиения в библиотеке машинного обучения H2O). Это можно сделать с train_test_split:

-3

Другой способ - использование функции split библиотеки NumPy. Так как зачастую приходится создавать не только обучающую и тестовую выборки, но еще и валидационную, с ее помощью это сделать проще (для train_test_split потребовался бы вызов два раза):

-4

Чтобы функция сработала, ей помимо индексов потребуется указать номера строк - "разделителей" (также индексы перемешиваем перед этим). А вот так собираем результирующие датасеты:

-5

Для разбиения можно использовать и другие способы из sklearn (но они предполагают деление на две выборки, поэтому и придется вызывать пару раз). Вот пример с ShuffleSplit:

-6

-7

Наука
7 млн интересуются