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
<Kurs>Vorverarbeitung für Machine Learning in Python</Kurs>Übungsanweisungen
- 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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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(____[____].____)