Как нормализовать с помощью PCA и scikit-learn

Позвольте мне сделать это. В принципе, я хочу знать: должен ли я это делать,

pca.fit(normalize(x)) new=pca.transform(normalize(x)) 

или это

 pca.fit(normalize(x)) new=pca.transform(x) 

Я знаю, что мы должны нормализовать наши данные перед использованием PCA, но какая из вышеперечисленных процедур верна с помощью sklearn?

One Solution collect form web for “Как нормализовать с помощью PCA и scikit-learn”

В общем, вы бы хотели использовать первый вариант.

Ваша нормализация помещает ваши данные в новое пространство, которое видно на PCA, и его преобразование в основном ожидает, что данные будут в одном пространстве.

Scikit-learn предоставляет инструменты для этого прозрачно и удобно, объединяя оценки в конвейере. Пытаться:

 from sklearn.preprocessing import StandardScaler from sklearn.decomposition import PCA from sklearn.pipeline import Pipeline import numpy as np data = np.random.randn(20, 40) pipeline = Pipeline([('scaling', StandardScaler()), ('pca', PCA(n_components=5))]) pipeline.fit_transform(data) 

Затем расширенный скалер будет всегда применять свое преобразование к данным перед тем, как перейти к объекту PCA.

Как указывает @larsmans, вы можете использовать sklearn.preprocessing.Normalizer вместо StandardScaler или, аналогично, удалить среднее центрирование из StandardScaler , передав аргумент ключевого слова with_mean=False .

  • Отмена использования в sklearn MiniBatchKMeans
  • scikit-learn перекрестная проверка, отрицательные значения со средней квадратичной ошибкой
  • ImportError: невозможно импортировать имя inplace_column_scale
  • scikit-learn: поиск функций, которые вносят вклад в каждый кластер KMeans
  • Scikit-learn: как получить True Positive, True Negative, False Positive и False Negative
  • Python Не отрицательная матричная факторизация, которая обрабатывает как нули, так и отсутствующие данные?
  • Приведение классификатора в производство
  • Связь между пропускной способностью 2D KDE в sklearn и пропускной способностью в scipy
  • Python - лучший язык программирования в мире.