Python Sklearn,使用稀疏矩阵的样本数不一致

Python Sklearn,使用稀疏矩阵的样本数不一致,python,numpy,scipy,scikit-learn,sparse-matrix,Python,Numpy,Scipy,Scikit Learn,Sparse Matrix,我正在使用多类SVM的sklearn实现 我的模型应该有多个输出,所以我在标签上使用了一个热编码() 这给了我一个每个样本的标签向量,y_序列是一个形状的csr_矩阵(n_样本,n_类)(18171,17) 我的训练集是以一个形状(n_样本,n_特征)的scipy的形式出现的,特别是(181711001) 这训练了几个分类器,每个分类器都有一片标签 但我得到这个警告: "DataConversionWarning: A column-vector y was passed when a 1d a

我正在使用多类SVM的sklearn实现

我的模型应该有多个输出,所以我在标签上使用了一个热编码()

这给了我一个每个样本的标签向量,y_序列是一个形状的csr_矩阵(n_样本,n_类)(18171,17)

我的训练集是以一个形状(n_样本,n_特征)的scipy的形式出现的,特别是(181711001)

这训练了几个分类器,每个分类器都有一片标签

但我得到这个警告:

"DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel()."
这个错误是:

"Found input variables with inconsistent numbers of samples: [18171, 1]"
如果我不为标签使用稀疏矩阵,那么一切都可以正常工作,但我不确定使用密集标签表示是否会导致算法使用密集矩阵(性能损失)

另外,我不理解这个问题,因为形状是一致的


这是sklearn的问题吗?

在上述代码中,在
mlb.fit()
之前使用
mlb.transform()
。我希望在真正的代码中不是这样。另外,请发布错误的完整堆栈跟踪,并在训练前打印它们的值,重新检查
X\u列
y\u列
的形状。在上述代码中,在
mlb.fit()之前使用
mlb.transform()
。我希望在真正的代码中不是这样。另外,请发布错误的完整堆栈跟踪,并在训练之前通过打印其值重新检查
X\u列
y\u列
的形状。
"DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel()."
"Found input variables with inconsistent numbers of samples: [18171, 1]"