多标签分类,k 或 k-1 类?

问题描述 投票:0回答:1

我正在尝试对包含 11 个类别的数据集执行多标签分类。图像可以包含零个或多个这些类别的对象。

我正在使用 sklearn MultiLabelBinarizer 对标签进行编码。 假设我有一个包含 4 个类别的标签集:A、B、C 和负类别。

我是否应该使用所有 k 类进行编码,以便负样本具有标签 [0 0 0 1] 或者更确切地说,使用 k-1 类,这样负样本将具有标签 [0 0 0]

这有什么不同吗?

到目前为止,我已经使用所有 k 个类进行编码进行分类。但是,我不确定这是否是正确的做法

python scikit-learn encoding classification
1个回答
0
投票

在机器学习中,我认为通常的做法是使用 k 个类。 k-1 格式主要用于未正则化的线性模型,其中冗余类会使模型的系数无法解释(如果算法对完美多重共线性不具有鲁棒性,也可能导致算法崩溃)。

如果以下一项或多项适用,我认为您应该使用 k:(1)您正在使用模型进行预测,而不是解释模型的系数。 (2) 您正在使用迭代求解器,例如梯度下降。 (3) 您的模型具有参数正则化。 (4) 模型是非线性的。

我的理解是,对于这些条件中的任何一个,使用 k 而不是 k-1 都可以。您可能已经掌握了所有 4 种方法,这在 ML 中很常见。

© www.soinside.com 2019 - 2024. All rights reserved.