IniziaInizia gratis

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

Visualizza il corso

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_amount del dataset e salvala in una nuova colonna chiamata diff.
  • Crea un selettore di feature SelectKBest() per scegliere una tra le due colonne, credit_amount e diff, usando la metrica chi2().
  • 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.____()
Modifica ed esegui il codice