Многоклассовая классификация
Материал из MachineLearning.
| Строка 1: | Строка 1: | ||
| - | + | {{викистатья|Многоклассовая классификация}} | |
| - | + | ||
| - | Многоклассовая классификация | + | == Многоклассовая классификация == |
| + | |||
| + | **Многоклассовая классификация** — задача [[машинное обучение|машинного обучения]], в которой требуется отнести каждый объект к одному из более чем двух классов. В отличие от [[бинарная классификация|бинарной классификации]], где есть только два возможных исхода (например, «спам» или «не спам»), в многоклассовой постановке пространство меток содержит <tex>K > 2</tex> классов: <tex>\mathcal{Y} = \{1, 2, \dots, K\}</tex>. | ||
| + | |||
| + | Эта задача встречается повсеместно: от распознавания рукописных цифр до определения жанра фильма по кадру, от классификации видов растений до маршрутизации обращений в техподдержку. | ||
| + | |||
| + | --- | ||
== Постановка задачи == | == Постановка задачи == | ||
| - | |||
| - | <tex> | + | Пусть дана обучающая выборка <tex>\{(x_i, y_i)\}_{i=1}^N</tex>, где <tex>x_i \in \mathcal{X}</tex> — признаковое описание объекта (вектор, изображение, текст), а <tex>y_i \in \{1,\dots,K\}</tex> — его истинная метка класса. Цель — построить функцию <tex>f: \mathcal{X} \to \{1,\dots,K\}</tex>, которая будет правильно предсказывать класс для новых объектов. |
| - | \ | + | |
| - | </tex> | + | |
| - | == | + | Часто модель выдаёт не жёсткое решение, а вектор вероятностей принадлежности к классам: <tex>\hat{p}_i = (\hat{p}_{i1}, \dots, \hat{p}_{iK})</tex>, где <tex>\sum_{k=1}^{K} \hat{p}_{ik} = 1</tex> и <tex>\hat{p}_{ik} \ge 0</tex>. Тогда финальный класс выбирается как <tex>\arg\max_k \hat{p}_{ik}</tex>. |
| - | + | --- | |
| - | + | ||
| - | + | == Подходы к решению == | |
| - | + | ||
| - | + | ### Прямые методы (native multiclass) | |
| - | + | ||
| - | + | Некоторые алгоритмы изначально поддерживают многоклассовую постановку: | |
| - | + | ||
| - | + | - [[деревья решений]] и ансамбли на их основе ([[случайный лес|случайные леса]], [[градиентный бустинг]]) — строят правила разделения пространства признаков сразу на несколько классов. | |
| - | + | - [[метод опорных векторов|SVM]] с многоклассовыми стратегиями (например, one-vs-rest или структурные SVM). | |
| - | - [[ | + | - [[нейронные сети]] с выходным слоем из <tex>K</tex> нейронов и активацией [[softmax]]. |
| - | - [[ | + | |
| - | + | ||
| - | == Функции потерь и | + | ### Стратегии сведения к бинарным задачам |
| + | |||
| + | Когда базовый алгоритм умеет решать только бинарные задачи, применяют стратегии композиции: | ||
| + | |||
| + | - **One-vs-Rest (OvR)**: для каждого класса обучается отдельный классификатор «этот класс против всех остальных». Итого <tex>K</tex> бинарных моделей. | ||
| + | - **One-vs-One (OvO)**: обучается <tex>\binom{K}{2}</tex> классификаторов, каждый различает пару классов. Финальный класс определяется голосованием. | ||
| + | - **Древовидные стратегии**: классы организуются в бинарное дерево, и объект последовательно проходит по узлам, пока не достигнет листа. | ||
| + | |||
| + | На практике OvR и OvO часто реализуются как «обёртки» над бинарными алгоритмами и широко используются в библиотеках типа scikit-learn. | ||
| + | |||
| + | --- | ||
| + | |||
| + | == Функции потерь и обучение == | ||
| + | |||
| + | Для нейронных сетей и многих вероятностных моделей стандартом является **кросс-энтропийная потеря** (categorical cross-entropy): | ||
| - | |||
| - | |||
<tex> | <tex> | ||
| - | L = -\frac{1}{N}\sum_{i=1}^{N} \sum_{k=1}^{K} | + | L = -\frac{1}{N}\sum_{i=1}^{N} \sum_{k=1}^{K} y_{ik} \log(\hat{p}_{ik}), |
</tex> | </tex> | ||
| - | |||
| - | + | где <tex>y_{ik}</tex> — индикаторная переменная: <tex>1</tex>, если объект <tex>i</tex> принадлежит классу <tex>k</tex>, и <tex>0</tex> иначе. | |
| - | - [[ | + | |
| - | - [[ | + | Для алгоритмов, не выдающих вероятности напрямую, используют другие критерии: например, долю ошибок (accuracy) или более устойчивые метрики при дисбалансе. |
| - | - Матрица ошибок (confusion matrix) | + | |
| + | --- | ||
| + | |||
| + | == Метрики качества == | ||
| + | |||
| + | Помимо общей [[точность (машинное обучение)|точности]] (accuracy), важно оценивать качество по каждому классу: | ||
| + | |||
| + | - [[точность (precision)|точность]] и [[полнота (recall)|полнота]] для каждого класса. | ||
| + | - [[F-мера|F1-мера]], в том числе макро- и микроусреднённые версии. | ||
| + | - Матрица ошибок (confusion matrix) — наглядно показывает, какие классы чаще всего путают. | ||
| + | |||
| + | При сильном дисбалансе классов accuracy может быть обманчиво высокой, поэтому используют взвешенные метрики и анализ по слабым классам. | ||
| + | |||
| + | --- | ||
| + | |||
| + | == Практические сложности и нюансы == | ||
| + | |||
| + | - **Дисбаланс классов**: некоторые классы представлены гораздо реже остальных. Помогают техники вроде взвешивания классов, oversampling/undersampling, focal loss. | ||
| + | - **Перекрытие классов**: объекты разных классов могут иметь схожие признаки. Здесь полезны ансамбли и более сложные модели. | ||
| + | - **Интерпретируемость**: в критических областях (медицина, финансы) важно понимать, почему модель выбрала тот или иной класс. | ||
| + | |||
| + | --- | ||
| + | |||
| + | == Примеры применения == | ||
| + | |||
| + | - Распознавание изображений: определение объекта среди десятков или сотен категорий (ImageNet). | ||
| + | - Обработка естественного языка: классификация текста по темам, тональности, языку. | ||
| + | - Медицина: дифференциальная диагностика по набору признаков. | ||
| + | |||
| + | Интересно, что задача определения фильма по кадру — это тоже многоклассовая классификация: каждый фильм выступает как отдельный класс, а модель должна выбрать наиболее вероятный из тысяч кандидатов. | ||
| - | + | --- | |
| - | + | == Современные тенденции == | |
| - | + | ||
| - | + | ||
| - | + | В последние годы развитие многоклассовой классификации тесно связано с прогрессом в глубоком обучении: | |
| - | - | + | - Большие предобученные модели (трансформеры, сверточные сети) дают сильные признаки, которые затем дообучаются под конкретную задачу. |
| - | - | + | - Методы борьбы с дисбалансом и «длинным хвостом» классов (long-tail classification) активно исследуются. |
| - | - | + | - Важным направлением остаётся интерпретируемость и надёжность предсказаний. |
| - | + | --- | |
| - | + | == Литература и источники == | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | * {{статья |автор=Hastie T., Tibshirani R., Friedman J. |заглавие=The Elements of Statistical Learning |издание=Springer Series in Statistics |год=2009 |ссылка=https://hastie.su.domains/ElemStatLearn/}} | |
| - | + | * {{книга |автор=Murphy K. P. |заглавие=Machine Learning: A Probabilistic Perspective |издательство=MIT Press |год=2012}} | |
| - | + | * {{статья |автор=Bishop C. M. |заглавие=Pattern Recognition and Machine Learning |издательство=Springer |год=2006}} | |
| - | + | * {{cite web |url=https://scikit-learn.org/stable/modules/multiclass.html |title=Multiclass and multilabel algorithms |publisher=scikit-learn documentation}} | |
| - | - | + | * {{статья |автор=He K., Zhang X., Ren S., Sun J. |заглавие=Deep Residual Learning for Image Recognition |conference=CVPR |год=2016}} |
| + | * {{статья |автор=Dosovitskiy A. et al. |заглавие=An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale |conference=ICLR |год=2021}} | ||
| - | + | --- | |
| - | - | + | |
| - | - | + | |
| - | + | {{см. также|бинарная классификация|мультилейбл-классификация|ансамблевые методы}} | |
| - | + | ||
| - | - | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
Версия 11:29, 30 июня 2026
Содержание |
Многоклассовая классификация
- Многоклассовая классификация** — задача машинного обучения, в которой требуется отнести каждый объект к одному из более чем двух классов. В отличие от бинарной классификации, где есть только два возможных исхода (например, «спам» или «не спам»), в многоклассовой постановке пространство меток содержит
классов:
.
- Многоклассовая классификация** — задача машинного обучения, в которой требуется отнести каждый объект к одному из более чем двух классов. В отличие от бинарной классификации, где есть только два возможных исхода (например, «спам» или «не спам»), в многоклассовой постановке пространство меток содержит
Эта задача встречается повсеместно: от распознавания рукописных цифр до определения жанра фильма по кадру, от классификации видов растений до маршрутизации обращений в техподдержку.
---
Постановка задачи
Пусть дана обучающая выборка , где
— признаковое описание объекта (вектор, изображение, текст), а
— его истинная метка класса. Цель — построить функцию
, которая будет правильно предсказывать класс для новых объектов.
Часто модель выдаёт не жёсткое решение, а вектор вероятностей принадлежности к классам: , где
и
. Тогда финальный класс выбирается как
.
---
Подходы к решению
- Прямые методы (native multiclass)
Некоторые алгоритмы изначально поддерживают многоклассовую постановку:
- деревья решений и ансамбли на их основе (случайные леса, градиентный бустинг) — строят правила разделения пространства признаков сразу на несколько классов.
- SVM с многоклассовыми стратегиями (например, one-vs-rest или структурные SVM).
- нейронные сети с выходным слоем из нейронов и активацией softmax.
- Стратегии сведения к бинарным задачам
Когда базовый алгоритм умеет решать только бинарные задачи, применяют стратегии композиции:
- **One-vs-Rest (OvR)**: для каждого класса обучается отдельный классификатор «этот класс против всех остальных». Итого бинарных моделей.
- **One-vs-One (OvO)**: обучается
классификаторов, каждый различает пару классов. Финальный класс определяется голосованием.
- **Древовидные стратегии**: классы организуются в бинарное дерево, и объект последовательно проходит по узлам, пока не достигнет листа.
На практике OvR и OvO часто реализуются как «обёртки» над бинарными алгоритмами и широко используются в библиотеках типа scikit-learn.
---
Функции потерь и обучение
Для нейронных сетей и многих вероятностных моделей стандартом является **кросс-энтропийная потеря** (categorical cross-entropy):
где — индикаторная переменная:
, если объект
принадлежит классу
, и
иначе.
Для алгоритмов, не выдающих вероятности напрямую, используют другие критерии: например, долю ошибок (accuracy) или более устойчивые метрики при дисбалансе.
---
Метрики качества
Помимо общей точности (accuracy), важно оценивать качество по каждому классу:
- точность и полнота для каждого класса. - F1-мера, в том числе макро- и микроусреднённые версии. - Матрица ошибок (confusion matrix) — наглядно показывает, какие классы чаще всего путают.
При сильном дисбалансе классов accuracy может быть обманчиво высокой, поэтому используют взвешенные метрики и анализ по слабым классам.
---
Практические сложности и нюансы
- **Дисбаланс классов**: некоторые классы представлены гораздо реже остальных. Помогают техники вроде взвешивания классов, oversampling/undersampling, focal loss. - **Перекрытие классов**: объекты разных классов могут иметь схожие признаки. Здесь полезны ансамбли и более сложные модели. - **Интерпретируемость**: в критических областях (медицина, финансы) важно понимать, почему модель выбрала тот или иной класс.
---
Примеры применения
- Распознавание изображений: определение объекта среди десятков или сотен категорий (ImageNet). - Обработка естественного языка: классификация текста по темам, тональности, языку. - Медицина: дифференциальная диагностика по набору признаков.
Интересно, что задача определения фильма по кадру — это тоже многоклассовая классификация: каждый фильм выступает как отдельный класс, а модель должна выбрать наиболее вероятный из тысяч кандидатов.
---
Современные тенденции
В последние годы развитие многоклассовой классификации тесно связано с прогрессом в глубоком обучении:
- Большие предобученные модели (трансформеры, сверточные сети) дают сильные признаки, которые затем дообучаются под конкретную задачу. - Методы борьбы с дисбалансом и «длинным хвостом» классов (long-tail classification) активно исследуются. - Важным направлением остаётся интерпретируемость и надёжность предсказаний.
---
Литература и источники
- Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning // Springer Series in Statistics. — 2009.
- Murphy K. P. Machine Learning: A Probabilistic Perspective. — MIT Press, 2012.
- Bishop C. M. Pattern Recognition and Machine Learning. — Springer, 2006.
- Multiclass and multilabel algorithms // scikit-learn documentation.
- He K., Zhang X., Ren S., Sun J. Deep Residual Learning for Image Recognition. — 2016.
- Dosovitskiy A. et al. An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. — 2021.
---

