Transformaciones de características
Estás comentando el conjunto de datos de crédito con la directora del banco. Ella sugiere que las solicitudes de préstamo más seguras suelen pedir importes de crédito intermedios. Los valores demasiado bajos o demasiado altos indican alto riesgo. Esto implica que podría existir una relación no lineal entre esta variable y la clase. Quieres poner a prueba esta hipótesis. Construirás una transformación no lineal de la característica. Después, evaluarás cuál de las dos características predice mejor la clase usando SelectKBest() y la métrica chi2(), ambos ya precargados.
Los datos están disponibles como un DataFrame de pandas llamado credit, con la clase en la columna class. También tienes precargados pandas como pd y numpy como np.
Este ejercicio forma parte del curso
Diseño de flujos de trabajo de Machine Learning en Python
Instrucciones del ejercicio
- Define una función que transforme un vector numérico considerando la diferencia absoluta de cada valor respecto a la media del vector.
- Aplica esta transformación a la columna
credit_amountdel conjunto de datos y guarda el resultado en una nueva columna llamadadiff. - Crea un selector de características
SelectKBest()para elegir una de las dos columnas,credit_amountydiff, usando la métricachi2(). - Inspecciona los resultados.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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.____()