Answers:
许多学习算法或者每个特征学习一个权重,或者使用样本之间的距离。前者是逻辑模型(例如逻辑回归)的情况,很容易解释。
假设您有一个数据集,该数据集仅具有一个单一分类特征“国籍”,值分别为“ UK”,“ French”和“ US”。在不失一般性的前提下,假设将它们编码为0、1和2。然后,在线性分类器中对该特征进行权重w处理,它将基于约束w×x + b> 0做出某种决策。 ,或等效地w×x <b。
现在的问题是权重w无法编码三路选择。w×x的三个可能值为0,w和2×w。这三个因素都导致相同的决定(都是<b或≥b),或者“ UK”和“ French”导致相同的决定,或者“ French”和“ US”给出相同的决定。该模型不可能得知“ UK”和“ US”应具有相同的标签,而“ French”则是奇数。
通过一键编码,您可以有效地将特征空间扩展为三个特征,每个特征将获得各自的权重,因此决策函数现在为w [UK] x [UK] + w [FR] x [FR] + w [US] x [US] <b,其中所有x均为布尔值。在这个空间中,这样的线性函数可以表达各种可能性的总和/分离(例如“ UK或US”,这可能是说英语的人的预测指标)。
类似地,任何基于样本之间标准距离度量标准(例如k近邻)的学习者都会感到困惑,而无需进行一次热编码。使用朴素编码和欧几里得距离,法国和美国之间的距离为1。美国和英国之间的距离为2。但是使用单点编码,[1、0、0],[0、1之间的成对距离,0]和[0,0,1]都等于√2。
并非所有的学习算法都是如此。决策树和诸如随机森林之类的派生模型(如果足够深的话)可以在无需一键编码的情况下处理分类变量。
当您要预测类别时,您要预测集合中的项目。不使用一次性编码类似于让类别具有以某种方式和某种顺序组织的邻居类别(例如:如果您使用类别的整数进行了回归)。
现在,如果您将类别0分配给0,将类别1分配给1,将类别2分配给2而没有使用一键编码,那么会发生什么,并且算法的预测不确定是否应该选择0或2:尽管他认为是0还是2?
您会看到它的去向。您的数据输入也是如此:如果不应将它们视为邻居,则不要将它们作为邻居显示给您的算法。