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

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

Граница решения (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Ничем, чем извилистее, тем лучше
Поддержать проект