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
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))