Линейная классификация — это подход в машинном обучении, при котором решение о принадлежности объекта к тому или иному классу принимается на основе линейной комбинации его признаков. Проще говоря, модель проводит прямую линию (на плоскости), плоскость (в трёхмерном пространстве) или гиперплоскость (в многомерном пространстве признаков), которая разделяет объекты разных классов. Если объект оказывается по одну сторону от этой границы — он относится к одному классу, если по другую — к другому.
Как это работает
В основе линейного классификатора лежит скалярное произведение вектора признаков объекта x на вектор весов w плюс смещение b. Результат этого произведения сравнивается с нулём (или пропускается через функцию активации), и в зависимости от знака модель выдаёт один из двух классов. Геометрически это означает, что классификатор ищет гиперплоскость, разделяющую пространство признаков на две половины.
Если данные линейно разделимы — то есть существует гиперплоскость, которая без ошибок разделяет все объекты обучающей выборки, — задача сводится к поиску вектора весов w и смещения b, удовлетворяющих системе неравенств. На практике данные часто линейно неразделимы, поэтому используют методы, минимизирующие ошибку: логистическая регрессия оценивает вероятность принадлежности к классу, SVM максимизирует отступ между классами, а перцептрон просто итеративно корректирует веса при каждой ошибке.
Зачем это нужно
Линейные классификаторы — один из самых быстрых и интерпретируемых инструментов машинного обучения. Они показывают отличные результаты в задачах с большим числом признаков: классификация текстов, анализ тональности, кредитный скоринг, фильтрация спама. Их главное преимущество — вычислительная эффективность: обучение и предсказание занимают доли секунды даже на больших выборках. Кроме того, веса модели легко интерпретировать: каждый коэффициент показывает вклад соответствующего признака в решение.
Примеры
- Фильтрация спама. Признаки письма — частота слов, наличие ссылок, отправитель. Линейный классификатор проводит гиперплоскость, отделяющую спам от нормальных писем. Логистическая регрессия — классический выбор для этой задачи.
- Кредитный скоринг. Банк оценивает заёмщика по доходу, возрасту, кредитной истории. Логистическая регрессия строит линейную границу между «хорошими» и «плохими» заёмщиками, выдавая вероятность дефолта.
- Классификация ирисов Фишера. По длине и ширине лепестков и чашелистиков линейный классификатор разделяет три вида ирисов. Это учебный пример, на котором демонстрируется работа SVM и логистической регрессии.
- Анализ тональности отзывов. По вектору частот слов модель определяет, положительный отзыв или отрицательный. Линейный SVM с ядром или логистическая регрессия справляются с этим за счёт высокой размерности признакового пространства.
Формула или метрика
Базовый линейный классификатор для двух классов задаётся формулой:
f(x) = sign(w·x + b)
где w — вектор весов, x — вектор признаков объекта, b — смещение. Для многоклассовой задачи каждый класс получает свой вектор весов, и выбирается класс с максимальным значением wk·x + bk.
Типичные ошибки
- Применение к нелинейным данным без преобразования признаков. Если граница между классами изогнута, линейный классификатор будет ошибаться. Решение — добавить полиномиальные признаки или использовать ядерный трюк.
- Игнорирование дисбаланса классов. При сильном перекосе (например, 99% «норма» и 1% «мошенничество») модель может просто предсказывать мажоритарный класс. Нужны веса классов или передискретизация.
- Отсутствие нормализации признаков. Если один признак измеряется в тысячах, а другой — в десятых, веса будут несопоставимы. Стандартизация или нормализация обязательны.
- Переобучение на малой выборке. Линейная модель с большим числом признаков и малым числом объектов запоминает шум. Регуляризация (L1/L2) помогает этого избежать.
Как улучшить
- Добавьте регуляризацию. L2-регуляризация (ридж) уменьшает веса и борется с переобучением, L1 (лассо) зануляет незначимые признаки, упрощая модель.
- Попробуйте ядерный трюк. Если данные линейно неразделимы, отображение в пространство большей размерности (полиномиальное, RBF-ядро) позволяет линейному классификатору работать с нелинейными границами.
- Отбирайте признаки. Удаление коррелирующих и шумовых признаков снижает размерность и повышает устойчивость модели.
- Настройте гиперпараметр C. В SVM и логистической регрессии параметр C управляет компромиссом между шириной отступа и ошибками классификации. Подбирайте его по кросс-валидации.
- Используйте ансамбли. Комбинация нескольких линейных классификаторов (бэггинг, бустинг) даёт более точный результат, чем одна модель.