sklearn LogisticRegression不接受csr_matrix

时间:2013-02-09 05:55:07

标签: scikit-learn

我是一个新手,我必须根据De Pauw和Wagacha(1998)的方法对词典的词进行分类(基本上,最大限度地使用char-gram)。数据非常大(500 000个条目和数百万个n-gram)。所以我必须将样本加载为稀疏矩阵。但是我遇到了一个问题。 sklearn.linear_model.LogisticRegression()。fit(X,y)表示它不接受scipy.sparse.csr.csr_matrix训练向量。我收到了这个错误

Traceback (most recent call last):
  File "test-LR-4.py", line 8, in <module>
    clf.fit(X,y)
  File "/usr/lib/pymodules/python2.7/sklearn/svm/base.py", line 441, in fit
    % type(X))
ValueError: Training vectors should be array-like, not <class 'scipy.sparse.csr.csr_matrix'>

以下脚本:

from sklearn.linear_model import LogisticRegression
import numpy as np
import scipy.sparse as sp
X = sp.csr_matrix([[0, 1, 2],[1, 2, 3],[3, 2, 1]])
y = np.array(range(3))
clf=LogisticRegression(dual=True)
clf.fit(X,y)

提前感谢您的帮助,

最佳,

- Nabil Hathout

1 个答案:

答案 0 :(得分:0)

如@Andreas和@Fred Foo在评论中所述,升级sklearn版本(> 0.13)将解决此问题。