Моя цель - получить корреляции между отдельными переменными и основными компонентами в Python. Я использую PCA в Iris dataset
iris = load_iris()
X = iris.data
y = iris.target
# Standardize the data
scaler = StandardScaler()
X_standardized = scaler.fit_transform(X)
# Apply PCA with two components
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_standardized)
# Extract loadings
loadings = pca.components_.T * np.sqrt(pca.explained_variance_)
# Create a DataFrame for loadings
loadings_df = pd.DataFrame(loadings, columns=['PC1', 'PC2'], index=iris.feature_names)
loadings_df
< /code>
Я изменил код, чтобы вместо этого я имел: < /p>
scaler = StandardScaler(with_std=False, with_mean=True)
< /code>
with_std[/code] и with_mean оба истины по умолчанию, но я изменил с_STD на false для целей моего исследования. Проблема заключается в том, что нагрузки, которые я получаю для моего собственного набора данных (массив 516 x 9,030), почти бессмысленные (они бесконечно малы). Подобно формуле для стандартизации нагрузки: < /p>
Loading / sqrt(Variable's variance)
< /code>
So the loading for each variable is divided by the square root of that variable's original variance. The loadings I get using this method seem to make sense, but I want to get some confirmation that I am on the right track (and leave a record for anyone else doing the same thing in the future).
Does the method I'm using to standardize my loadings (without standardizing the original data) make sense?
Подробнее здесь: https://stackoverflow.com/questions/797 ... dardscalar
Расчет нагрузки на коэффициент PCA с использованием Sklearn при использовании стандартов ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение