Phê duyệt tín dụng
Thuộc phần Học có giám sát trong hành trình Machine Learning của Coddy. Bài học 56 trên 58.
Một ngân hàng hợp tác xã phát hành thẻ mua sắm. Trong cards.csv, 79 trong số 320 chủ thẻ đã chậm thanh toán trong năm đầu tiên:
Nợ giúp ích, nhưng các nhóm bị chồng lấn. Ngân hàng sẽ chấm điểm rủi ro của từng người nộp đơn và chuyển hồ sơ của những người vượt ngưỡng cho nhân viên xem xét.
Quy tắc của nó: phát hiện một tỷ lệ nhất định những người sẽ trả trễ trong tương lai. Chọn ngưỡng trên các hàng xác thực, rồi đánh giá ngưỡng đó một lần trên các hàng kiểm tra.
Thử thách
KhóChương trình đọc mức độ bao phủ (recall) mà ngân hàng mong muốn, target. Phần khởi đầu liệt kê các cột và thresholds, theo thứ tự từ cao nhất.
- Tách một phần tư dữ liệu làm test theo cách phân tầng, rồi tách một phần tư dữ liệu còn lại làm validation cũng theo cách phân tầng. Cả hai lần đều dùng
random_state=0. - Huấn luyện pipeline trên các hàng còn lại dùng để huấn luyện: điền giá trị trung vị và chuẩn hóa các số, mã hóa one-hot cho
home, rồi dùng hồi quy logistic. - Trên tập validation, chọn ngưỡng đầu tiên có độ bao phủ đạt
target. - In ngưỡng đó, rồi in kết quả trên các hàng test khi dùng ngưỡng này, như bên dưới (3 chữ số thập phân).
Với một ngân hàng khác và 0.7:
Threshold: 0.3 (validation recall 0.733)
Test: caught 15 of 21 late payers, 12 false alarms
Precision: 0.556Tự làm thử
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]
# Viết code của bạn bên dưới
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Học có giám sát
1Mô hình đầu tiên của bạn
Học từ ví dụTập huấn luyện và tập kiểm traHuấn luyện và dự đoánChấm điểm mô hìnhÔn tập: Bộ sắp xếp hạt giống2Láng giềng gần nhất
Cách k-NN đưa ra quyết địnhChọn kRanh giới quyết địnhChuẩn hóa dữ liệu cho láng giềngÔn tập: láng giềng với dữ liệu rượu vang5Đánh giá bộ phân loại
Ma trận nhầm lẫnĐộ chính xác và độ thu hồiĐiểm F1Các lớp mất cân bằngĐường cong ROCÔn tập: Bài kiểm tra sàng lọc11Dự án: Các loài chim cánh cụt
Làm quen với chim cánh cụtChuẩn bị dữ liệuChọn mô hìnhTinh chỉnh mô hình tốt nhấtĐưa mô hình vào sử dụng3Hồi quy tuyến tính
Dự đoán các con sốNhiều đặc trưngĐo lường sai sốBiểu đồ phần dưÔn tập: Thuê xe đạp6Cây quyết định
Cây đặt câu hỏiĐọc câyĐộ sâu của câyTầm quan trọng của đặc trưngÔn tập: quyết định cho vay9Các mô hình tổ hợp
Rừng ngẫu nhiênVì sao rừng hoạt động hiệu quảTăng cường độ dốcÔn tập: Người kiểm lâm rừng12Thử thách cuối cùng
Tiến triển của bệnh tiểu đườngPhê duyệt tín dụngChữ số viết tayKhách hàng rời bỏTự luyện tập: Trình biên dịch Python online