2016-05-10 6 views
0

У меня есть вопрос, пожалуйста, речь идет об уменьшении нелинейной размерности «Isomap», в нормальных случаях, когда я вводил расстояние матрицы 100 * 100 , и я применяю Isomap [http://isomap.stanford.edu/][1] Я получаю координаты 100 баллов, в других случаях я не понимаю, почему, с матрицей 150 * 150 я получаю juste 35 или 50 баллов?«Уменьшение нелинейной размерности Isomap»

ответ

0

Первый шаг Isomap - это, как правило, создание «матрицы ближайшего соседа», так что каждая точка соединена с ее 4 или 6 или 8 или ближайшими соседями.

Итак, вы можете начать с матрицы расстояния 100 х 100, и каждая точка имеет расстояние до 99 других точек, после этого первого шага будут установлены расстояния для чего угодно, кроме (4 или 6 или 8) ближайших точек до бесконечности.

Затем Isomap вычисляет кратчайшее расстояние пути, прыгая между соседними точками, чтобы добраться до дальней удаленных точек.

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

Как вы можете это исправить? 1. Вы можете увеличить количество ближайших соседей, которые вы используете, до тех пор, пока не получите все включенные очки.

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

+0

спасибо Robert Pless Теперь это очень ясно –