Граница решения
Главная геометрическая идея классификации — линия (или поверхность), разделяющая классы.
Граница решения (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, деревья, нейросети |
Осторожно: слишком извилистая граница
Гибкость — палка о двух концах. Если позволить модели проводить чересчур извилистую границу, она начнёт «обводить» каждую точку обучающих данных, включая случайный шум. На обучении это выглядит идеально, но на новых данных — провал. Это переобучение, ему посвящён отдельный важный урок. Запомните образ: хорошая граница гладкая и отражает суть, а не повторяет каждую случайную точку.
Итог
- Граница решения делит пространство признаков на области классов.
- Простые модели проводят прямую границу; гибкие — кривую любой формы.
- Выбор зависит от данных: линейно разделимы — хватит прямой, переплетены — нужна кривая.
- Слишком извилистая граница ведёт к переобучению.