我有一个具有〜1M行和〜500K稀疏特征的数据集。我想将维数减少到1K-5K密集特征的数量级。
sklearn.decomposition.PCA
在稀疏数据上不起作用,我已经尝试过使用,sklearn.decomposition.TruncatedSVD
但是很快就会遇到内存错误。在这种规模的有效尺寸缩减方面,我有哪些选择?
我有一个具有〜1M行和〜500K稀疏特征的数据集。我想将维数减少到1K-5K密集特征的数量级。
sklearn.decomposition.PCA
在稀疏数据上不起作用,我已经尝试过使用,sklearn.decomposition.TruncatedSVD
但是很快就会遇到内存错误。在这种规模的有效尺寸缩减方面,我有哪些选择?
Answers:
您是否听说过均匀流形逼近和投影(UMAP)?
UMAP(统一流形逼近和投影)是一种用于非线性降维的新颖流形学习技术。UMAP由基于黎曼几何和代数拓扑的理论框架构建而成。结果是适用于现实世界数据的实用的可伸缩算法。UMAP算法在可视化质量上与t-SNE竞争,并且可以说以优异的运行时性能保留了更多的全局结构。此外,如上所述的UMAP对嵌入尺寸没有计算限制,使其可用作用于机器学习的通用尺寸缩减技术。
事实简介: UMAP可以处理大型数据集,并且比t-SNE更快,并且支持拟合稀疏矩阵数据,这与通用的降维技术t-SNE相反,这意味着它不仅可以用于可视化,而且还可以用于可视化。用于减少提供给其他机器学习模型的功能空间。
具体示例:我已经对该方法进行了基准测试,并将其与其他降维技术基准笔记本进行了比较,如果有兴趣快速浏览并快速入门。
万一遇到这篇文章的人发现UMAP不够高效,以下是我遇到的其他一些更为有效的技术(但质量不高):
sklearn.random_projection
sklearn.feature_extraction.FeatureHasher