为什么 One-Hot Encoder 可以避免数据经过 Label Encoding 后模型会误认为数据是某种顺序的情况

数据挖掘 机器学习 数据 数据分析 编码
2022-02-08 13:05:30

我们知道,在处理非序数数据时,我们更喜欢使用One-Hot Encoding而不是Label Encoding 。
我真的有一个博客,它给出了Label EncodingOne-Hot Encoding之间的区别
所以我想知道为什么One-Hot Encoder可以避免模型将数据误解为某种顺序的情况,0<1<2如果数据已经标签编码
它有一些证明和理论吗?
或者任何人都可以凭直觉解释。
提前致谢。

2个回答

在博客中,一种热编码通过明确显示 1 个类别为真,而所有其他类别为假(1 对 0)来解决该问题。一列变成三列,将所有类别描述为真或假。

与让模型看到包含 0、1 和 2 的一列相反。用标签编码显示此数据的一列确实使数据看起来像是数字的,因此 0 < 1 < 2。

好问题!

这可能会有所帮助:

假设您有三个国家:美国、德国和中国。没有排名。

标签编码将国家变成数字。

例如,1(美国)、2(德国)和 3(中国)。

如果您不使用 One Hot Encode,则该理论指出(来源:Sebastian Raschka “Machine Learning with Python”),您创建了序数。

换句话说,美国比德国好,德国比中国好。

由于您没有排名(顺序),因此您不希望这样做。因此,我们 One Hot Encode。

就个人而言,我已经对此进行了多次测试,并且仅使用逻辑回归进行了标签编码(不是排名特征),并且没有看到差异但我只做过几次。而且,如果像 Sebastian Raschka 这样的 ML 专家说我们应该对非序数数值数据进行 One Hot Encode,我不相信他。