Python sklearn-svm中的稀疏预计算Gram矩阵?

Python sklearn-svm中的稀疏预计算Gram矩阵?,python,scipy,scikit-learn,svm,sparse-matrix,Python,Scipy,Scikit Learn,Svm,Sparse Matrix,我想将一个稀疏的预计算Gram矩阵传递给sklearn.svm.SVC.fit。下面是一些工作代码: import numpy as np from sklearn import svm X = np.array([[0, 0], [1, 1]]) y = [0, 1] clf = svm.SVC(kernel='precomputed') gram = np.dot(X, X.T) clf.fit(gram, y) 但如果我有: from scipy.sparse import csr_m

我想将一个稀疏的预计算Gram矩阵传递给sklearn.svm.SVC.fit。下面是一些工作代码:

import numpy as np
from sklearn import svm
X = np.array([[0, 0], [1, 1]])
y = [0, 1]
clf = svm.SVC(kernel='precomputed')
gram = np.dot(X, X.T)
clf.fit(gram, y) 
但如果我有:

from scipy.sparse import csr_matrix
sparse_gram = csr_matrix(gram)
clf.fit(sparse_gram, y)
我得到:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/sklearn/svm/base.py", line 191, in fit
    fit(X, y, sample_weight, solver_type, kernel)
  File "/usr/local/lib/python2.7/dist-packages/sklearn/svm/base.py", line 235, in _dense_fit
    max_iter=self.max_iter)
TypeError: Argument 'X' has incorrect type (expected numpy.ndarray, got csr_matrix)
所以我猜,正如它所说,“稀疏的预计算内核不受支持”,这确实是我想要做的,所以我可能运气不好。(这是一个错误,我实际上没有看到这个错误吗?)

所以我可能运气不好

是的。很抱歉

我没有看到那个错误,这是一个bug吗

是的,它是:发布的代码集

self._sparse = sp.isspmatrix(X) and not self._pairwise
然后检查

self._sparse and self._pairwise
提出例外情况。这一条件是不可能实现的。我刚按了一个按钮来解决这个问题,谢谢你的报告

self._sparse and self._pairwise