Обучающая и тестовая выборки

Предобработка данных для машинного обучения на Python

James Chapman

Curriculum Manager, DataCamp

Зачем разбивать данные?

 

  1. Снижает переобучение
  2. Оценка качества на отложенной выборке
Предобработка данных для машинного обучения на Python

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

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
   X_train y_train            
0      1.0       n
1      4.0       n
       ...
5      5.0       n
6      6.0       n

   X_test y_test
0     9.0      y
1     1.0      n
2     4.0      n
Предобработка данных для машинного обучения на Python

Стратифицированная выборка

 

  • Набор данных из $100$ объектов: $80$ класс 1 и $20$ класс 2
  • Обучающая выборка из $75$ объектов: $60$ класс 1 и $15$ класс 2
  • Тестовая выборка из $25$ объектов: $20$ класс 1 и $5$ класс 2
Предобработка данных для машинного обучения на Python

Стратифицированная выборка

X_train,X_test,y_train,y_test = train_test_split(X, y, stratify=y, random_state=42)
y["labels"].value_counts()
class1    80
class2    20
Name: labels, dtype: int64
Предобработка данных для машинного обучения на Python

Стратифицированная выборка

y_train["labels"].value_counts()
class1    60
class2    15
Name: labels, dtype: int64
y_test["labels"].value_counts()
class1    20
class2    5
Name: labels, dtype: int64
Предобработка данных для машинного обучения на Python

Давайте потренируемся!

Предобработка данных для машинного обучения на Python

Preparing Video For Download...