Rozdělení dat
Aby bylo možné model správně vyhodnotit, lze data rozdělit na trénovací a testovací sadu. Trénovací sada obsahuje data, na kterých se model učí, a testovací sada slouží k jeho vyhodnocení. Toto rozdělení probíhá náhodně – pokud je ale výskyt cílové hodnoty nízký, může být nutné použít stratifikaci, tedy zajistit, aby trénovací i testovací sada obsahovaly stejné procento cílových hodnot.
V tomto cvičení rozdělíš data se stratifikací a ověříš, že trénovací i testovací sada mají stejný podíl cílových hodnot. Metoda train_test_split je již naimportována a DataFramy X a y jsou dostupné v tvém pracovním prostředí.
Toto cvičení je součástí kurzu
Introduction to Predictive Analytics in Python
Pokyny k cvičení
- Rozděl tyto DataFramy pomocí metody
train_test_splitse stratifikací. Zajisti, aby trénovací a testovací sada byly stejně velké a měly stejný podíl cílových hodnot. - Vypočítej podíl cílových hodnot v trénovací sadě. Jde o počet cílových hodnot v trénovací sadě dělený celkovým počtem pozorování v trénovací sadě.
- Vypočítej podíl cílových hodnot v testovací sadě.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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))