在多标签样本上使用train_test_split进行分层抽样会显示“ ValueError:找到的输入变量不一致...”

时间:2019-11-23 17:51:27

标签: python scikit-learn one-hot-encoding train-test-split

我正在尝试使用分层采样将我的图像数据集划分为训练集和验证集,但是scykit-learn包中的train_test_split方法出现了问题。

每个图像都经过多标签处理,执行一次热编码后,结果是:

trainPaths=np.array(trainPaths)
trainLabels=np.array(trainLabels)

mlb=MultiLabelBinarizer()
trainLabels=mlb.fit_transform(trainLabels)
print(mlb.classes_)
  

['空中''荷兰人''眼睛''地面''高''臀部''膝盖''低''头顶','肩膀']

print(trainPaths.shape)
print(trainLabels.shape)
  

(3835,)   (3835,10)

因此,两个数据的样本数应保持一致,并且一键编码后标签有10列。 但是,当我尝试执行采样时,会发生这种情况:

(trainPaths, valPaths, trainLabels, valLabels)=train_test_split(trainPaths, trainLabels, test_size=0.15, random_state=42, stratify=mlb.classes_)
  

ValueError:找到输入样本数量不一致的输入变量:[3835,10]

但是,如果我不声明'stratify'选项,则不会发生该错误。数据有问题吗?或者使用多标签样品无法进行分层采样?

0 个答案:

没有答案