3

我是新手,我必须根据 De Pauw 和 Wagacha (1998) 方法(基本上是 char n-gram 上的 maxent)对词典中的单词进行分类。数据非常大(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)
4

1 回答 1

2

正如@Andreas 和@Fred Foo 在评论中提到的,升级sklearn版本(> 0.13)将解决问题。

于 2019-07-05T11:21:23.797 回答