logisticregressionanalysis.com

Многоклассовая логистическая регрессия: one-vs-rest и softmax-подход

Многоклассовая логистическая регрессия: one-vs-rest и softmax-подход

Классическая логистическая регрессия моделирует вероятность бинарного исхода, опираясь на линейный предиктор и сигмоидную функцию связи. Но рынок недвижимости редко сводится к ответам «да/нет». Возьмём инвестиционную привлекательность объекта: низкая, средняя, высокая. Или категорию ипотечного риска заёмщика. Задача остаётся классификационной, однако целевая переменная принимает более двух взаимоисключающих значений. Именно для таких ситуаций обобщают логистическую регрессию до многоклассовой версии.

Суть не меняется: модель оценивает условную вероятность принадлежности объекта к каждому из возможных классов. Итоговое решение принимается в пользу класса с максимальной вероятностью. Под капотом могут стоять разные схемы — независимые бинарные классификаторы (one‑vs‑rest) либо единая мультиномиальная модель (softmax). Обе сохраняют главное преимущество логистической регрессии — высокую интерпретируемость коэффициентов, что критически важно, когда выводы модели напрямую влияют на инвестиционные или кредитные решения.

Когда она особенно полезна

  • Классы взаимоисключающие — объект не может одновременно попасть в две категории (например, ценовой сегмент или уровень риска).
  • Необходима интерпретируемость: аналитик хочет не просто получить метку, а понять, как признаки двигают вероятности между классами (через odds ratio).
  • Важны откалиброванные вероятности, а не только предсказанный класс — скажем, для построения скоринговой карты или рейтинга инвестиционной привлекательности.
  • Модель служит понятным baseline перед тестированием более сложных ансамблей или градиентного бустинга, позволяя быстро оценить информативность признаков.

Два основных подхода: one-vs-rest и softmax

One-vs-rest: «один против всех»

Идея проста: для каждого класса K строится отдельная бинарная логистическая регрессия, где положительным считается именно этот класс, а все остальные объединяются в отрицательный. Если у нас три класса (низкий, средний, высокий риск), то обучаются три модели:

  • «низкий риск» против объединения «средний + высокий»;
  • «средний риск» против «низкий + высокий»;
  • «высокий риск» против «низкий + средний».

На этапе предсказания каждая модель возвращает оценку уверенности (обычно — значение P(y=j|x) из своей сигмоиды), и объект относится к тому классу, чья оценка оказалась максимальной. Формально это argmax по j. Главный нюанс: вероятности, полученные от разных классификаторов, не обязаны в сумме давать единицу. Они калибровались по отдельности, поэтому возможна ситуация, когда две модели выдают высокую уверенность, а разница между максимумами мала.

Softmax: единая многоклассовая модель

Softmax‑подход (мультиномиальная логистическая регрессия) обучает одну модель сразу для всех классов. Вместо набора независимых сигмоид используется обобщённая функция softmax, которая преобразует вектор «сырых» оценок (линейных комбинаций признаков для каждого класса) в распределение вероятностей, суммирующееся к 1. Оптимизация идёт через кросс‑энтропийную функцию потерь, что напрямую стимулирует модель правильно перераспределять вероятностную массу между классами, учитывая их взаимное исключение.

Такую модель часто называют мультиномиальной логистической регрессией. Выбирая один из классов в качестве базового (reference category), мы можем интерпретировать коэффициент при признаке как изменение логарифма отношения вероятности класса j к вероятности базового класса — точно так же, как интерпретируем бинарную регрессию, но для многомерного сравнения.

В чем разница между ними на практике

Критерий One‑vs‑rest Softmax
Сколько моделей обучается По одной на каждый класс Одна общая модель
Вероятности классов Не всегда согласованы; сумма может отличаться от 1 Всегда сумма равна 1, вероятности совместно откалиброваны
Интерпретация коэффициентов Проще: отдельный набор odds ratio для каждого класса «против остальных» Чуть сложнее, но логически чище: коэффициенты отражают относительные шансы по сравнению с базовым классом
Качество на тесно связанных классах Может страдать из‑за независимого обучения границ Обычно выше: модель учитывает глобальную структуру сразу
Пригодность для быстрого старта Да, особенно если уже есть бинарный пайплайн Да, но требует корректного выбора сольвера и настройки
Оптимальность для взаимоисключающих классов Работает, но не всегда оптимально Естественный выбор, предпочтительнее в большинстве случаев

Как работает one-vs-rest

Логика метода

Пусть целевая переменная принимает m значений. One‑vs‑rest превращает многоклассовую задачу в m бинарных подзадач. Для класса j строится модель gj(x), где ybin = 1, если y=j, и 0 иначе. Каждая модель выдаёт оценку вероятности pj(x) = P(y=j | x) в рамках своей бинарной постановки. Предсказание: ŷ = argmaxj pj(x). На практике pj(x) часто берут непосредственно из сигмоиды, но возможна и работа с логитами — главное, чтобы модель минимизировала log‑loss для каждого класса по отдельности.

Этот метод легко расширяет любую бинарную логистическую регрессию до многоклассовой, не требуя новых алгоритмов оптимизации. С точки зрения реализации достаточно обучить m моделей, например, с помощью sklearn.linear_model.LogisticRegression(multi_class=’ovr’).

Когда one-vs-rest удобен

  • Нужен максимально быстрый прототип: берём готовый бинарный конвейер и просто размножаем его.
  • Классы сильно несбалансированы, и для одного из них важна высокая точность выявления (recall). Можно независимо настроить порог принятия решения для этой модели, не затрагивая остальные.
  • Бизнес‑логика требует отдельного анализа каждого класса: например, мы хотим отдельную скоринговую карту «объекты с высоким инвестиционным потенциалом», а остальные категории пока не детализируем.

Слабые стороны

  • Границы решений для разных классов оптимизируются независимо, что может создавать «зоны конфликта», где два несогласованных классификатора дают высокую уверенность одновременно.
  • Вероятности не суммируются к 1, поэтому их нельзя напрямую трактовать как полноценное распределение: для инвестиционного рейтинга это может приводить к противоречивым выводам, когда объекту приписывают одновременно 60% «высокой» и 50% «средней» привлекательности.
  • Если используются регуляризованные модели, штраф применяется к каждому классификатору по‑отдельности, что не всегда оптимально с точки зрения общей дискриминации классов.

Как работает softmax

Логика метода

В мультиномиальной постановке для каждого класса k (кроме базового, обычно первого) строится линейный предиктор ηk(x) = wkTx + bk. Вероятность класса k получается применением функции softmax ко всем предикторам: P(y=k | x) = exp(ηk) / Σj exp(ηj), где η базового класса фиксируется равным 0. Таким образом, рост «сырого счёта» одного класса автоматически снижает вероятности остальных — конкуренция встроена в саму формулу.

Модель обучается путём минимизации кросс‑энтропийного лосса: -ΣNi=1 log P(yi | xi). Градиенты распространяются одновременно на все классы, что даёт согласованные оценки параметров.

Почему это важно

Когда классы образуют естественную взаимоисключающую шкалу (например, ценовые категории недвижимости или уровни риска), softmax гарантирует когерентность вероятностных выводов. Это позволяет строить на выходе модели интегральные показатели: ожидаемый риск, взвешенный рейтинг, вероятность принадлежности к высокой категории, используемую как сквозной критерий в инвестиционном меморандуме.

Сильные стороны

  • Вероятности совместно откалиброваны, сумма всегда равна 1, поэтому они прямо пригодны для построения рейтингов, скоринговых баллов или индексов.
  • Единая оптимизация чаще даёт более стабильные границы, особенно когда классы «соседствуют» на шкале признаков — например, средняя и высокая привлекательность могут плавно перетекать друг в друга при изменении площади объекта.
  • Интерпретация через odds ratio относительно базового класса сохраняется; можно оценить, во сколько раз увеличение признака повышает шанс попадания в «высокий» сегмент по сравнению с «низким».

Ограничения

  • Требуется поддержка сольверов, способных эффективно оптимизировать мультиномиальный log‑loss (lbfgs, newton‑cg, sag), иначе сходимость может замедлиться.
  • Чувствительность к качеству признаков: мультиколлинеарность, немасштабированные переменные сильнее сказываются на многомерной оптимизации.
  • При сильном дисбалансе классов модель может «уплывать» в сторону доминирующего класса. Необходимо явно задавать веса классов или использовать балансировку выборки, а также контролировать метрики по каждому классу отдельно (recall, precision).

Что выбрать: one-vs-rest или softmax

One-vs-rest выбирают, если:

  • нужен простой и быстрый baseline, особенно когда уже отлажен бинарный пайплайн;
  • классы не обязательно строго взаимоисключающие по бизнес‑смыслу — например, анализ «факторов высокого риска» может вестись обособленно, без жёсткой конкуренции с другими категориями;
  • удобно мыслить через отдельные сценарии: модель «объект бизнес‑класса» и модель «объект эконом‑класса» могут использовать разные наборы признаков, если так требует экспертная логика;
  • важна модульность и возможность изолированно обновлять одну из моделей, не переобучая всю систему.

Softmax выбирают, если:

  • классы действительно взаимоисключающие — объект может находиться только в одной ценовой категории, только в одном классе риска;
  • нужна внутренне согласованная система вероятностей, по которой затем агрегируются индексы, рейтинги или ожидаемые потери;
  • модель будет встроена в аналитический контур, где вероятности подаются в смежные системы (расчёт резервов по ипотечному портфелю, инвестиционный скоринг);
  • цель — получить единую интерпретируемую структуру: один вектор коэффициентов для сравнения любых двух классов через odds ratio.

Практический пример для недвижимости

Рассмотрим типичную задачу: классификация объектов по инвестиционной привлекательности — низкая, средняя, высокая. Целевая переменная ранжирована и взаимоисключающая. Признаки: цена за квадратный метр, удалённость от транспортных узлов, рентный потенциал, возраст дома, инфраструктура района и пр.

One-vs-rest в этом кейсе

Каждый класс моделируется отдельно:

  • модель «высокая привлекательность против всех» — выявляет, какие признаки особенно характерны для премиальных объектов;
  • модель «средняя привлекательность против всех» — задаёт границы массового сегмента;
  • модель «низкая привлекательность против всех» — оконтуривает аутсайдеров.

Такой подход удобен, если мы хотим независимо отслеживать и при необходимости настраивать порог именно для класса «высокая привлекательность». Однако при этом возможна ситуация, когда объект получит и 0,8 вероятности от модели «высокая», и 0,7 от модели «средняя» — и хотя формально максимум выигрывает «высокая», аналитик остаётся с противоречивыми сигналами.

Softmax в этом кейсе

Единая мультиномиальная модель одновременно распределяет объект по трём классам с суммой вероятностей 1. Если модель выдала (0,1; 0,6; 0,3) для низкой, средней и высокой привлекательности соответственно, это ясный сигнал: объект с высокой вероятностью относится к среднему сегменту, и только около 30% вероятностной массы лежит в высокой зоне. Такие вероятности можно агрегировать в сквозной инвестиционный индекс, например: I = 1·P(низкая) + 2·P(средняя) + 3·P(высокая), который меняется монотонно и прозрачен для инвестора.

Кроме того, интерпретация коэффициентов даёт прямое количественное описание: если коэффициент при переменной «рентный доход» для класса «высокая» относительно базового «низкая» равен 0,4, то odds ratio = exp(0,4) ≈ 1,5. Это значит, что при прочих равных увеличение рентного дохода на одну единицу повышает шансы оказаться в высокой категории против низкой в полтора раза — удобный язык для общения с заказчиком.

Типичные ошибки при использовании

  • 1. Путать многоклассовую и многометочную постановку. Если объект может одновременно относиться к нескольким классам (например, «пентхаус» и «видовая квартира»), стандартная логистическая регрессия неприменима. Здесь нужна многометочная модель или несколько бинарных регрессий с независимым предсказанием, а one‑vs‑rest с последующим argmax даст неверные выводы.
  • 2. Использовать one‑vs‑rest «по умолчанию», не сравнив с softmax. Привычный пайплайн не всегда оптимален. Если классы тесно связаны (ценовые сегменты, уровни риска), softmax часто даёт заметный прирост в macro F1 и более осмысленные вероятности.
  • 3. Игнорировать дисбаланс классов. Если 80% объектов относятся к «среднему» классу, модель может выучить константное предсказание «средний». Нужно обязательно смотреть confusion matrix, recall по редким классам, macro F1, а не только общую accuracy. При необходимости применять взвешивание классов (class_weight) или аугментацию миноритарных примеров.
  • 4. Оценивать только общую точность. Accuracy может оставаться высокой, даже если модель полностью проваливает класс «высокий риск» — а именно такие ошибки критичны в скоринге заёмщиков или отборе инвестиционных лотов. Анализируйте метрики по каждому классу отдельно.
  • 5. Не нормализовать признаки. Логистическая регрессия чувствительна к масштабу переменных: коэффициенты при нешкалированных признаках теряют сопоставимость, оптимизация может сходиться медленно или расходиться. Обязательно стандартизируйте числовые предикторы (StandardScaler) перед обучением.
  • 6. Игнорировать мультиколлинеарность. Сильная коррелированность признаков раздувает дисперсии оценок коэффициентов, особенно в softmax, где параметров K‑1 наборов. Это разрушает интерпретируемость: знаки или величины коэффициентов могут быть нестабильны. Проверяйте VIF или регуляризируйте модель (L2‑штраф).
  • 7. Не проверять калибровку вероятностей. Если полученные вероятности используются в бизнес‑расчётах (риск‑менеджмент, ценообразование), нужно строить калибровочные кривые и при необходимости применять Platt scaling или isotonic regression.

Пошаговый алгоритм внедрения

Шаг 1. Определите тип задачи

Убедитесь, что классы взаимоисключающие, и объект не может принадлежать сразу нескольким. Проверьте разметку: метки должны быть чёткими, а границы между классами — осмысленными для бизнеса.

Шаг 2. Подготовьте признаки

  • Устраните выбросы, которые могут перекосить линейный предиктор.
  • Обработайте пропуски: для недвижимости это может быть отсутствие данных о площади участка или годе постройки; используйте медианные значения или индикаторные переменные.
  • Нормализуйте числовые признаки (StandardScaler).
  • Закодируйте категориальные переменные (one‑hot encoding или target encoding с осторожной перекрёстной проверкой).

Шаг 3. Постройте baseline

Начните с одной из схем:

  • One‑vs‑rest — если нужен быстрый старт, либо уже отлажен бинарный конвейер;
  • Softmax — если классы очевидно взаимоисключающие и вы планируете в дальнейшем эксплуатацию вероятностей как единого распределения.

В обоих случаях используйте стандартную реализацию с разумным уровнем регуляризации (L2 по умолчанию).

Шаг 4. Оцените качество

Смотрите не только на accuracy. Проанализируйте:

  • confusion matrix — выявляет систематические смешения классов;
  • macro‑F1 — усреднённая по классам гармоническая мера точности и полноты, устойчива к дисбалансу;
  • recall (полнота) по каждому классу, особенно для критичных (например, «высокий риск»);
  • калибровочную диаграмму и expected calibration error, если вероятности используются в расчётах.

Шаг 5. Проверьте интерпретируемость

  • Оцените знаки и величину коэффициентов. Для softmax интерпретируйте изменения log‑odds относительно выбранного базового класса. Для one‑vs‑rest — шансы попасть в данный класс по сравнению со всеми остальными.
  • Исключите нелогичные направления влияния: если знак коэффициента противоречит интуиции (например, увеличение метража снижает вероятность попадания в «высокий» сегмент), перепроверьте данные и возможную корреляцию с другими признаками.
  • Повторите анализ на разных случайных подвыборках, чтобы убедиться в устойчивости структуры коэффициентов.

Какой метод выбрать в прикладных задачах

Задача Рекомендация
Скоринг заёмщика на несколько категорий риска (низкий, средний, высокий) Softmax: риски ранжированы и взаимоисключающие, нужна единая шкала вероятностей для расчёта резервов.
Быстрый baseline многоклассовой классификации объектов недвижимости One‑vs‑rest, если у вас уже есть готовый бинарный пайплайн; даёт быстрый снапшот качества.
Классификация объектов по инвестиционному классу (А, В, С) Softmax: классы образуют упорядоченную взаимоисключающую шкалу, вероятности агрегируются в индекс.
Отдельный анализ объектов «высокого риска» (безотносительно к другим классам) One‑vs‑rest: выделяем целевую модель «высокий риск против всех», настраиваем порог под бизнес‑задачу.
Интерпретируемый прототип для обсуждения с бизнес‑заказчиком Оба подхода дают прозрачные odds ratio; выбор зависит от того, удобнее ли заказчику мыслить категориями «против остальных» или «относительно базового класса».

Что проверять перед запуском модели в продакшн

  • Классы действительно взаимоисключающие (проверено на разметке и логике домена).
  • Метрики рассчитаны и проанализированы по каждому классу, а не только общая accuracy.
  • Вероятности адекватно откалиброваны: ожидаемая частота положительного класса совпадает с предсказанной вероятностью (проверено на отложенной выборке).
  • Модель устойчива на исторических периодах или на новых объектах (backtest или временная кросс‑валидация).
  • Признаки не содержат утечки целевой переменной (например, стоимость объекта после сделки не должна использоваться для предсказания инвестиционного класса на момент оценки).
  • Выбранная многоклассовая схема соответствует бизнес‑логике: softmax — если вероятности будут агрегироваться в рейтинг; one‑vs‑rest — если предполагается модульная эксплуатация с раздельными порогами.

Краткий чек-лист

  • [ ] Понять, многоклассовая это задача или многометочная
  • [ ] Проверить баланс классов
  • [ ] Начать с понятного baseline
  • [ ] Сравнить one‑vs‑rest и softmax (по macro‑F1, confusion matrix)
  • [ ] Оценить метрики по каждому классу отдельно
  • [ ] Проверить интерпретируемость коэффициентов (знаки, порядок величины)
  • [ ] Убедиться, что вероятности можно использовать в бизнес‑решениях (калибровка)
  • [ ] Зафиксировать пайплайн предобработки и нормализации признаков для продакшна
  • [ ] Проверить отсутствие утечки таргета

Вывод

Многоклассовая логистическая регрессия — это не одна модель, а гибкое семейство подходов к классификации с более чем двумя исходами. One‑vs‑rest подкупает простотой и позволяет мыслить отдельными бинарными сценариями — удобен для быстрого прототипирования и изолированного анализа классов. Softmax (мультиномиальная регрессия) в большинстве практических ситуаций, где классы жёстко взаимоисключающие, обеспечивает внутренне согласованную систему вероятностей и, как правило, более высокое качество на тесно связанных категориях.

Если задача прикладная — будь то скоринг заёмщиков, классификация недвижимости по инвестиционной привлекательности или оценка ипотечных рисков — стартовать логичнее с softmax. Он даёт единую вероятностную картину и прозрачную интерпретацию через odds ratio относительно базового класса. One‑vs‑rest имеет смысл держать как понятный baseline и удобный инструмент для модульного исследования отдельных классов. Главное — не забывать, что многоклассовая регрессия, как и любая модель, требует тщательной диагностики: дисбаланса, калибровки, устойчивости признаков. Без этого даже правильный метод не спасёт от ошибочных выводов.

FAQ

Чем multinomial logistic regression отличается от обычной логистической регрессии?

Обычная логистическая регрессия моделирует бинарную переменную (0/1) через сигмоиду. Multinomial logistic regression (softmax) расширяет её на случай трёх и более взаимоисключающих классов: строится вектор вероятностей, сумма которых равна 1. По сути, вместо одной сигмоиды применяется обобщённая softmax‑функция, а интерпретация коэффициентов идёт через парные сравнения классов относительно выбранного базового.

One‑vs‑rest — это всегда хуже softmax?

Не всегда. В некоторых сценариях One‑vs‑rest может работать не хуже, а иногда даже лучше в терминах macro‑F1, особенно если классы хорошо разделимы и не требуют согласованных вероятностей. Но в целом softmax даёт более «чистую» вероятностную схему и обычно предпочтительнее, когда классы тесно связаны и нужны единые границы решений.

Можно ли использовать логистическую регрессию для трёх и более классов?

Да, именно для этого существуют многоклассовые схемы: one‑vs‑rest, one‑vs‑one (хотя он реже применяется из‑за большого числа моделей) и softmax. Все они встроены в популярные библиотеки, например, в sklearn логистическая регрессия имеет параметр multi_class, принимающий значения ‘ovr’ и ‘multinomial’.

Что важнее в многоклассовой задаче: accuracy или F1?

Если классы неравномерны или один из них критически важен, accuracy может вводить в заблуждение. Лучше ориентироваться на macro‑F1 (усреднённый по классам) или на взвешенный F1 с учётом важности классов. Также обязательно смотреть confusion matrix и recall по каждому классу отдельно — особенно по редким, но значимым категориям (например, «высокий риск дефолта»).

Подходит ли логистическая регрессия для инвестиционной аналитики недвижимости?

Да, более чем. Если задача формулируется как классификация объектов по нескольким категориям — рост/стагнация/падение цен, высокая/средняя/низкая инвестиционная привлекательность, классы риска заёмщика — многоклассовая логистическая регрессия даёт интерпретируемое решение с понятными вероятностными выходами. При этом она остаётся лёгким baseline, на котором удобно проверять гипотезы о влиянии тех или иных факторов (локация, метраж, инфраструктура) на класс объекта.