Trasformazioni delle feature
Stai discutendo del dataset di credito con la direttrice della banca. Ti suggerisce che le richieste di prestito più sicure tendono a richiedere importi medi. Valori troppo bassi o troppo alti indicano rischio elevato. Questo significa che potrebbe esistere una relazione non lineare tra questa variabile e la classe. Vuoi testare questa ipotesi. Costruirai una trasformazione non lineare della feature. Poi valuterai quale delle due feature predice meglio la classe usando SelectKBest() e la metrica chi2(), entrambi già precaricati.
I dati sono disponibili come pandas DataFrame chiamato credit, con la classe nella colonna class. Hai anche precaricato pandas come pd e numpy come np.
Questo esercizio fa parte del corso
Progettare workflow di Machine Learning in Python
Istruzioni dell'esercizio
- Definisci una funzione che trasformi un vettore numerico considerando la differenza assoluta di ciascun valore dalla media del vettore.
- Applica questa trasformazione alla colonna
credit_amountdel dataset e salvala in una nuova colonna chiamatadiff. - Crea un selettore di feature
SelectKBest()per scegliere una tra le due colonne,credit_amountediff, usando la metricachi2(). - Ispeziona i risultati.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Function computing absolute difference from column mean
def abs_diff(x):
return ____(x-____)
# Apply it to the credit amount and store to new column
credit['diff'] = ____
# Create a feature selector with chi2 that picks one feature
sk = ____(chi2, ____)
# Use the selector to pick between credit_amount and diff
sk.fit(____, credit['class'])
# Inspect the results
sk.____()