Одобрение кредита
Часть раздела Обучение с учителем путешествия по Machine Learning на Coddy. Урок 56 из 58.
Кооперативный банк выпускает карту для покупок. В файле cards.csv 79 из 320 держателей просрочили платежи в течение первого года:
Долг помогает, но группы пересекаются. Банк оценит риск каждого заявителя и направит на проверку специалисту всех, чей показатель превышает пороговое значение.
Его правило: выявлять заданную долю будущих должников. Выберите порог на строках валидационной выборки, а затем оцените его один раз на строках тестовой выборки.
Задание
СложноПрограмма считывает желаемую банком полноту, target. В заготовке перечислены столбцы и thresholds в порядке убывания.
- Отдели стратифицированную тестовую четверть, затем стратифицированную валидационную четверть от оставшихся данных; для обеих используй
random_state=0. - Обучи конвейер на оставшихся строках для обучения: заполни пропуски медианой и масштабируй числовые данные, примени one-hot-кодирование к
home, используй логистическую регрессию. - На валидационной выборке возьми первый порог, при котором полнота достигает
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]
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение с учителем
1Ваша первая модель
Обучение на примерахОбучающая и тестовая выборкиОбучение и предсказаниеОценка моделиПовторение: сортировщик семян4Логистическая регрессия
Предсказания «да» или «нет»Порог принятия решенияВеса как свидетельстваНесколько классовПовторение: спам-фильтр2Метод ближайших соседей
Как работает k-NNВыбор kГраницы принятия решенийМасштабирование признаков для поиска соседейПовторение: соседи для вин5Оценка классификаторов
Матрица ошибокТочность и полнотаF1-мераНесбалансированные классыROC-кривыеПовторение: скрининговый тест8Кросс-валидация
K-блочная проверкаСправедливое сравнение моделейПоиск по сеткеПовторение: ремонт скейтбордов11Проект: виды пингвинов
Знакомство с пингвинамиПодготовка данныхВыбор моделиНастройка лучшей моделиЗапуск моделиПотренируйтесь самостоятельно: Онлайн-компилятор Python