我在堆栈溢出上发布了我的问题,但有人建议我应该在这里尝试。我现在在做什么:)
OK,先来我的资料。我有一个 word-bi-gram 频率矩阵(1100 x 100658,dtype=int),其中前 5 列包含有关文档的信息。所以每一行都是一个文档,每一列都是一个单词-bi-gram,比如(of-the,on-the,and-that,...)。我想可视化数据,但在此之前,我想减少维度。所以我想我用 sklearn 的 PCA 来做到这一点。首先我设置列标签
myPandaDataFrame.columns = word-bi-grams
然后我删除了一些doc-columns,因为我想看看如果只看熟练度,我能得到什么样的信息。
del existing_df['SUBSET']
del existing_df['PROMPT']
del existing_df['L1']
del existing_df['ESSAYID']
然后我将熟练度列设置为索引
myPandaDataFrame.columns.set_index(['PROFICIENCY'], inplace=True, drop=True)
然后我做了这个
from sklearn.decomposition import PCA
x = 500
pcax = PCA(n_components=x)
pcax.fit(myPandaDataFrame)
PCA(copy=True, n_components=x, whiten=False)
existing_2dx = pcax.transform(myPandaDataFrame)
existing_df_2dx = pandas.DataFrame(existing_2dx)
existing_df_2dx.index = myPandaDataFrame.index
existing_df_2dx.columns = ['PC{0}'.format(i) for i in range(x)]
但是通过这个实现,我最多只能设置 1100 个 n_components。这是文档(行)的数量。这让我很怀疑。我尝试了几个示例/教程,但我做错了。所以我希望有人可以帮助我找出我做错了什么?如果有一个很好的例子/教程可以帮助我解决我的问题,我也会很高兴。谢谢你。
最诚挚的问候。