Transformace příznaků
Diskutuješ s bankovním manažerem o úvěrovém datasetu. Navrhuje, že nejbezpečnější žádosti o půjčku bývají ty se středními výšemi úvěru. Příliš nízké nebo příliš vysoké hodnoty naznačují vyšší riziko. To znamená, že mezi touto proměnnou a třídou může existovat nelineární vztah. Chceš tuto hypotézu otestovat. Vytvoříš nelineární transformaci příznaku a pak pomocí SelectKBest() a metriky chi2() – obojí je předem načteno – vyhodnotíš, který ze dvou příznaků lépe předpovídá třídu.
Data jsou dostupná jako pandas DataFrame s názvem credit, přičemž třída je uložena ve sloupci class. K dispozici máš také předem načtené knihovny pandas jako pd a numpy jako np.
Toto cvičení je součástí kurzu
Designing Machine Learning Workflows in Python
Pokyny k cvičení
- Definuj funkci, která transformuje číselný vektor tak, že pro každou hodnotu vypočítá absolutní odchylku od průměrné hodnoty vektoru.
- Aplikuj tuto transformaci na sloupec
credit_amountdatasetu a výsledek ulož do nového sloupce s názvemdiff. - Vytvoř selektor příznaků
SelectKBest(), který pomocí metrikychi2()vybere jeden ze dvou sloupců:credit_amountadiff. - Prohlédni si výsledky.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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.____()