将稀疏矩阵转换为密集矩阵时出现MemoryError错误?(numpy,scikit)

灭绝者
lr = lm.LogisticRegression(penalty='l2', dual=True, tol=0.0001, 
                             C=1, fit_intercept=True, intercept_scaling=1.0, 
                             class_weight=None, random_state=None)

rd = AdaBoostClassifier( base_estimator=lr, 
                                           learning_rate=1, 
                                           n_estimators=20, 
                                           algorithm="SAMME")
##here, i am deleting unnecesseary objects
##print X.shape
##(7395, 412605)
print "20 Fold CV Score: ", np.mean(cross_validation.cross_val_score(rd, X, y, cv=20, scoring='roc_auc'))

当我运行这个我得到这个错误:

TypeError:传递了稀疏矩阵,但是需要密集数据。使用X.toarray()转换为密集的numpy数组。

然后,我像这样更改代码:

print "20 Fold CV Score: ", np.mean(cross_validation.cross_val_score(rd, X.toarray(), y, cv=20, scoring='roc_auc'))

现在,我有以下例外情况:

  File "/usr/lib/python2.7/dist-packages/scipy/sparse/compressed.py", line 559, in toarray
    return self.tocoo(copy=False).toarray(order=order, out=out)
  File "/usr/lib/python2.7/dist-packages/scipy/sparse/coo.py", line 235, in toarray
    B = self._process_toarray_args(order, out)
  File "/usr/lib/python2.7/dist-packages/scipy/sparse/base.py", line 628, in _process_toarray_args
    return np.zeros(self.shape, dtype=self.dtype, order=order)
MemoryError

有解决问题的建议吗?

丹妮卡

MemoryError意味着系统上没有足够的RAM来分配矩阵。为什么?那么,一个7395 x 412605矩阵有3051213975元。如果它们为默认float64(通常double为C)数据类型,则为22.7GB。如果转换为低精度float32s(通常float在C中),则为11.4GB;也许这在您的机器上是可以处理的。不过,它仍然会很慢。

似乎AdaBoostClassifier不支持稀疏输入(如您在此处的代码中所见)。我不知道这种算法是否需要密集的表示,或者只是实现假设了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用cuSPARSE将密集矩阵转换为稀疏CSR格式

来自分类Dev

将稀疏矩阵行转换为密集泄漏存储

来自分类Dev

numpy:将稀疏矩阵转换为ndarray

来自分类Dev

如何将“ SciPy稀疏矩阵”转换为“ NumPy矩阵”?

来自分类Dev

如何将稀疏矩阵转换为密集邻接矩阵?

来自分类Dev

直接将Pandas数据框转换为稀疏Numpy矩阵

来自分类Dev

将python稀疏矩阵dict转换为scipy稀疏矩阵

来自分类Dev

如何将.txt的稀疏表示形式转换为scipy中的密集矩阵?

来自分类Dev

将大型稀疏矩阵转换为COO时出错

来自分类Dev

当我们在稀疏矩阵上执行apply()时,它会自动将其转换为密集矩阵吗?

来自分类Dev

当我们在稀疏矩阵上执行apply()时,它会自动将其转换为密集矩阵吗?

来自分类Dev

将行矩阵转换为微风密集矩阵

来自分类Dev

将稀疏矩阵(dgCMatrix)转换为realRatingMatrix

来自分类Dev

将Scipy稀疏矩阵转换为元组

来自分类Dev

将稀疏矩阵索引列表转换为R中的矩阵

来自分类Dev

tensorflow:使用 tf.matmul 将稀疏矩阵与密集矩阵相乘时出错

来自分类Dev

将Numpy Float64稀疏矩阵转换为熊猫数据框

来自分类Dev

通过多线程将值分配给稀疏矩阵时出现段错误

来自分类Dev

将1.2GB的边缘列表转换为稀疏矩阵

来自分类Dev

将1x1稀疏矩阵转换为标量

来自分类Dev

将大型csv转换为稀疏矩阵以在sklearn中使用

来自分类Dev

将pandas df从长到宽转换为稀疏矩阵

来自分类Dev

将matlab稀疏矩阵转换为单精度

来自分类Dev

如何将 Pandas Dataframe 转换为稀疏矩阵?

来自分类Dev

密集与稀疏矩阵代数的速度

来自分类Dev

稀疏矩阵乘以密集矩形矩阵

来自分类Dev

将numpy矩阵转换为pyspark rdd

来自分类Dev

将字典列表转换为numpy矩阵?

来自分类Dev

将元组字典转换为numpy矩阵

Related 相关文章

  1. 1

    使用cuSPARSE将密集矩阵转换为稀疏CSR格式

  2. 2

    将稀疏矩阵行转换为密集泄漏存储

  3. 3

    numpy:将稀疏矩阵转换为ndarray

  4. 4

    如何将“ SciPy稀疏矩阵”转换为“ NumPy矩阵”?

  5. 5

    如何将稀疏矩阵转换为密集邻接矩阵?

  6. 6

    直接将Pandas数据框转换为稀疏Numpy矩阵

  7. 7

    将python稀疏矩阵dict转换为scipy稀疏矩阵

  8. 8

    如何将.txt的稀疏表示形式转换为scipy中的密集矩阵?

  9. 9

    将大型稀疏矩阵转换为COO时出错

  10. 10

    当我们在稀疏矩阵上执行apply()时,它会自动将其转换为密集矩阵吗?

  11. 11

    当我们在稀疏矩阵上执行apply()时,它会自动将其转换为密集矩阵吗?

  12. 12

    将行矩阵转换为微风密集矩阵

  13. 13

    将稀疏矩阵(dgCMatrix)转换为realRatingMatrix

  14. 14

    将Scipy稀疏矩阵转换为元组

  15. 15

    将稀疏矩阵索引列表转换为R中的矩阵

  16. 16

    tensorflow:使用 tf.matmul 将稀疏矩阵与密集矩阵相乘时出错

  17. 17

    将Numpy Float64稀疏矩阵转换为熊猫数据框

  18. 18

    通过多线程将值分配给稀疏矩阵时出现段错误

  19. 19

    将1.2GB的边缘列表转换为稀疏矩阵

  20. 20

    将1x1稀疏矩阵转换为标量

  21. 21

    将大型csv转换为稀疏矩阵以在sklearn中使用

  22. 22

    将pandas df从长到宽转换为稀疏矩阵

  23. 23

    将matlab稀疏矩阵转换为单精度

  24. 24

    如何将 Pandas Dataframe 转换为稀疏矩阵?

  25. 25

    密集与稀疏矩阵代数的速度

  26. 26

    稀疏矩阵乘以密集矩形矩阵

  27. 27

    将numpy矩阵转换为pyspark rdd

  28. 28

    将字典列表转换为numpy矩阵?

  29. 29

    将元组字典转换为numpy矩阵

热门标签

归档