Установка параметров метода локально линейного вложения (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), чтобы выбрать лучшие значения для вас.