Нарушение временно́й шкалы
Чтобы наглядно показать важность соблюдения временно́й шкалы, рассмотрим пример, в котором она нарушается: мы используем информацию из периода целевой переменной для построения предиктивных переменных.
В pandas-датафрейме basetable есть два столбца: "amount_2017" — общая сумма пожертвований за 2017 год, и "target" — равен 1, если эта сумма превышает 30, и 0 в противном случае.
Постройте модель логистической регрессии, которая использует "amount_2017" в качестве единственной предиктивной переменной для предсказания целевой переменной, и вычислите AUC.
Это упражнение является частью курса
Средний уровень прогностической аналитики на Python
Инструкции к упражнению
- Создайте датафрейм
X, содержащий предиктивную переменную, и датафреймy, содержащий целевую переменную. - Обучите модель логистической регрессии так, чтобы
yпредсказывалось на основеX. Постройте модель логистической регрессии, которая используетamount_2017в качестве единственной предиктивной переменной и предсказываетtarget. - Получите предсказания для объектов из
X. - Вычислите и выведите на экран значение AUC этой модели с помощью функции
roc_auc_score.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Select the relevant predictors and the target
X = basetable[["____"]]
y = basetable[["____"]]
# Build the logistic regression model
logreg = linear_model.LogisticRegression()
logreg.____(____, ____)
# Make predictions for X
predictions = logreg.____(____)[:,1]
# Calculate and print the AUC value
auc = ____(____, ____)
print(round(auc, 2))