首页 > 解决方案 > 为 LDA pca 保留 csv 特征标签

问题描述

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

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

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

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

pca2 = sklearn.decomposition.RandomizedPCA(n_components=45)
pca2.fit(LDA_topics)

导致 ValueError: could not convert string to float: 'sonic'

有没有办法执行 PCA 并保留特征标签,而不仅仅是之后的频率?

标签: pythonpandascsvpca

解决方案


PCA 不会丢弃或保留特征,但组件结果也不会映射到特征。(给定x,yz一个n_components=2参数,生成的两个组件不会xyz完美地映射到任何一个。)如果您想保留特征名称作为降维的一部分,您可能需要探索其他方法(sklearn 有一个完整的部分这个)。

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


推荐阅读