Approvazione del credito
Fa parte della sezione Apprendimento supervisionato del percorso Machine Learning di Coddy. Lezione 56 di 58.
Una banca cooperativa gestisce una carta fedeltà. In cards.csv, 79 dei suoi 320 titolari sono rimasti indietro con i pagamenti nel primo anno:
Il debito aiuta, ma i gruppi si sovrappongono. La banca valuterà il rischio di ogni richiedente e invierà a una persona per la revisione chiunque superi una soglia.
La sua regola: individuare una quota stabilita di futuri pagatori in ritardo. Scegli la soglia sulle righe di validazione, poi valutala una sola volta sulle righe di test.
Sfida
DifficileIl programma legge il richiamo richiesto dalla banca, target. Il codice iniziale elenca le colonne e le thresholds, dalla più alta alla più bassa.
- Riserva un quarto stratificato per il test, poi un quarto stratificato di ciò che rimane per la convalida; per entrambi usa
random_state=0. - Addestra una pipeline sulle righe di addestramento rimaste: sostituzione dei valori mancanti con la mediana e ridimensionamento dei numeri, codifica one-hot di
home, regressione logistica. - Sui dati di convalida, scegli la prima soglia il cui richiamo raggiunge
target. - Stampala, poi indica come si comportano le righe di test con quella soglia, come sotto (3 decimali).
Per un'altra banca e 0.7:
Threshold: 0.3 (validation recall 0.733)
Test: caught 15 of 21 late payers, 12 false alarms
Precision: 0.556Provalo tu
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]
# Scrivi il tuo codice qui sotto
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Apprendimento supervisionato
1Il tuo primo modello
Imparare dagli esempiInsiemi di addestramento e testAdattare e prevedereValutare un modelloRiepilogo: Ordinatore di semi4Regressione logistica
Previsioni sì o noLa soglia decisionaleI pesi come evidenzePiù classiRiepilogo: filtro antispam2Vicini più prossimi
Come decide k-NNScegliere kConfini decisionaliNormalizzare le scale per i viciniRiepilogo: vicini del vino5Misurare i classificatori
La matrice di confusionePrecisione e richiamoIl punteggio F1Classi sbilanciateCurve ROCRiepilogo: test di screening8Convalida incrociata
Validazione K-foldConfronto equo tra modelliRicerca a grigliaRiepilogo: riparazioni di skateboard11Progetto: specie di pinguini
Incontra i pinguiniPrepara i datiScegli un modelloOttimizza il miglioreDistribuisci il modello3Regressione lineare
Prevedere numeriPiù caratteristicheMisurare gli erroriGrafici dei residuiRiepilogo: noleggio di biciclette6Alberi decisionali
Gli alberi fanno domandeLeggere un alberoProfondità dell’alberoImportanza delle caratteristicheRiepilogo: decisioni sui prestiti9Insiemi
Foreste casualiPerché funzionano le foresteGradient BoostingRiepilogo: il guardiano della foresta12Sfide finali
Progressi del diabeteApprovazione del creditoCifre scritte a manoAbbandono dei clientiEsercitati da solo: Compilatore Python online