Побудова кривих AUC
Процедура покрокового (forward stepwise) відбору змінних задає порядок, у якому змінні оптимально додаються до набору предикторів. Щоб визначити, де зупинитися, можна побудувати криві AUC для тренувальних і тестових даних. Ці криві відображають тренувальний і тестовий AUC, обчислений для перших однієї, двох, трьох, … змінних у моделі.
У цій вправі ви навчитеся будувати ці криві AUC. Метод auc_train_test для обчислення значень AUC уже реалізовано для вас і його можна використовувати так:
auc_train, auc_test = auc_train_test(variables, target, train, test)
де variables — це набір змінних, використаних у моделі логістичної регресії, target — список із назвою цільової змінної, а train і test — це відповідно тренувальна та тестова базові таблиці.
Змінні, відсортовані за процедурою покрокового відбору, наведено у списку variables. Ви можете переглянути його в консолі. Додатково для вас визначено три порожні списки:
auc_values_train, у який на кожній ітерації додаватимуться значення тренувального AUC моделіauc_values_test, у який на кожній ітерації додаватимуться значення тестового AUC моделіvariables_evaluate, у який на кожній ітерації додаватимуться змінні, що оцінювалися
Ця вправа є частиною курсу
Вступ до прогностичної аналітики в Python
Інструкції до вправи
- Проітерайтеся змінними.
- На кожній ітерації додайте наступну змінну зі
variablesдоvariables_evaluate. - На кожній ітерації обчисліть тренувальний і тестовий AUC за допомогою методу
auc_train_test. Датафреймиtrainіtestмістять відповідно тренувальні та тестові дані. - На кожній ітерації додайте обчислені значення до
auc_values_trainіauc_values_test
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Keep track of train and test AUC values
auc_values_train = []
auc_values_test = []
variables_evaluate = []
# Iterate over the variables in variables
for v in ____:
# Add the variable
variables_evaluate.append(____)
# Calculate the train and test AUC of this set of variables
auc_train, auc_test = ____(____, ["target"], ____, ____)
# Append the values to the lists
auc_values_train.append(____)
auc_values_test.append(____)
# Make plot of the AUC values
import matplotlib.pyplot as plt
import numpy as np
x = np.array(range(0,len(auc_values_train)))
y_train = np.array(auc_values_train)
y_test = np.array(auc_values_test)
plt.xticks(x, variables, rotation = 90)
plt.plot(x,y_train)
plt.plot(x,y_test)
plt.ylim((0.6, 0.8))
plt.show()