В 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