【发布时间】:2014-06-10 12:27:51
【问题描述】:
如何根据 pandas 数据框中的数据计算主成分分析?
【问题讨论】:
标签: python pandas pca scientific-computing principal-components
如何根据 pandas 数据框中的数据计算主成分分析?
【问题讨论】:
标签: python pandas pca scientific-computing principal-components
大多数sklearn 对象都可以与pandas 数据帧一起工作,这样的东西适合你吗?
import pandas as pd
import numpy as np
from sklearn.decomposition import PCA
df = pd.DataFrame(data=np.random.normal(0, 1, (20, 10)))
pca = PCA(n_components=5)
pca.fit(df)
您可以通过
访问组件本身pca.components_
【讨论】:
df = pandas.DataFrame(pca.components_)。最后要注意的是,如果您要尝试将这个新的df 与点积一起使用,请务必查看此链接:[stackoverflow.com/questions/16472729/…
import pandas
from sklearn.decomposition import PCA
import numpy
import matplotlib.pyplot as plot
df = pandas.DataFrame(data=numpy.random.normal(0, 1, (20, 10)))
# You must normalize the data before applying the fit method
df_normalized=(df - df.mean()) / df.std()
pca = PCA(n_components=df.shape[1])
pca.fit(df_normalized)
# Reformat and view results
loadings = pandas.DataFrame(pca.components_.T,
columns=['PC%s' % _ for _ in range(len(df_normalized.columns))],
index=df.columns)
print(loadings)
plot.plot(pca.explained_variance_ratio_)
plot.ylabel('Explained Variance')
plot.xlabel('Components')
plot.show()
【讨论】: