首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为LDA pca保留csv要素标签

为LDA pca保留csv要素标签
EN

Stack Overflow用户
提问于 2018-12-07 07:16:21
回答 2查看 125关注 0票数 1

我正在尝试使用https://github.com/wwbp/facebook_topics/tree/master/csv的2000个主题的前20个频率数据

我想对数据执行randomizedPCA。在文档中,X需要是类似数组的形状(n_samples,n_features)。

我已经用LDA_topics = pd.read_csv(r'2000topics.top20freqs.keys.csv', header=None, index_col=0, error_bad_lines=False)导入了该文件

但是,这不是以下行的正确格式:

代码语言:javascript
复制
pca2 = sklearn.decomposition.RandomizedPCA(n_components=45)
pca2.fit(LDA_topics)

导致出现ValueError:无法将字符串转换为浮点数:'sonic‘

有没有一种方法可以在执行PCA后保留特征标签,而不仅仅是频率?

EN

回答 2

Stack Overflow用户

发布于 2018-12-07 07:35:53

PCA不会丢弃或保留特征,但组件结果也不会映射到特征。(给定xyz和一个n_components=2参数,得到的两个组件不会完美地映射到任何xyz。)如果您希望将特征名称保留为降维的一部分,则可能需要探索其他方法(sklearn has a whole section for this)。

Chuck Ivan是正确的,在你做PCA之前需要一个编码器或矢量器。我喜欢他的OrdinalEncoder建议,但您也可以考虑这个列表中的sklearn文本实用程序:https://scikit-learn.org/stable/modules/classes.html#module-sklearn.feature_extraction.text

票数 2
EN

Stack Overflow用户

发布于 2018-12-07 07:28:47

PCA的工作原理是解决一个优化问题,该问题要求您的特征是数值的。此代码尝试对非数字数据执行PCA。您需要将字符串分解(编码)为数字。sklearn.preprocessing.OrdinalEncodersklearn.preprocessing.OneHotEncoder会处理这个问题。

Charles Landau的特征提取解决方案看起来与这个问题非常相关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53661114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档