Граница решения

Главная геометрическая идея классификации — линия (или поверхность), разделяющая классы.

Граница решения (decision boundary) — линия или поверхность в пространстве признаков, разделяющая области, которые модель относит к разным классам.

Картинка в голове

Представьте плоскость: по горизонтали один признак, по вертикали другой. Каждый объект — точка. Точки одного класса (скажем, «здоров») сосредоточены в одной области, другого («болен») — в другой. Задача классификатора — провести границу между этими областями. Новый объект попадает в одну из областей — туда его и относят.

Аналогия: вы раскладываете спелые и неспелые яблоки по цвету и размеру. В какой-то момент проводите мысленную черту: «всё, что краснее и крупнее этой черты, — спелое». Эта черта и есть граница решения.

Прямая граница

Самые простые модели проводят прямую границу (в многомерном случае — плоскость). Так работают логистическая регрессия и линейный классификатор. Прямая граница хороша, когда классы можно разделить «одним росчерком». Покажем идею простой границей по сумме признаков:

# Простейшая линейная граница: класс по знаку взвешенной суммы
def classify(x1, x2):
    score = 1.0 * x1 + 1.0 * x2 - 10   # граница: x1 + x2 = 10
    return "класс B" if score >= 0 else "класс A"

points = [(2, 3), (4, 4), (6, 6), (8, 5)]
for x1, x2 in points:
    print(f"({x1}, {x2}) -> {classify(x1, x2)}")

Вывод:

(2, 3) -> класс A
(4, 4) -> класс A
(6, 6) -> класс B
(8, 5) -> класс B

Здесь граница — прямая x1 + x2 = 10. Всё, что «выше» неё, — класс B, остальное — класс A.

Кривая граница

Но классы не всегда разделимы прямой. Представьте один класс в центре, а другой — кольцом вокруг. Прямой их не разделить — нужна кривая (замкнутая) граница. С такими случаями справляются более гибкие модели: деревья решений, kNN, нейросети. Они проводят границы сложной формы, повторяющие очертания данных.

Форма границыКогда подходитПримеры моделей
Прямая / плоскостьКлассы разделимы линейноЛогистическая регрессия
Кривая / сложнаяКлассы переплетеныkNN, деревья, нейросети

Осторожно: слишком извилистая граница

Гибкость — палка о двух концах. Если позволить модели проводить чересчур извилистую границу, она начнёт «обводить» каждую точку обучающих данных, включая случайный шум. На обучении это выглядит идеально, но на новых данных — провал. Это переобучение, ему посвящён отдельный важный урок. Запомните образ: хорошая граница гладкая и отражает суть, а не повторяет каждую случайную точку.

Итог

  • Граница решения делит пространство признаков на области классов.
  • Простые модели проводят прямую границу; гибкие — кривую любой формы.
  • Выбор зависит от данных: линейно разделимы — хватит прямой, переплетены — нужна кривая.
  • Слишком извилистая граница ведёт к переобучению.
Проверьте себя
1. Что такое граница решения?
AМаксимальное число классов в задаче
BПорог вероятности по умолчанию
CЛиния или поверхность, разделяющая области разных классов в пространстве признаков
DРазмер обучающей выборки
2. Когда прямой границы недостаточно?
AКогда признаков ровно два
BПрямой границы достаточно всегда
CКогда данных слишком много
DКогда классы переплетены и не разделяются одной линией (например, один класс кольцом вокруг другого)
3. Чем опасна слишком извилистая граница решения?
AМодель начинает обводить шум обучающих данных и плохо работает на новых — это переобучение
BОна требует меньше данных
CОна всегда даёт нулевую ошибку на новых данных
DНичем, чем извилистее, тем лучше