我将sklearnSVC实现用于多类支持向量机。在
我的模型应该有多个输出,所以我在我的标签上使用了一个热编码(MultiLabelBinarizer)。在
mlb = MultiLabelBinarizer(classes=classes, sparse_output=True)
y_train = mlb.transform(y_train)
mlb.fit(y_train)
这给了我一个每个样本的标签向量,y列是一个形状的csr_矩阵(n个样本,n个类),特别是(18171,17)。在
我的训练集是一个形状(n个样本,n个特征)的scipycsc_matrix形式,特别是181711001。在
^{2}$这将训练多个分类器,每个分类器都有一个标签片段。在
但我得到这样的警告:
"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的问题吗?在
目前没有回答
相关问题 更多 >
编程相关推荐