Zacznij terazZacznij za darmo

Tworzenie krzywych AUC

Procedura krokowej selekcji zmiennych w przód wyznacza kolejność, w jakiej zmienne są optymalnie dodawane do zbioru predyktorów. Aby zdecydować, ile zmiennych uwzględnić w modelu, możesz wyrysować krzywe AUC dla danych treningowych i testowych. Krzywe te przedstawiają wartości AUC obliczone kolejno dla pierwszej zmiennej, dwóch pierwszych, trzech pierwszych itd.

W tym ćwiczeniu nauczysz się rysować te krzywe AUC. Metoda auc_train_test służąca do obliczania wartości AUC została już zaimplementowana i można jej używać w następujący sposób:

auc_train, auc_test = auc_train_test(variables, target, train, test)

gdzie variables to zbiór zmiennych użytych w modelu regresji logistycznej, target to lista zawierająca nazwę zmiennej docelowej, a train i test to odpowiednio treningowa i testowa tabela bazowa.

Zmienne uporządkowane zgodnie z procedurą krokową w przód znajdują się na liście variables. Możesz ją przejrzeć w konsoli. Dodatkowo zdefiniowano dla ciebie trzy puste listy:

  • auc_values_train – będzie zawierać wartości AUC modelu na danych treningowych w każdej iteracji
  • auc_values_test – będzie zawierać wartości AUC modelu na danych testowych w każdej iteracji
  • variables_evaluate – będzie zawierać zmienne uwzględniane w każdej iteracji

To ćwiczenie jest częścią kursu

Wprowadzenie do analizy predykcyjnej w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Przejdź przez wszystkie zmienne w pętli.
  • W każdej iteracji dodaj kolejną zmienną z listy variables do listy variables_evaluate.
  • W każdej iteracji oblicz wartości AUC dla danych treningowych i testowych, używając metody auc_train_test. Ramki danych train i test zawierają odpowiednio dane treningowe i testowe.
  • W każdej iteracji dodaj obliczone wartości do list auc_values_train i auc_values_test.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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()
Edytuj i uruchom kod