Kom igångKom igång gratis

Särdragstransformationer

Du diskuterar kreditdatasetet med bankchefen. Hon menar att de säkraste låneansökningarna tenderar att gälla medelhöga kreditbelopp – värden som är antingen för låga eller för höga signalerar hög risk. Det kan alltså finnas ett icke-linjärt samband mellan den här variabeln och klassen. Du vill testa den hypotesen. Först konstruerar du en icke-linjär transformation av särdragen. Sedan utvärderar du vilken av de två variablerna som bäst förutsäger klassen, med hjälp av SelectKBest() och måttet chi2(), som båda har förinslästs.

Data finns tillgänglig som en pandas DataFrame kallad credit, där klassen finns i kolumnen class. Du har även pandas förinsläst som pd och numpy som np.

Den här övningen är en del av kursen

Att designa maskininlärningsflöden i Python

Visa kurs

Övningsinstruktioner

  • Definiera en funktion som transformerar en numerisk vektor genom att beräkna det absoluta avståndet för varje värde från vektorns medelvärde.
  • Använd den här transformationen på kolumnen credit_amount i datasetet och lagra resultatet i en ny kolumn kallad diff.
  • Skapa ett SelectKBest()-särdragsväljare som väljer en av de två kolumnerna, credit_amount och diff, med hjälp av måttet chi2().
  • Inspektera resultaten.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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.____()
Redigera och kör kod