НачатьНачать бесплатно

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

Для корректной оценки модели данные разбивают на обучающую и тестовую выборки. Обучающая выборка используется для построения модели, а тестовая — для её оценки. Разбиение выполняется случайным образом, однако при низкой доле целевых событий может потребоваться стратификация: она гарантирует, что обе выборки содержат одинаковый процент целевых значений.

В этом упражнении вы выполните разбиение данных со стратификацией и убедитесь, что доля целевых событий в обучающей и тестовой выборках одинакова. Метод train_test_split уже импортирован, а DataFrames X и y доступны в вашем рабочем пространстве.

Это упражнение является частью курса

Введение в предиктивную аналитику на Python

Посмотреть курс

Инструкции к упражнению

  • Разбейте DataFrames на выборки с помощью метода train_test_split со стратификацией. Убедитесь, что обучающая и тестовая выборки одинакового размера и содержат равную долю целевых событий.
  • Вычислите долю целевых событий в обучающей выборке: это количество целевых значений в обучающей выборке, делённое на общее количество наблюдений в ней.
  • Вычислите долю целевых событий в тестовой выборке.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Load the partitioning module
from sklearn.model_selection import train_test_split

# Create DataFrames with variables and target
X = basetable.drop("target", 1)
y = basetable["target"]

# Carry out 50-50 partititioning with stratification
X_train, X_test, y_train, y_test = ____(X, y, test_size = ____, stratify = ____)

# Create the final train and test basetables
train = pd.concat([X_train, y_train], axis=1)
test = pd.concat([X_test, y_test], axis=1)

# Check whether train and test have same percentage targets
print(round(sum(train[____])/len(____), 2))
print(round(sum(test[____])/len(____), 2))
Редактировать и запускать код