Почему метод tsne использует евклидово расстояние, чтобы вычислить сходство в многомерных данных? - PullRequest
0 голосов
/ 27 июня 2019

Я пробовал другие метрики расстояния, такие как расстояние Чебычева, расстояние Манхэттена и т. Д., Которые все реализованы в tsne в Matlab. Некоторые из них достигают таких же хороших показателей, как евклидова метрика расстояния. Итак, у меня есть некоторые вопросы о том, почему цне всегда использовать евклидово расстояние, чтобы вычислить расстояние. Есть ли какие-либо преимущества для этой метрики расстояния по сравнению с другими метриками расстояния? Я надеюсь, что кто-то может помочь мне решить мою проблему. Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 01 июля 2019

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

Расстояния

Euclidean и Jaccard, как правило, работают хорошо, я получил некоторые хорошие результаты, также используя TSVD, чтобы уменьшить данные до ~ 50 измерений, а затем выполняя tSNE на Euclidean матрице расстояний.

0 голосов
/ 27 июня 2019

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

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

Надеюсь, это поможет!

...