【发布时间】:2015-08-07 14:51:08
【问题描述】:
我正在尝试为工作执行主成分分析。虽然我已经成功地布置了主要组件,但我真的不知道如何将生成的组件分数分配给每个行项目。我正在寻找类似这样的输出。
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
scikit-learn 文档在这种情况下没有帮助。谁能向我解释我如何达到这个输出?
我目前的代码如下。
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_
【问题讨论】:
-
pca.transform(scaled_data)的行输出了您要查找的内容。 -
有没有办法按照我在问题中显示的模板的线条向该数组添加标签,以便它可以解释?
-
具体有没有办法将其显示为具有可见索引的熊猫数据框?
-
Scikit-learn(当前)从不输出 pandas 数据帧。不过,您可以轻松地从返回的数组中创建一个并重新添加标签。
标签: python statistics scikit-learn