Aprovação de Crédito
Parte da seção Aprendizado supervisionado do Journey de Machine Learning da Coddy. Lição 56 de 58.
Um banco cooperativo oferece um cartão de loja. Em cards.csv, 79 dos seus 320 titulares atrasaram pagamentos no primeiro ano:
A dívida ajuda, mas os grupos se sobrepõem. O banco avaliará o risco de cada solicitante e encaminhará qualquer pessoa acima de um limite para análise humana.
Sua regra: identificar uma proporção definida de futuros pagadores atrasados. Escolha o limiar nas linhas de validação e, em seguida, avalie-o uma única vez nas linhas de teste.
Desafio
DifícilO programa lê a revocação que o banco deseja, target. O código inicial lista as colunas e thresholds, da mais alta para a mais baixa.
- Separe um quarto estratificado para teste e, em seguida, um quarto estratificado do que restar para validação; em ambos, use
random_state=0. - Ajuste um pipeline às linhas de treinamento restantes: preencha os valores ausentes com a mediana e padronize os valores numéricos, aplique one-hot encoding a
homee use regressão logística. - Na validação, escolha o primeiro limiar cuja revocação atinja
target. - Imprima esse limiar e, em seguida, o desempenho das linhas de teste com ele, como abaixo (3 casas decimais).
Para outro banco e 0.7:
Threshold: 0.3 (validation recall 0.733)
Test: caught 15 of 21 late payers, 12 false alarms
Precision: 0.556Experimente você mesmo
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import recall_score, precision_score, confusion_matrix
cards = pd.read_csv("cards.csv")
numbers = ["age", "income_k", "debt_ratio", "years_at_job", "late_payments", "card_limit_k"]
text = ["home"]
X = cards[numbers + text]
y = cards["fell_behind"]
target = float(input())
thresholds = [0.5, 0.45, 0.4, 0.35, 0.3, 0.25, 0.2, 0.15, 0.1]
# Escreva seu código abaixo
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Aprendizado supervisionado
1Seu primeiro modelo
Aprendendo com exemplosConjuntos de treino e testeAjustar e preverAvaliar um modeloRecapitulação: classificador de sementes4Regressão logística
Previsões de sim ou nãoO limiar de decisãoPesos como evidênciasVárias classesRevisão: filtro de spam2Vizinhos Mais Próximos
Como o k-NN DecideEscolhendo kLimites de DecisãoEscalonamento para VizinhosRevisão: Vizinhos do Vinho5Avaliando Classificadores
A Matriz de ConfusãoPrecisão e RevocaçãoA Pontuação F1Classes DesbalanceadasCurvas ROCRecapitulação: Teste de Triagem8Validação Cruzada
Validação K-FoldComparando Modelos de Forma JustaBusca em GradeRevisão: Consertos de Skate11Projeto: Espécies de Pinguins
Conheça os PinguinsPrepare os DadosEscolha um ModeloAjuste o VencedorColoque o Modelo em Produção3Regressão Linear
Prevendo númerosVárias característicasMedindo errosGráficos de resíduosRevisão: aluguel de bicicletas6Árvores de Decisão
Árvores fazem perguntasLendo uma árvoreProfundidade da árvoreImportância das característicasRevisão: decisões de empréstimo9Métodos ensemble
Florestas aleatóriasPor que as florestas funcionamBoosting de gradienteRevisão: Guarda-florestal12Desafios Finais
Evolução do DiabetesAprovação de CréditoDígitos ManuscritosCancelamento de ClientesPratique por conta própria: Compilador de Python online