python - 为 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 并保留特征标签,而不仅仅是之后的频率?
解决方案
PCA 不会丢弃或保留特征,但组件结果也不会映射到特征。(给定x
,y
和z
一个n_components=2
参数,生成的两个组件不会xyz
完美地映射到任何一个。)如果您想保留特征名称作为降维的一部分,您可能需要探索其他方法(sklearn 有一个完整的部分这个)。
Chuck Ivan 是正确的,在进行 PCA 之前需要编码器或矢量化器。我喜欢他的 OrdinalEncoder 建议,但您也可以考虑此列表中的 sklearn 文本实用程序:https ://scikit-learn.org/stable/modules/classes.html#module-sklearn.feature_extraction.text
推荐阅读
- react-native - react-native-community/datetimepicker 没有设置它的所有值
- assembly - 导致表达式语法错误的 mov 指令
- python - Python sys.argv 接受 HTML 输入
- arrays - 递归爬升ArrayList
- ios - 当 TextEditor 失去焦点时如何得到通知?
- elasticsearch - 通过避免重复计算elasticsearch中的记录
- c# - C# - 向子进程发送输入 - 控制台应用程序
- python - Selenium:网站中的特定页面出现空白/白屏
- amazon-web-services - AWS CLI 列出所有 S3 存储桶的加密状态
- php - 删除 url 中的文件扩展名不起作用