Oltre la classificazione binaria
Ovviamente, la classificazione binaria è solo un caso particolare. Il target encoding può essere applicato a qualsiasi tipo di variabile target:
- Per la classificazione binaria si usa di solito il mean target encoding
- Per la regressione la media può essere sostituita da mediana, quartili, ecc.
- Per la classificazione multi-classe con N classi creiamo N caratteristiche con la media del target per ciascuna categoria in modalità one-vs-all
La funzione mean_target_encoding() che hai creato può essere usata per qualsiasi tipo di target tra quelli sopra indicati. Applichiamola al problema di regressione usando come esempio la competizione House Prices su Kaggle.
Il tuo obiettivo è codificare la feature categorica "RoofStyle" usando il mean target encoding. I DataFrame train e test sono già disponibili nel tuo workspace.
Questo esercizio fa parte del corso
Vincere una competizione Kaggle con Python
Istruzioni dell'esercizio
- Specifica tutti i parametri mancanti nella chiamata alla funzione
mean_target_encoding(). Il nome della variabile target è"SalePrice". Imposta l'iperparametro \(\alpha\) a 10. - Ricorda che i parametri
trainetestsi aspettano i DataFrame di train e test. - I parametri
targetecategoricalsi aspettano invece i nomi della variabile target e della feature da codificare.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Create mean target encoded feature
train['RoofStyle_enc'], test['RoofStyle_enc'] = mean_target_encoding(train=train,
test=____,
target='____',
categorical='____',
alpha=____)
# Look at the encoding
print(test[['RoofStyle', 'RoofStyle_enc']].drop_duplicates())