Aan de slagGa gratis aan de slag

Opsplitsen

Om een model goed te kunnen evalueren, kun je de data opsplitsen in een train- en een testset. De trainset bevat de data waarop het model wordt gebouwd, en de testset gebruik je om het model te evalueren. Deze verdeling gebeurt willekeurig, maar als de target-incidentie laag is, kan het nodig zijn om te stratificeren: zorgen dat train- en testset hetzelfde percentage targets bevatten.

In deze oefening ga je de data stratificeren bij het opsplitsen en controleren dat train- en testset dezelfde target-incidentie hebben. De methode train_test_split is al geïmporteerd en de DataFrames X en y staan klaar in je werkruimte.

Deze oefening maakt deel uit van de cursus

Introductie tot Predictive Analytics in Python

Cursus bekijken

Oefeninstructies

  • Stratificeer deze DataFrames met de methode train_test_split. Zorg ervoor dat train- en testset even groot zijn en dezelfde target-incidentie hebben.
  • Bereken de target-incidentie van de trainset. Dit is het aantal targets in de trainset gedeeld door het aantal observaties in de trainset.
  • Bereken de target-incidentie van de testset.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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))
Code bewerken en uitvoeren