4

我正在使用“multiclass.OneVsRestClassifier”和“cross_validation.StratifiedKFold”。当我对多标签问题进行交叉验证时,它失败了。是否可以对多标签问题 scikit-learn 执行交叉验证?

我认为问题出在类标签列表的元组中,例如([1]、[2]、[2]、[1]、[1,2]、[3]、[1,2,3]。.. )

我认为此错误的代码如下:

n_samples = X.shape[0]
Y_list = [value for value in Y.T]
print 'Y_list[0].shape:', Y_list[0].shape, 'len(Y_list):', len(Y_list)
cv = cross_validation.StratifiedKFold(Y_list, 3)
4

1 回答 1

5

如果您打算使用 scikit-learn 解决多标签任务,建议首先使用MultilabelBinarizer将您的输出转换为标签二进制指示符。

分层 k-fold 不支持多标签格式,因为它需要平衡每个标签的正数比例。相反,您可以使用K-foldsshuffle 拆分交叉验证策略。

于 2015-04-28T12:11:38.517 回答