机器学习 – 为什么一个热门编码可以提高机器学习性能?

我注意到,当在特定数据集(矩阵)上使用One Hot编码并将其用作学习算法的训练数据时,与使用原始矩阵本身作为训练数据相比,它在预测准确性方面提供了明显更好的结果.这种性能提升如何发生?
许多学习算法要么学习每个特征的单个权重,要么使用样本之间的距离.前者是逻辑回归等线性模型的情况,易于解释.

假设您的数据集只有一个分类特征“国籍”,其值为“UK”,“French”和“US”.在不失一般性的情况下,假设这些被编码为0,1和2.然后,在线性分类器中具有该特征的权重w,其将基于约束w×x b>来做出某种决定. 0或等效地w×x <0.湾 现在的问题是重量w不能编码三向选择. w×x的三个可能值是0,w和2×w.这三者都导致相同的决定(他们都是< b或≥b)或“UK”和“French”导致相同的决定,或者“French”和“US”给出相同的决定.模型不可能知道“UK”和“US”应该被赋予相同的标签,“French”则是奇怪的. 通过单热编码,您可以有效地将特征空间炸成三个特征,每个特征都会得到自己的权重,因此决策函数现在是[英国] x [英国] w [FR] x [FR] w [US ] x [US]< b,所有x都是布尔值.在这个空间中,这样的线性函数可以表达任何可能性的总和/分离(例如“英国或美国”,这可能是说英语的人的预测因子). 类似地,任何基于标准距离度量(例如k-最近邻居)的学习者将在没有单热编码的情况下混淆.使用朴素编码和欧几里德距离,法国和美国之间的距离是1.美国和英国之间的距离是2.但是使用单热编码,[1,0,0],[0,1]之间的成对距离,0]和[0,0,1]都等于√2. 对于所有学习算法都不是这样;决策树和派生模型,如随机森林,如果足够深,可以处理分类变量而无需单热编码.

相关文章