假设我有以下输入功能:
hotel_id = [1, 2, 3, 2, 3]
这是具有数值的分类特征。如果我按原样将其提供给模型,模型会将其视为连续变量,即 2 > 1。
如果我申请 sklearn.labelEncoder()
那么我会得到:
hotel_id = [0, 1, 2, 1, 2]
那么这个编码特征被认为是连续的还是分类的?如果它被视为连续的,那么 labelEncoder() 有什么用。
PS 我知道一种热编码。但是大约有 100 个 hotel_id,所以不想使用它。谢谢
原文由 Neo 发布,翻译遵循 CC BY-SA 4.0 许可协议
LabelEncoder
是一种编码等级的方法。除了您包含的整数示例之外,请考虑以下示例:那么,
LabelEncoder
允许我们做的是将有序级别分配给分类数据。 但是,您注意到的是正确的:即[2, 2, 1]
被视为数字数据。这是使用OneHotEncoder
虚拟变量(我知道你说过你不希望使用它)的一个很好的候选者。请注意,
LabelEncoder
必须在单热编码之前使用,因为OneHotEncoder
无法处理分类数据。因此,它经常被用作单热编码的先驱。或者,它可以将您的目标编码为可用数组。例如,如果
train
是您的分类目标,您将需要LabelEncoder
将其用作您的 y 变量。