Persetujuan Kredit
Termasuk bagian Pembelajaran Terawasi dalam perjalanan Machine Learning di Coddy. Pelajaran 56 dari 58.
Sebuah bank koperasi menyediakan kartu toko. Dalam cards.csv, 79 dari 320 pemegang kartu terlambat membayar pada tahun pertama mereka:
Utang membantu, tetapi kelompok-kelompok tersebut tumpang tindih. Bank akan menilai risiko setiap pemohon dan mengirim siapa pun yang nilainya melampaui ambang batas kepada seseorang untuk ditinjau.
Aturannya: tangkap bagian tertentu dari orang yang akan terlambat membayar di masa mendatang. Pilih ambang batas pada baris validasi, lalu nilai sekali pada baris pengujian.
Tantangan
SulitProgram membaca recall yang diinginkan bank, target. Kode awal mencantumkan kolom dan thresholds, dari nilai tertinggi terlebih dahulu.
- Pisahkan seperempat data untuk pengujian secara stratifikasi, lalu seperempat data yang tersisa untuk validasi secara stratifikasi. Keduanya menggunakan
random_state=0. - Latih pipeline pada baris pelatihan yang tersisa: isi nilai kosong dengan median dan skalakan angka, lakukan one-hot encoding pada
home, lalu gunakan regresi logistik. - Pada data validasi, ambil threshold pertama yang recall-nya mencapai
target. - Cetak threshold tersebut, lalu hasil pada baris pengujian dengan threshold itu, seperti di bawah ini (3 angka desimal).
Untuk bank lain dan 0.7:
Threshold: 0.3 (validation recall 0.733)
Test: caught 15 of 21 late payers, 12 false alarms
Precision: 0.556Coba sendiri
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]
# Tulis kodemu di bawah ini
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pembelajaran Terawasi
1Model Pertamamu
Belajar dari ContohData Latih dan Data UjiMelatih dan MemprediksiMenilai ModelRangkuman: Penyortir Benih4Regresi Logistik
Prediksi Ya atau TidakAmbang KeputusanBobot sebagai BuktiBeberapa KelasRangkuman: Filter Spam2Tetangga Terdekat
Cara k-NN MenentukanMemilih kBatas KeputusanPenskalaan untuk TetanggaRingkasan: Tetangga Wine5Mengukur Model Klasifikasi
Matriks KonfusiPresisi dan RecallSkor F1Kelas Tidak SeimbangKurva ROCRangkuman: Tes SkriningLatihan sendiri: Compiler Python online