为什么一种热编码可以提高机器学习性能?
data-mining
machine-learning
scikit-learn
5
0

我注意到,将One Hot编码用于特定数据集(矩阵)并用作学习算法的训练数据时,与使用原始矩阵本身作为训练数据相比,在预测准确性方面,它给出的结果要好得多。如何提高性能?

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

关于通过一键编码增加特征,可以使用特征哈希。进行哈希处理时,可以将存储桶的数量指定为比新引入的功能的数量少得多。

收藏
评论

许多学习算法要么学习每个特征的权重,要么使用样本之间的距离。前者是线性模型的情况,例如逻辑回归,这很容易解释。

假设您有一个数据集,该数据集仅具有一个单一的分类特征“国籍”,值分别为“ 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。

并非所有学习算法都是如此。如果决策树和诸如随机森林之类的派生模型足够深,则无需进行一键编码就可以处理分类变量。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号