Featuretransformaties
Je bespreekt de kredietgegevensset met de bankmanager. Zij geeft aan dat de veiligste leningaanvragen doorgaans om middelhoge kredietbedragen vragen. Waarden die te laag of te hoog zijn, wijzen op hoog risico. Dit betekent dat er een niet-lineaire relatie kan bestaan tussen deze variabele en de klasse. Je wilt deze hypothese testen. Je gaat een niet-lineaire transformatie van de feature bouwen. Daarna beoordeel je welke van de twee features de klasse beter voorspelt met SelectKBest() en de chi2()-metric, die beide al zijn ingeladen.
De data is beschikbaar als een pandas DataFrame credit, met de klasse in de kolom class. Ook zijn pandas als pd en numpy als np al ingeladen.
Deze oefening maakt deel uit van de cursus
Machine Learning-workflows ontwerpen in Python
Oefeninstructies
- Definieer een functie die een numerieke vector transformeert door het absolute verschil te nemen tussen elke waarde en de gemiddelde waarde van de vector.
- Pas deze transformatie toe op de kolom
credit_amountvan de gegevensset en sla het op in een nieuwe kolomdiff. - Maak een
SelectKBest()feature selector om één van de twee kolommen,credit_amountendiff, te kiezen met dechi2()-metric. - Bekijk de resultaten.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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.____()