4

我相信支持多标签分类,我不必使用 OneVsRestClassifier SGDClassifier()检查这个loss='log'

现在,我的数据集非常大,我正在使用HashingVectorizer并将结果作为输入传递给SGDClassifier. 我的目标有 42048 个特征。

当我运行它时,如下所示:

clf.partial_fit(X_train_batch, y)

我得到:ValueError: bad input shape (300000, 42048)

我也使用类作为参数如下,但仍然是同样的问题。

clf.partial_fit(X_train_batch, y, classes=np.arange(42048))

在 SGDClassifier 的文档中,它说y : numpy array of shape [n_samples]

4

1 回答 1

5

不,不做SGDClassifier多标签分类——它做多类分类,这是一个不同的问题,尽管两者都是使用一对多的问题减少来解决的。

然后,SGD 也OneVsRestClassifier.fit不会接受 的稀疏矩阵y。正如您已经发现的那样,前者需要一系列标签。后者出于多标签的目的需要标签列表的列表,例如

y = [[1], [2, 3], [1, 3]]

表示X[0]有标签 1、X[1]有标签{2,3}X[2]有标签{1,3}

于 2013-12-03T13:46:36.157 回答