【问题标题】:ValueError: DataFrame constructor not properly called- After fitting a SparsePCAValueError:DataFrame 构造函数未正确调用- 拟合 SparsePCA 后
【发布时间】:2020-10-01 11:56:56
【问题描述】:

装上 SparsePCA 后

from sklearn.decomposition import PCA
from sklearn.decomposition import TruncatedSVD
from scipy.sparse import random as sparse_random
from sklearn.decomposition import SparsePCA
from sklearn.random_projection import sparse_random_matrix


pca_a = SparsePCA(n_components=2, random_state=0) #grafico 2d
pca_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 constructor not properly called!

¿我该如何解决?

【问题讨论】:

  • 1) 什么是R? 2)您的错误发生在哪一行之后(您的示例中的第一个或第二个数据框创建?
  • 它发生在第二个(数据框创建)

标签: python machine-learning k-means pca


【解决方案1】:

你的错误发生在这一行

pca_review_df = pd.DataFrame(data= pca_review, columns= ['Component1','Component2'])

因为pca_review 不是数组、可迭代或字典,它是SparsePCA 对象。要获取数据集的组件值,您需要通过拟合和转换(将数据乘以 PCA 投影矩阵)来转换数据集,例如

pca_review = pca_a.fit_transform(R.toarray())

然后你就可以构建你的数据框了。

【讨论】:

    猜你喜欢
    • 2018-05-06
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 2014-10-25
    • 2019-02-11
    • 1970-01-01
    相关资源
    最近更新 更多