Как вычислить сходство между двумя векторами с неоднородными атрибутами - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть проблема оптимизации, когда у меня есть набор провайдеров P продающих объектов Op разных типов с разными векторами производительности Pv=[p1, p2, p3, ..., pn] и набор клиентских запросов R, запрашивающих объекты Or с ожидаемые рабочие векторы Er=[e1, e2, ..., en].

Я хотел бы вычислить, какие объекты провайдера достаточно близки к тем, которые запрашиваются клиентами с учетом векторов производительности, я рассмотрел некоторые меры, такие как: расстояние по Евклидову квадрату, но я не уверен, как его использовать, так как Единицы векторов производительности различны, т. е. p1 измеряется в секундах, p2 измеряется в долларах и т. д. ...

Может ли кто-нибудь пролить свет и предложить методологию?

1 Ответ

0 голосов
/ 12 ноября 2018

Первая идея, которую вы должны попробовать, - это масштабировать каждую из ваших функций независимо, прежде чем сравнивать их.

Например, получите все ваши p1 выборки, вычислите среднее значение и стандартное отклонение, а затем преобразуйте ваши образцы в (s - mean)/std. Сделайте это для каждой из ваших функций, за исключением тех, которые уже являются двоичными (0/1).

Тогда вы можете использовать евклидово расстояние в качестве первого испытания для анализа, если точки далеки или нет.

Меры сходства - это что-то другое, но они похожи, вы можете использовать что-то вроде e^(-distance(x, y)), чтобы получить сходство между 0 и 1, и есть и другие меры, которые можно попробовать также. Вы должны использовать их для масштабированных данных, а не для исходных.

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