Partitionering
För att utvärdera en modell på ett korrekt sätt kan man dela upp datan i en tränings- och en testmängd. Träningsdata används för att bygga modellen, medan testdata används för att utvärdera den. Uppdelningen görs slumpmässigt, men när målincidens är låg kan det vara nödvändigt att stratifiera – det vill säga säkerställa att tränings- och testmängden innehåller en likvärdig andel mål.
I den här övningen partitionerar du datan med stratifiering och verifierar att tränings- och testmängden har samma målinkcidens. Metoden train_test_split har redan importerats, och DataFrames-objekten X och y finns tillgängliga i din arbetsyta.
Den här övningen är en del av kursen
Introduktion till prediktiv analys i Python
Övningsinstruktioner
- Stratifiera dessa DataFrames med metoden
train_test_split. Se till att tränings- och testmängden är lika stora och har samma målinkcidens. - Beräkna målincidens för träningsdata. Det är antalet mål i träningsdata dividerat med antalet observationer i träningsdata.
- Beräkna målincidens för testdata.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))