Aan de slagGa gratis aan de slag

AUC-curves bouwen

De forward stepwise-variabelenselectie levert een volgorde op waarin variabelen optimaal aan de set voorspellers worden toegevoegd. Om te bepalen waar je de variabelen afkapt, kun je de train- en test-AUC-curves maken. Deze curves plotten de train- en test-AUC met de eerste, eerste twee, eerste drie, … variabelen in het model.

In deze oefening leer je deze AUC-curves te plotten. De methode auc_train_test om de AUC-waarden te berekenen is al voor je geïmplementeerd en kan als volgt worden gebruikt:

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

waarbij variables de set variabelen is die in het logistische regressiemodel worden gebruikt, target een lijst met de doelvariabele bevat, en train en test respectievelijk de train- en test-basetable zijn.

De variabelen geordend volgens de forward stepwise-procedure staan in de lijst variables. Je kunt deze in de console bekijken. Daarnaast zijn er drie lege lijsten voor je gedefinieerd:

  • auc_values_train, die de train-AUC-waarden van het model per iteratie zal bevatten
  • auc_values_test, die de test-AUC-waarden van het model per iteratie zal bevatten
  • variables_evaluate, die de variabelen zal bevatten die in elke iteratie worden geëvalueerd

Deze oefening maakt deel uit van de cursus

Introductie tot Predictive Analytics in Python

Cursus bekijken

Oefeninstructies

  • Itereer over de variabelen.
  • Voeg in elke iteratie de volgende variabele in variables toe aan variables_evaluate.
  • Bereken in elke iteratie de train- en test-AUC met de methode auc_train_test. De DataFrames train en test bevatten respectievelijk de train- en testdata.
  • Voeg in elke iteratie de berekende waarden toe aan auc_values_train en auc_values_test

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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()
Code bewerken en uitvoeren