Интерпретация двумерного графика PCA

Мне нужно понять, что передают диаграмма рассеяния, созданная двумя основными компонентами.

Я работал над набором данных "бостонское жилье" из библиотеки "sklearn.datasets". Я стандартизировал предикторы и используемый PCA из библиотеки sklearn.decomposition, чтобы получить 2 главных компонента и нанести их на график.

Теперь все, что мне нужно, это помощь в интерпретации сюжета простым языком. введите описание изображения здесь

2 ответа

Каждый главный компонент можно понимать как линейную комбинацию всех функций в вашем наборе данных. Например, если у вас есть три переменные A, B и C, то одна возможность для главного компонента может быть вычислена как 0,5A + 0,25B + 0,25C. А точка данных со значениями [1, 2, 4] будет иметь 0,5*1 + 0,25*2 + 0,25*4 = 2 для главного компонента.

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

Первый главный компонент (зеленый) и второй (розовый) 2-мерных данных визуализируется линиями через данные на этом графике.

ПК представляют собой линейную комбинацию функций. В принципе, вы можете упорядочить ПК по зафиксированной дисперсии данных и пометить их в порядке убывания. ПК1 будет содержать большую часть дисперсии, затем ПК2 и т. Д. Таким образом, для каждого ПК известно, насколько точно объясняется дисперсия. Однако, когда вы наносите данные на двухмерную диаграмму, как вы это делали в наборе данных о жилищном строительстве в Бостоне, трудно сказать, "сколько" и "какие" функции внесли вклад в ПК. Вот тут и вступает в игру "сюжет". Двухуровневый график может отображать вклад каждой функции в виде угла и длины вектора. Когда вы это сделаете, вы не только узнаете, сколько расхождений было объяснено лучшими ПК, но и какие функции были наиболее важными.

Попробуйте библиотеку pca. Это построит объясненную дисперсию и создаст двойной график.

pip install pca

from pca import pca

# Initialize to reduce the data up to the number of componentes that explains 95% of the variance.
model = pca(n_components=0.95)

# Or reduce the data towards 2 PCs
model = pca(n_components=2)

# Fit transform
results = model.fit_transform(X)

# Plot explained variance
fig, ax = model.plot()

# Scatter first 2 PCs
fig, ax = model.scatter()

# Make biplot
fig, ax = model.biplot(n_feat=4)
Другие вопросы по тегам