Определите значение переменной n_components в анализе pca - PullRequest
0 голосов
/ 01 мая 2018

Хорошего дня. Пожалуйста, помогите мне. У меня есть нормализованный файл. Этот файл состоит из 21 числового столбца.

Я буду применять pca analysis к этому файлу, как показано ниже:

pca = decomposition.PCA(n_components=21)
pca_output = pca.fit_transform(pca_matrix)
pca_inverse = pca.inverse_transform(pca_output)

Насколько я понимаю, значение, которое я назначаю переменной n_components, равно количеству столбцов. Но я не понимаю, как определить переменную n_components.

1 Ответ

0 голосов
/ 10 мая 2018

Это гиперпараметр, и его оптимальное значение зависит от того, что вы хотите сделать со своими данными. Позвольте мне описать 3 возможных использования:

  • Визуализация : 2 или 3, пожалуй, самые разумные варианты:)
  • Сжатие : здесь цель состоит в том, чтобы просто уменьшить количество функций, не теряя слишком много информации. Вы можете установить все компоненты (n_components=None). Затем осмотрите атрибут explained_variance_ratio_ и решите, сколько вы готовы отбросить. Или вы можете поставить n_components='mle' и позволить данным решать за вас.
  • Предварительная обработка : Здесь уменьшение размерности является первым шагом некоторого конвейера (предшествующая регрессия / классификация). В отличие от сжатия, вы хотите использовать преобразованные функции в качестве входных данных для контролируемого алгоритма обучения. Я бы порекомендовал найти оптимальные n_компоненты через GridSearchCV как для n_components PCA, так и для гиперпараметров прогностической модели.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...