我有一个UserWarning:未知类(es)时使用MultiLabelBinarizer



我使用MultiLabelBinarizer进行多分类问题。当我对测试数据进行变换时,我得到了以下警告;_label.py:994: UserWarning: unknown class(es)['235', '256', '546', '425']将被忽略警告。警告('未知类(es){0}将被忽略'。有没有办法避免这个警告?它会影响分类器的性能吗?

mlb = MultiLabelBinarizer()
mlb.fit(df_train['outcome'])
y_train = mlb.transform(df_train['outcome'])
y_test = mlb.transform(df_test['outcome'])
print(y_training)
print(y_validation)

这意味着测试数据中的类不在训练数据中。我建议将mlb匹配到训练和测试结果的组合列表中。分类器的性能受到影响,因为你的测试数据中的结果在你的训练数据中没有实例供你的模型训练。

这将影响分类器的性能,但以一种好的方式,因为在训练和测试数据上拟合Binarizer将是一种数据泄漏形式。

我反对拟合所有数据。测试集是您的管道/模型以前从未见过的新数据的模拟,因此您不会包含它。该警告告诉您对象的运行完全符合预期。它构建特征的词汇表(.classes_),然后用相同的词汇表转换新数据。如果有它没有看到的新特性,它将在转换中忽略它们,然后引发警告。

相关内容

  • 没有找到相关文章

最新更新