Transformări ale caracteristicilor
Discuți setul de date despre credite cu directoarea băncii. Aceasta sugerează că cele mai sigure cereri de împrumut tind să solicite sume de credit în intervalul mediu. Valorile prea mici sau prea mari indică un risc ridicat. Prin urmare, este posibil să existe o relație neliniară între această variabilă și clasă. Vrei să testezi această ipoteză. Vei construi o transformare neliniară a caracteristicii, apoi vei evalua care dintre cele două caracteristici prezice mai bine clasa, folosind SelectKBest() și metrica chi2(), ambele preîncărcate.
Datele sunt disponibile ca DataFrame pandas numit credit, iar clasa se află în coloana class. Ai, de asemenea, preîncărcate pandas ca pd și numpy ca np.
Acest exercițiu face parte din cursul
Proiectarea fluxurilor de lucru pentru Machine Learning în Python
Instrucțiuni pentru exercițiu
- Definește o funcție care transformă un vector numeric calculând diferența absolută a fiecărei valori față de valoarea medie a vectorului.
- Aplică această transformare coloanei
credit_amountdin setul de date și stochează rezultatul într-o nouă coloană numitădiff. - Creează un selector de caracteristici
SelectKBest()care să aleagă una dintre cele două coloane,credit_amountșidiff, folosind metricachi2(). - Inspectează rezultatele.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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.____()