【发布时间】:2020-08-27 08:14:09
【问题描述】:
对于序数特征,使用标签编码是有意义的。但是对于分类特征,我们使用一种热编码。但这些是输入特征的约定。但是对于输出变量,如果输出标签是分类的,是否有必要使用一种热编码?或者我也可以使用标签编码?哪一个更可取?
我正在训练一个有 120 个类别的水果分类器。我使用在 ImageNet 上预训练的 ResNet50 模型作为特征提取器,并使用这些特征训练逻辑回归分类器(迁移学习)。由于有 120 个类,对于标签编码,标签的范围从 0 到 119。训练模型保持标签编码是否可以?我之所以这样问,是因为在 sklearn 的以下文档中,他们允许我这样做:
sklearn.preprocessing.LabelEncoder
他们在说:
..."这个转换器应该用于编码目标值,即 y,而不是输入 X。"
但我很困惑为什么这样做是可以的,因为在标签编码中每个输出变量都没有获得与我使用一种热编码时相同的优先级。
【问题讨论】:
-
One Hot 是标签编码器的一个选项
-
请注意,在序数特征上使用 LabelEncoder 也不是一个好主意,您需要一个 OrdinalEncoder。标签编码器只能在目标上使用,请参阅here
标签: machine-learning scikit-learn logistic-regression one-hot-encoding label-encoding