Что такое скоринг и скоринговые модели

Что такое скоринг

Скоринг (scoring) — присвоение числа (score) объекту на основе его характеристик. Обычно используется для оценки риска или вероятности события.

Типы скоринга

1. Credit scoring

Оценка вероятности, что заёмщик вернёт кредит.

  • Input: доход, возраст, кредитная история, занятость.
  • Output: score от 0 до 1000 (или вероятность default).

Пример: FICO (США), НБКИ (Россия).

2. Fraud scoring

Оценка вероятности мошенничества в транзакции.

  • Input: сумма, время, гео, устройство, история.
  • Output: probability of fraud.

Решение: отклонить/одобрить транзакцию, потребовать 3DS.

3. Customer scoring (lead scoring)

Оценка качества клиента для маркетинга.

  • Input: behaviour, demographics, engagement.
  • Output: хот / тёплый / холодный лид.

Используется для приоритизации sales-команды.

4. Churn scoring

Вероятность, что пользователь уйдёт.

  • Input: recency, engagement, tenure.
  • Output: P(churn в следующие 30 дней).

Используется для retention кампаний.

Как работает

Шаг 1. Собираем features

features = [
    'age',
    'days_since_last_event',
    'total_purchases',
    'avg_order_value',
    'support_tickets',
    'channel'
]

Шаг 2. Обучаем модель

from sklearn.ensemble import GradientBoostingClassifier

X_train, y_train = prepare_data()
model = GradientBoostingClassifier()
model.fit(X_train, y_train)

Шаг 3. Получаем score

probabilities = model.predict_proba(X_test)[:, 1]
# 0.15 — низкий риск
# 0.85 — высокий риск

Шаг 4. Разбиваем на группы

def assign_bucket(p):
    if p < 0.2: return 'low'
    if p < 0.6: return 'medium'
    return 'high'

df['risk_bucket'] = df['score'].apply(assign_bucket)

Попробовать силы на подобных вопросах проще всего в тренажёре Карьерник — прямо в Telegram, без регистрации через сайт.

Популярные модели

1. Logistic Regression

Плюсы: интерпретируема, быстра, standard в credit scoring (регуляторы требуют интерпретации).

Минусы: требует feature engineering, не ловит сложные взаимодействия.

2. Decision Tree

Плюсы: легко объяснить.

Минусы: склонна к переобучению.

3. Random Forest

Плюсы: более точна, работает на любых данных.

Минусы: «чёрный ящик».

4. Gradient Boosting (XGBoost, LightGBM)

Плюсы: state-of-the-art качество.

Минусы: сложнее интерпретировать.

5. Neural Networks

Для сложных сигналов (мобильные transaction fraud). Редко в классическом скоринге.

Метрики качества

ROC-AUC

Основная метрика для скоринга. 0.5 — random, 1.0 — perfect.

  • < 0.7 — плохо.
  • 0.7–0.8 — нормально.
  • 0.8–0.9 — хорошо.
  • 0.9 — отлично.

from sklearn.metrics import roc_auc_score
auc = roc_auc_score(y_test, probabilities)

Precision / Recall

  • Precision: из отмеченных моделью «default» — сколько реально default.
  • Recall: из реальных «default» — сколько модель поймала.

Trade-off: больше recall → меньше precision.

F1 Score

Гармоническое среднее precision и recall.

Gini coefficient

Gini = 2 × AUC - 1. Стандарт в финансовой индустрии.

Типичные features

Credit scoring

  • Income, employment status.
  • Credit history length.
  • Past defaults, late payments.
  • Debt-to-income ratio.
  • Age, region.

Fraud scoring

  • Transaction amount.
  • Time of day / day of week.
  • Location vs billing address.
  • Device fingerprint.
  • Velocity (events per minute).

Churn scoring

  • Days since last active.
  • Support tickets count.
  • Average session time.
  • Change in engagement.
  • Subscription tier.

Вывод в продакшн

Скоринг обычно используется real-time:

Пользователь делает действие → extract features → model.predict() → score → decision

Требует:

  • Быстрой модели (< 100ms).
  • Feature store для мгновенного доступа к features.
  • A/B-тестов для проверки изменений.
  • Мониторинга drift-а модели.

Пройти 30–50 задач по теме за вечер можно в Telegram-тренажёре. Это то, что отличает «знаю» от «уверенно отвечу на собесе».

Ошибки

1. Data leakage

Features из «будущего» попадают в обучение → 99% AUC на train, 60% в продакшне.

2. Несбалансированность классов

Если default = 1%, модель может выучить «всегда предсказывать 0» и иметь 99% accuracy. Используйте AUC, не accuracy. Плюс class_weight balanced.

3. Concept drift

Модель, обученная 2 года назад, может перестать работать. Переобучайте регулярно.

4. Игнорировать регулятор

В банкинге модели проходят валидацию регулятора. Нельзя использовать черный ящик — нужна интерпретация.

Читайте также

FAQ

Скоринг — это ML или rule-based?

Обычно ML. Rule-based применяют для простых случаев и как fallback.

Нужна ли интерпретация?

В банкинге, страховании — обязательна. В маркетинге, internal скоринге — не всегда.

Как обновлять модель?

От раза в 3 месяца (credit) до ежедневно (fraud). Зависит от скорости изменения паттернов.

Модель упала — что делать?

Проверить drift features, переобучить, откатиться на старую версию. Плюс разбор-полёт.