scikit 多标签分类:ValueError:输入形状错误

use*_*745 3 classification machine-learning stochastic-process scikit-learn

我beieveSGDClassifier()loss='log'支持多标记分类,我没有使用OneVsRestClassifier。检查这个

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

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

clf.partial_fit(X_train_batch, y)
Run Code Online (Sandbox Code Playgroud)

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

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

clf.partial_fit(X_train_batch, y, classes=np.arange(42048))
Run Code Online (Sandbox Code Playgroud)

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

Fre*_*Foo 5

不,SGDClassifier不是做多标记分类-它多类分类,这是一个不同的问题,虽然两者使用的是一个-VS-所有问题解决了减少。

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

y = [[1], [2, 3], [1, 3]]
Run Code Online (Sandbox Code Playgroud)

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