Gestire gli outlier
Nell'ultimo esercizio hai visto come visualizzare gli outlier possa tornare utile in un colloquio di machine learning. Un altro modo pratico per gestirli è calcolare lo Z-score, che definisce come outlier i valori approssimativamente a +/-3 deviazioni standard dalla media.
In questo esercizio userai il modulo scipy.stats per calcolare lo Z-score con la funzione stats.zscore() e applicherai la funzione mstats.winsorize() per sostituire gli outlier con la tecnica chiamata Winsorizing.
Ricorda dalla video-lezione che i punti al di sopra e/o al di sotto di 1,5 volte l'IQR vanno sospettati come possibili outlier. Per l’ultimo passaggio di questo esercizio, quel valore è 2120.
I pacchetti rilevanti sono già stati importati e le colonne numeriche e categoriali di loan_data sono state sottoselezionate e salvate rispettivamente come numeric_cols e categoric_cols.

Questo esercizio fa parte del corso
Esercitarsi con le domande di colloquio di Machine Learning in Python
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Print: before dropping
print(numeric_cols.mean())
print(numeric_cols.median())
print(numeric_cols.max())
# Create index of rows to keep
idx = (np.____(stats.____(____)) < 3).all(axis=1)
# Concatenate numeric and categoric subsets
ld_out_drop = pd.concat([numeric_cols.loc[____], categoric_cols.loc[____]], axis=1)
# Print: after dropping
print(ld_out_drop.mean())
print(ld_out_drop.median())
print(ld_out_drop.max())