使用sklearn.fit()和大型稀疏矩阵(当前具有布尔特性)时Python中的MemoryError



以下是设置:

班级数量:1806

训练数据长度为61499

特征数量为40473(目前这些是布尔值,尽管可能会在某个时候发生变化)

平均而言,每个训练数据在一行中有~10个1,因此为40463个0(我使用的是scipy的稀疏矩阵)。

我尝试了各种学习算法(linearsvc获得了最好的性能,sgdclassifier似乎是最高效的,性能仅略低于linear svc)和一些降维(pca,svd),但我怀疑我设置矩阵的方式有问题吗?(或者可能有更好的方法,因为当类/特征/数据明显较少时,这种方法确实有效)

任何想法都将不胜感激。

(编辑:还尝试了sgdclassifier的.partial_fit(),即使有两个调用也需要很长时间,所以我没有让它完成)

MemoryError通常在可寻址内存用完时发生。如果您运行的是32位python,通常可以使用64位python来避免此错误。请参阅此处了解发生这种情况的详细原因。

相关内容

  • 没有找到相关文章

最新更新