Установка параметров метода локально линейного вложения (LLE) в Scikit-learn для уменьшения размерности

Я использую метод локально-линейного вложения (LLE) в Scikit-learn для уменьшения размерности. Единственный пример, который я смог найти, относится к документации Scikit-learn здесь и здесь, но я не уверен, как мне выбрать параметры метода. В частности, существует ли какая-либо связь между размером точек данных или количеством выборок и количеством соседей (n_neighbors) и количество компонентов (n_components)? Все примеры в Scikit-learn используют n_components=2, всегда ли это так? Наконец, есть ли другие параметры, которые критичны для настройки, или я должен использовать настройку по умолчанию для остальных параметров?

2 ответа

Существует ли какая-либо связь между размером точек данных или количеством выборок и количеством соседей (n_neighbors) и количество компонентов (n_components)?

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

n_components=2 является отображение исходного многомерного пространства в 2d-пространстве. На самом деле это особый случай.

Есть ли другие параметры, которые важны для настройки, или я должен использовать настройку по умолчанию для остальных параметров?

Вот несколько других параметров, о которых вы должны позаботиться.

  • reg для регуляризации веса, которая не используется в оригинальной бумаге LLE. Если вы не хотите использовать его, просто установите его на ноль. Тем не менее, значение по умолчанию reg является 1e-3, что довольно мало.
  • eigen_solver, Если ваш размер данных невелик, рекомендуется использовать dense для точности. Вы можете сделать больше исследований по этому вопросу.
  • max_iter, Значение по умолчанию max_iter только 100, что часто приводит к тому, что результаты не сходятся. Если результаты не являются стабильными, пожалуйста, выберите большее число.

Вы можете использовать GridSearch (Scikit-learn), чтобы выбрать лучшие значения для вас.

Другие вопросы по тегам