我们知道,在处理非序数数据时,我们更喜欢使用One-Hot Encoding而不是Label Encoding 。
我真的有一个博客,它给出了Label Encoding和One-Hot Encoding之间的区别。
所以我想知道为什么One-Hot Encoder可以避免模型将数据误解为某种顺序的情况,如果数据已经标签编码。
它有一些证明和理论吗?
或者任何人都可以凭直觉解释。
提前致谢。
为什么 One-Hot Encoder 可以避免数据经过 Label Encoding 后模型会误认为数据是某种顺序的情况
数据挖掘
机器学习
数据
数据分析
编码
2022-02-08 13:05:30
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,我不相信他。
其它你可能感兴趣的问题