Campionamento stratificato
Ora sai che la distribuzione delle etichette di classe nella colonna category_desc dell'insieme di dati volunteer è sbilanciata. Se vuoi addestrare un modello per prevedere category_desc, devi assicurarti che il modello venga addestrato su un campione di dati rappresentativo dell’intero insieme di dati. Il campionamento stratificato è un ottimo modo per ottenere questo risultato!
Questo esercizio fa parte del corso
Preprocessing per il Machine Learning in Python
Istruzioni dell'esercizio
- Crea un DataFrame di feature,
X, con tutte le colonne trannecategory_desc. - Crea un DataFrame di etichette,
y, dalla colonnacategory_desc. - Suddividi
Xeyin set di training e test, assicurandoti che la distribuzione delle classi nelle etichette sia la stessa in entrambi i set - Stampa le etichette e i conteggi in
y_trainusando.value_counts().
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Create a DataFrame with all columns except category_desc
X = volunteer.____(____, axis=____)
# Create a category_desc labels dataset
y = ____[[____]]
# Use stratified sampling to split up the dataset according to the y dataset
X_train, X_test, y_train, y_test = ____(____, ____, ____, random_state=42)
# Print the category_desc counts from y_train
print(____[____].____)