Построение кривых AUC
Пошаговый отбор переменных методом прямого включения определяет порядок, в котором переменные оптимально добавляются в набор предикторов. Чтобы решить, на каком шаге остановиться, можно построить кривые 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. DataFrame'ы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()