Transformações de atributos
Você está discutindo o conjunto de dados de crédito com a gerente do banco. Ela sugere que as solicitações de empréstimo mais seguras tendem a pedir valores de crédito na faixa intermediária. Valores muito baixos ou muito altos indicam alto risco. Isso significa que pode existir uma relação não linear entre essa variável e a classe. Você quer testar essa hipótese. Você vai construir uma transformação não linear do atributo. Em seguida, vai avaliar qual das duas variáveis é melhor para prever a classe usando SelectKBest() e a métrica chi2(), ambos já pré-carregados.
Os dados estão disponíveis como um DataFrame do pandas chamado credit, com a classe na coluna class. Você também tem pandas pré-carregado como pd e numpy como np.
Este exercício faz parte do curso
Projetando Workflows de Machine Learning em Python
Instruções do exercício
- Defina uma função que transforme um vetor numérico considerando a diferença absoluta de cada valor em relação ao valor médio do vetor.
- Aplique essa transformação à coluna
credit_amountdo conjunto de dados e armazene em uma nova coluna chamadadiff. - Crie um seletor de atributos
SelectKBest()para escolher uma das duas colunas,credit_amountediff, usando a métricachi2(). - Inspecione os resultados.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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.____()