Лучший способ сравнить вектор, к которому относится набор векторов, представляющих категорию - PullRequest
0 голосов
/ 04 ноября 2019

Допустим, у меня есть векторы, представляющие, например, 3 категории (a, b, c). Каждая категория имеет следующие элементы:

> a1 = {0, 43, 32, 52, 12}, a2 = {0, 42, 65, 34, 54}, a3 = {2, 23, 65, 45, 34}
> b1 = {89, 23, 54, 65, 75}, b2 = {32, 32, 54, 65, 67}, b3 = {79, 32, 65, 43, 34}
> c1 = {120, 250, 655, 0, 20}, c2 = {133, 305, 560, 4, 39}, c3 = {142, 287, 600, 1, 40}

Что я хочу сделать, чтобы классифицировать новые данные, например, n = {80, 350, 40, 59, 0} в одну из группы. В настоящее время я использую два подхода, основанные на среднем и максимальном количестве элементов в каждой группе, так что:

> a_mean = {0.67, 36 54, 43.67, 33.33}, a_max = {2, 43, 65, 52, 54}
> b_mean = {66.67, 29, 57.67, 57.67, 58.67}, b_max = {89, 32, 65, 65, 75}
> c_mean = {131.67, 280.67, 605, 1.67, 33}, c_max = {142, 305, 655, 4, 40}

По сути, при использовании среднего я вычисляю расстояние новых данных n = {80, 350, 40, 59, 0} to a_mean, b_mean и c_mean, используя максимальное среднее расхождение (MMD). Наименьшее число будет выбрано. Аналогично, при использовании max я использую a_max, b_max и c_max, а не a_mean, b_mean и c_mean.

В моем реальном случае у меня есть сотни векторов для каждой категории. При сравнении новых данных результат MMD показывает одинаковое значение, то есть 0,04, для каждой категории. Я считаю, что что-то не так с использованием среднего и максимального подхода. Для такого случая, есть ли какие-либо предложения, как создать опорный вектор для каждой категории, кроме использования среднего и максимального?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...