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

2024-04-16 08:37:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我将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的问题吗?在


Tags: of分类器train矩阵标签向量classes形状