在拟合SparsePCA之后
from sklearn.decomposition import PCAfrom sklearn.decomposition import TruncatedSVDfrom scipy.sparse import random as sparse_randomfrom sklearn.decomposition import SparsePCAfrom sklearn.random_projection import sparse_random_matrixpca_a = SparsePCA(n_components=2, random_state=0) #grafico 2dpca_review = pca_a.fit(R.toarray())
我尝试将其转换为DataFrame,使用以下代码
pca_review_df = pd.DataFrame(data= pca_review, columns= ['Component1','Component2'])pca_name_review = pd.concat([pca_review_df, validation[['Kmeans_cluster']]],axis=1)
但我得到了以下错误:
ValueError: DataFrame构造函数未正确调用!
如何修复这个问题?
回答:
您的错误发生在以下这行代码中
pca_review_df = pd.DataFrame(data= pca_review, columns= ['Component1','Component2'])
因为pca_review
不是数组、可迭代对象或字典,而是一个SparsePCA
对象。要获取数据集的成分值,您需要通过拟合和变换(将数据乘以您的PCA投影矩阵)来变换数据集,例如
pca_review = pca_a.fit_transform(R.toarray())
然后您就可以构建DataFrame了。