Numpy 使用np垂直堆叠列表。vstack抛出错误

Numpy 使用np垂直堆叠列表。vstack抛出错误,numpy,scikit-learn,multilabel-classification,Numpy,Scikit Learn,Multilabel Classification,为了开发文本的多标签OnevsRest分类器,我遵循这段代码。我想计算hamming_分数,因此也需要对我的测试标签进行二值化。因此,我: X_train, X_test, labels_train, labels_test = train_test_split(meetings, labels, test_size=0.4) 这里,标签列和标签测试是列表列表 [['dog', 'cat'], ['cat'], ['people'], ['nice', 'people'

为了开发文本的多标签OnevsRest分类器,我遵循这段代码。我想计算hamming_分数,因此也需要对我的测试标签进行二值化。因此,我:

        X_train, X_test, labels_train, labels_test = train_test_split(meetings, labels, test_size=0.4)
这里,标签列和标签测试是列表列表

    [['dog', 'cat'], ['cat'], ['people'], ['nice', 'people']]
现在我需要对我所有的标签进行二值化,因此我正在这样做

     all_labels = np.vstack([labels_train, labels_test])
     mlb = MultiLabelBinarizer().fit(all_labels)
按照链接中的指示。但这会让你失望

    ValueError: all the input array dimensions except for the concatenation axis must match exactly
我按照这里的指示使用了np.column\u堆栈

但这也带来了同样的错误


如果我在火车上分路测试,我一定会得到不同的形状,那么尺寸怎么可能相同呢?请帮忙,谢谢

MultilabelBinarizer直接作用于列表列表,所以您不需要使用numpy来堆叠它们。直接发送列表,无需堆叠

all_labels = labels_train + labels_test
mlb = MultiLabelBinarizer().fit(all_labels)

当使用诸如
vstack
column\u stack
之类的函数时,请确保您知道组件阵列的
形状
,或将使用
np.array(..)
生成的阵列。不要把变量放在一起,希望它们能工作。这个
dog/cat
列表有4个项目,有些是2长的,有些是1长的。这对于
堆叠来说不太合适。你想生产什么?