Я очень рад быть частью этой группы и надеюсь внести положительный вклад. · 9 янв 2023
Вот несколько примеров, иллюстрирующих концепцию отступов в алгоритмах классификации метрик:
Рассмотрим набор данных с двумя классами: «собаки» и «кошки». Признаками, используемыми для классификации данных, являются вес и рост животных. Пространство признаков для этого набора данных будет двумерным пространством, где одна ось представляет вес, а другая ось представляет рост.
В этом примере предположим, что класс «собаки» в основном состоит из более крупных и тяжелых животных, а класс «кошки» в основном состоит из более мелких и легких животных. Граница, разделяющая два класса в пространстве признаков, может выглядеть примерно так:
import matplotlib.pyplot as plt
import numpy as np
import math
np.random.seed(0)
X_dogs = np.random.normal(2, 1, size=(100, 2))
X_cats = np.random.normal(-2, 1, size=(100, 2))
plt.scatter(X_dogs[:, 0], X_dogs[:, 1], c="b", label="Собаки")
plt.scatter(X_cats[:, 0], X_cats[:, 1], c="r", label="Кошки")
plt.legend()
plt.show()
#Этот код вычисляет среднее значение класса «собаки» и среднее значение класса «кошки»,
#используя np.mean()функцию.
#Затем с помощью np.linalg.norm()функции вычисляется евклидово расстояние между двумя средними значениями.
#Расстояние выводится на консоль.
mean_dogs = np.mean(X_dogs, axis=0)
mean_cats = np.mean(X_cats, axis=0)
distance = np.linalg.norm(mean_dogs - mean_cats)
print("Расстояние:", distance)
В этом случае отступ между двумя классами хороший, так как есть четкое разделение между точками, представляющими два класса.
Это будет означать, что классификатор имеет высокий уровень уверенности в своих прогнозах и, вероятно, будет хорошо работать с новыми, невидимыми данными.
Один из способов измерить отступ между двумя классами — вычислить расстояние между средними двух классов в пространстве признаков. Например, если класс «собаки» имеет среднее значение [2, 3], а класс «кошки» имеет среднее значение [0, 0],
расстояние между двумя средними значениями можно рассчитать как евклидово расстояние:
sqrt((2-0)^2 + (3-0)^2) = sqrt(13).
Чем больше расстояние между средними, тем больше отступ между двумя классами.
Вот несколько примеров того, как можно использовать это значение:
Отступ между двумя классами можно использовать в качестве показателя для оценки производительности классификатора. Классификатор, способный изучить границу решения с большим отступом между двумя классами, будет считаться хорошо работающим, поскольку он способен уверенно различать два класса.
Можно использовать в качестве критерия для выбора наиболее подходящих признаков для задачи классификации. Например, если два признака имеют большой отступ между двумя классами, они будут считаться более информативными и могут иметь больший вес в классификаторе.
В качестве этапа предварительной обработки для повышения производительности классификатора. Например, если отступ между двумя классами невелик, могут потребоваться дополнительные данные для создания более разделимого набора данных.
Не нашел как тут писать формулы сложные, потому буду вставлять скриншоты.
тогда понятие отступа определяется как
Понятие «отступ» можно трактовать как «расстояние от объекта до поверхности,
отделяющей свой класс от всех остальных».
- шумовые или выбросы - большой отрицательный отступ(окружён объектами чужих классов)
- эталонный представитель - большой... Читать далее