الموافقة على الائتمان
جزء من قسم التعلّم الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 56 من 58.
يدير بنك تعاوني بطاقة متجر. في cards.csv، تأخر 79 من أصل 320 حاملًا للبطاقة عن سداد المدفوعات خلال عامهم الأول:
تساعد الديون، لكن المجموعات متداخلة. سيقيّم البنك مخاطر كل متقدّم، ويُحيل كل من يتجاوز حدًا معيّنًا إلى شخص لمراجعة طلبه.
قاعدتها: التقاط نسبة محددة من المتأخرين في السداد مستقبلًا. اختر العتبة باستخدام صفوف التحقق، ثم قيّمها مرة واحدة على صفوف الاختبار.
التحدي
صعبيقرأ البرنامج قيمة الاستدعاء التي يريدها البنك، target. وتعرض الشيفرة الابتدائية الأعمدة وthresholds، مرتبةً من الأعلى إلى الأدنى.
- افصل ربع البيانات للاختبار مع الحفاظ على التوزيع الطبقي، ثم ربعًا من البيانات المتبقية للتحقق بالطريقة نفسها، مع
random_state=0في الحالتين. - درّب خط معالجة على صفوف التدريب المتبقية: عوّض القيم المفقودة في الأعداد بالوسيط وطبّق عليها التحجيم، ورمّز
homeبترميز one-hot، ثم استخدم الانحدار اللوجستي. - على بيانات التحقق، خذ أول عتبة يصل عندها الاستدعاء إلى
target. - اطبعها، ثم اطبع أداء صفوف الاختبار عندها، كما هو موضح أدناه (3 منازل عشرية).
لبنك آخر ومع 0.7:
Threshold: 0.3 (validation recall 0.733)
Test: caught 15 of 21 late payers, 12 false alarms
Precision: 0.556جرّب بنفسك
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]
# اكتب الكود الخاص بك أدناه
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعلّم الخاضع للإشراف
تدرّب بنفسك: مترجم Python عبر الإنترنت