Визуальная разделимость классов — это понятие, которое описывает, насколько объекты разных классов отделены друг от друга в пространстве признаков, и насколько легко их можно разделить с помощью модели.
Основные моменты:
- Пространство признаков
- Для двух признаков можно строить прямую 2D-графику
- Для трёх признаков — 3D-графику
- Для большего числа признаков применяют методы снижения размерности (PCA, t-SNE)
- Типы разделимости
- Хорошо разделимые классы: кластеры объектов разных классов не перекрываются
- Частично разделимые: кластеры перекрываются, есть зоны смешения
- Неразделимые: классы полностью пересекаются
- Важность
- Если классы хорошо разделимы, простые модели (логистическая регрессия, линейный SVM) показывают высокую точность
- При плохой разделимости нужны сложные модели, нелинейные преобразования признаков, или добавление новых признаков
Пример на Wine dataset с двумя признаками:
import matplotlib.pyplot as plt
from sklearn.datasets import load_wine
data = load_wine()
X = data.data[:, :2] # первые два признака
y = data.target
plt.scatter(X[:,0], X[:,1], c=y, cmap='viridis')
plt.xlabel('Признак 1')
plt.ylabel('Признак 2')
plt.show()- Разные цвета = разные классы
- На графике видно, насколько классы разделимы в этих признаках
Коротко:
визуальная разделимость классов показывает, насколько объекты разных классов образуют отдельные кластеры в пространстве признаков, что напрямую влияет на сложность задачи классификации.