После выбора K-компонентов в PCA, как мы узнаем, какие компоненты (имена столбцов) выбрали алгоритм? - PullRequest
0 голосов
/ 26 мая 2019

Я новичок в Data Science и мне нужна помощь, чтобы понять PCA. Я знаю, что каждый из столбцов составляет одну ось, но когда PCA завершен, а компоненты уменьшены до некоторого значения k, Как узнать, какие все столбцы выбраны

Ответы [ 2 ]

2 голосов
/ 27 мая 2019

В PCA вы вычисляете собственные векторы и собственные значения ковариационной матрицы для идентификации главных компонентов.
Основными компонентами являются новые переменные, которые строятся как линейные комбинации или смеси исходных переменных. Эти комбинации сделаны таким образом, что новые переменные (то есть главные компоненты) не коррелированы, и большая часть информации в исходных переменных сжата или сжата в первые компоненты. Таким образом, идея состоит в том, что 10-мерные данные дают вам 10 основных компонентов, но PCA пытается поместить максимально возможную информацию в первый компонент, затем максимально оставшуюся информацию во второй и т. Д.

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

Согласно моему опыту, если процент совокупной суммы значений Eigen может превышать 80% или 90%, преобразованных векторов будет достаточно для представления старых векторов.

Для ясного объяснения давайте воспользуемся кодом @Nicholas M.

import numpy as np
from sklearn.decomposition import PCA
X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
pca = PCA(n_components=1)
pca.fit(X)  

Вы должны увеличить n_components, чтобы получить отклонение% 90.

Введите:

pca.explained_variance_ratio_

Выход:

array([0.99244289])

В этом примере достаточно одного компонента.

Надеюсь, все понятно.

Ресурсы:
https://towardsdatascience.com/pca-using-python-scikit-learn-e653f8989e60 https://towardsdatascience.com/a-step-by-step-explanation-of-principal-component-analysis-b836fb9c97e2

0 голосов
/ 27 мая 2019

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

При использовании scikit-learn вы должны смотреть на атрибут компоненты_

import numpy as np
from sklearn.decomposition import PCA
X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
pca = PCA(n_components=2)
pca.fit(X)  
print(pca.components_) # << eigenvector matrix
...