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]
不,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}。