Zacznij terazZacznij za darmo

Podział danych

Aby właściwie ocenić model, można podzielić dane na zbiór treningowy i testowy. Zbiór treningowy zawiera dane, na których budowany jest model, a zbiór testowy służy do jego oceny. Podział jest losowy, jednak gdy częstość występowania celu jest niska, warto zastosować stratyfikację – tzn. zadbać o to, by oba zbiory zawierały równy odsetek obserwacji docelowych.

W tym ćwiczeniu podzielisz dane ze stratyfikacją i sprawdzisz, czy zbiory treningowy i testowy mają równą częstość występowania celu. Metoda train_test_split została już zaimportowana, a ramki danych X i y są dostępne w twoim środowisku pracy.

To ćwiczenie jest częścią kursu

Wprowadzenie do analizy predykcyjnej w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Podziel te ramki danych za pomocą metody train_test_split ze stratyfikacją. Upewnij się, że zbiory treningowy i testowy mają ten sam rozmiar oraz równą częstość występowania celu.
  • Oblicz częstość występowania celu w zbiorze treningowym. Jest to liczba celów w zbiorze treningowym podzielona przez liczbę obserwacji w tym zbiorze.
  • Oblicz częstość występowania celu w zbiorze testowym.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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))
Edytuj i uruchom kod