Menu
CoddyTech

Kredi Onayı

Coddy'nin Machine Learning Journey'sinin Denetimli Öğrenme bölümünün bir parçası. Ders 56 / 58.

Bir kooperatif bankası mağaza kartı işletiyor. cards.csv dosyasında, 320 kart sahibinden 79'u ilk yıllarında ödemelerini aksattı:

Ödemelerini düzenli yapan 241 kart sahibinin çoğunlukla 0.1 ile 0.35 arasında olan borç oranı ile ödemelerini aksatan 79 kart sahibinin 0.3 ile 0.8'e doğru kaymış borç oranının yoğunluk histogramları; geniş bir örtüşme var

Borç yardımcı olur, ancak gruplar örtüşür. Banka her başvuru sahibinin riskini puanlayacak ve eşiğin üzerindeki herkesi incelemesi için bir kişiye gönderecektir.

Kuralı: gelecekte geç ödeme yapacakların belirli bir oranını yakala. Eşiği doğrulama satırlarında seç, sonra test satırlarında bir kez değerlendir.

challenge icon

Görev

Zor

Program, bankanın istediği duyarlılık değerini, target, okur. Başlangıç kodu sütunları ve en yüksekten başlayarak thresholds değerlerini listeler.

  1. Önce verilerin dörtte birini tabakalı test kümesi olarak ayır, ardından kalanların dörtte birini tabakalı doğrulama kümesi olarak ayır; her ikisinde de random_state=0 kullan.
  2. Kalan eğitim satırlarıyla bir işlem hattı eğit: sayısal değerlerde eksikleri medyanla doldur ve ölçekle, home için one-hot kodlama yap, ardından lojistik regresyon uygula.
  3. Doğrulama kümesinde, duyarlılığı target değerine ulaşan ilk eşik değerini seç.
  4. Aşağıdaki gibi, bu eşik değerini ve ardından test satırlarında alınan sonucu yazdır (3 ondalık basamak).

Başka bir banka ve 0.7 için:

Threshold: 0.3 (validation recall 0.733)
Test: caught 15 of 21 late payers, 12 false alarms
Precision: 0.556

Kendin dene

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]

# Kodunuzu aşağıya yazın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Denetimli Öğrenme bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi