IniziaInizia gratis

Partizionamento

Per valutare correttamente un modello, puoi partizionare i dati in un train set e un test set. Il train set contiene i dati su cui viene costruito il modello, mentre il test set viene usato per valutarlo. Questa suddivisione è casuale, ma quando l'incidenza del target è bassa può essere necessario stratificare, cioè assicurarsi che train e test contengano la stessa percentuale di target.

In questo esercizio partizionerai i dati con stratificazione e verificherai che train e test abbiano la stessa incidenza del target. Il metodo train_test_split è già stato importato e i DataFrame X e y sono disponibili nel tuo workspace.

Questo esercizio fa parte del corso

Introduzione alla Predictive Analytics in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Stratifica questi DataFrame usando il metodo train_test_split. Assicurati che train e test abbiano la stessa dimensione e la stessa incidenza del target.
  • Calcola l'incidenza del target nel train set. È il numero di target nel train set diviso per il numero di osservazioni nel train set.
  • Calcola l'incidenza del target nel test set.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Load the partitioning module
from sklearn.model_selection import train_test_split

# Create DataFrames with variables and target
X = basetable.drop("target", 1)
y = basetable["target"]

# Carry out 50-50 partititioning with stratification
X_train, X_test, y_train, y_test = ____(X, y, test_size = ____, stratify = ____)

# Create the final train and test basetables
train = pd.concat([X_train, y_train], axis=1)
test = pd.concat([X_test, y_test], axis=1)

# Check whether train and test have same percentage targets
print(round(sum(train[____])/len(____), 2))
print(round(sum(test[____])/len(____), 2))
Modifica ed esegui il codice