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

Построение кривых 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()
Редактировать и запускать код