我正试图对工作进行主成分分析。虽然我成功地完成了主组件的布局,但我并不知道如何为每个行项分配最终的组件分数。我在寻找类似这样的输出。
Town PrinComponent 1 PrinComponent 2 PrinComponent 3
Columbia 0.31989 -0.44216 -0.44369
Middletown -0.37101 -0.24531 -0.47020
Harrisburg -0.00974 -0.06105 0.32792
Newport -0.38678 0.40935 -0.62996 在这种情况下,学习科学的文档是没有帮助的。有人能向我解释一下我是如何达到这个输出的吗?
到目前为止,我掌握的代码如下。
def perform_PCA(df):
threshold = 0.1
pca = decomposition.PCA(n_components=3)
numpyMatrix = df.as_matrix().astype(float)
scaled_data = preprocessing.scale(numpyMatrix)
pca.fit(scaled_data)
pca.transform(scaled_data)
pca_components_df = pd.DataFrame(data = pca.components_,columns = df.columns.values)
#print pca_components_df
#pca_components_df.to_csv('pca_components_df.csv')
filtered = pca_components_df[abs(pca_components_df) > threshold]
trans_filtered= filtered.T
#print filtered.T #Tranformed Dataframe
trans_filtered.to_csv('trans_filtered.csv')
print pca.explained_variance_ratio_发布于 2015-08-09 16:14:56
我将转换的数组抽运到DataFrame函数的数据部分,然后将索引和列分别放入columns=和index=。
pd.DataFrame(data=transformed, columns=["PC1", "PC2"], index=df.index)https://stackoverflow.com/questions/31880695
复制相似问题