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

2024-03-18

我相信SGDClassifier() with loss='log'支持多标签分类,我不必使用 OneVsRestClassifier。检查这个 https://stackoverflow.com/questions/15036630/batch-gradient-descent-with-scikit-learn-sklearn

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

当我运行这个时,如下:

clf.partial_fit(X_train_batch, y)

I get: 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]


No, SGDClassifier does not进行多标签分类——确实如此多类分类,这是一个不同的问题,尽管两者都是使用一对多问题简化来解决的。

那么,SGD 和OneVsRestClassifier.fit http://scikit-learn.org/stable/modules/generated/sklearn.multiclass.OneVsRestClassifier.html#sklearn.multiclass.OneVsRestClassifier.fit将接受稀疏矩阵y。正如您已经发现的那样,前者需要一系列标签。出于多标签的目的,后者需要一个标签列表的列表,例如

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

来表示X[0]有标签 1,X[1]有标签{2,3} and X[2]有标签{1,3}.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scikit 多标签分类:ValueError:错误的输入形状 的相关文章

随机推荐