假设您有一个数据集,它只有一个分类特征“国籍”,值为“英国”、“法国”和“美国”。假设,不失一般性,这些被编码为0,1和2。然后在一个线性分类器中为这个特征赋予一个权重 w,它将根据约束 w × x + b > 0或等效于 w × x < b 来做出某种决定。
现在的问题是权重 w 不能编码一个三向选择。W × x 的三个可能值分别是0,w 和2 × w。要么这三个都导致相同的决定(它们都是 < b 或≥ b) ,要么“ UK”和“ French”导致相同的决定,要么“ French”和“ US”导致相同的决定。这个模型不可能知道“英国”和“美国”应该被贴上相同的标签,而“法国”则被排除在外。
通过一次热编码,可以有效地将特征空间扩展为三个特征,每个特征都有自己的权重,因此决策函数现在是 w [ UK ] x [ UK ] + w [ FR ] x [ FR ] + w [ US ] x [ US ] < b,其中所有的 x 都是布尔值。在这个空间中,这样一个线性函数可以表示任何可能性的求和/析取(例如,“ UK or US”,它可能是某个说英语的人的预测)。
类似地,任何基于样本间标准距离度量(如 k 最近邻)的学习者在没有一热编码的情况下都会感到困惑。按照幼稚的编码和欧几里得度量,法语和美国之间的距离是1。美国和英国之间的距离是2。但是使用单热编码,[1,0,0] ,[0,1,0]和[0,0,1]之间的成对距离都等于√2。