Stratifizierte Stichprobe
Du weißt jetzt, dass die Verteilung der Klassenlabels in der Spalte category_desc des volunteer-Datensatzes unausgewogen ist. Wenn du ein Modell trainieren möchtest, das category_desc vorhersagt, muss das Modell auf einer Stichprobe trainiert werden, die den gesamten Datensatz gut repräsentiert. Stratifizierte Stichprobenziehung hilft dir genau dabei!
Diese Übung ist Teil des Kurses
Vorverarbeitung für Machine Learning in Python
Anleitung zur Übung
- Erstelle ein DataFrame mit Features,
X, das alle Spalten außercategory_descenthält. - Erstelle ein DataFrame mit Labels,
y, aus der Spaltecategory_desc. - Teile
Xundyin Trainings- und Testsets auf und stelle sicher, dass die Klassenverteilung in den Labels in beiden Sets gleich ist. - Gib die Labels und ihre Häufigkeiten in
y_trainmit.value_counts()aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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(____[____].____)