哪些算法需要一键编码?


12

我永远不确定何时对非排序分类变量使用一键编码,何时不使用。每当算法使用距离度量来计算相似性时,我都会使用它。谁能给出一般的经验法则,即哪些类型的算法需要对非有序分类特征进行一次热编码,而哪些则不需要?


2
您是在问是否需要将分类数据编码为某种类型的“对比变量”,或者专门将其编码为虚拟(单变量)类型?
ttnphns

1
这个问题有点笼统,但是一个简单的答案可以解决OHE的本质,可以消除OP的困惑。这些答案的存在意味着这个问题是可以回答的。我投票决定不公开。
gung-恢复莫妮卡

老实说,@ ttnphns我不知道您所说的对比度变量是什么意思。我只熟悉假人。
cosmosa

虚假的宇宙(=指示器=一个热点)只是在分析中对分类可雕刻物体进行编码的多种方法之一。这些方法统称为“对比变量”。参见stats.meta.stackexchange.com/q/4669/3277stats.stackexchange.com/a/221868/3277
ttnphns

1
我认为您要索取的完整清单将很难产生。
mdewey

Answers:


6

大多数算法(线性回归,逻辑回归,神经网络,支持向量机等)都需要对分类变量进行某种编码。这是因为大多数算法仅将数值作为输入。

不需要编码的算法是可以直接处理联合离散分布的算法,例如马尔可夫链/朴素贝叶斯/贝叶斯网络,基于树的等等。

补充评论:


对于MOST算法是否需要一种热编码仍然不清楚。您只是说编码是必需的。但这是一种热门编码吗?
Prometheus

4

谁能列出哪些算法需要对分类特征进行一次热编码,而哪些则不需要?

对于AFAIU,它必须对特定数据做更多的事情,而对特定算法则做更少的事情。具体来说,这取决于类别中是否存在有意义的顺序。

考虑两种情况。在第一个中,您有坏,梅,好类别在第二个中,您有苹果,橙子,梨。有在第一种情况下的自然顺序,因为MEH可能是与,但可能没有任何类似的情况发生在苹果,橘子,梨

如果您在第一种情况下避免使用一次性编码,则会“丢失”有关订单的信息。如果在第二种情况下使用单点编码,则将某些顺序分配给自然不正确的类别。

每当算法使用距离度量来计算相似性时,我都会这样做。

为什么?假设功能之一是绝对的bad,meh,good,并且您具有三个实例1、2和3,它们是相同的,除了1 不好,2是meh和3很好。您可能想向算法表达1与2的相似度大于与3的相似度。


2
这是一个很好的答案。我应该已经澄清了这个问题,尽管它也包括无序分类变量。在那种情况下,应该始终是一种热编码吗?
cosmosa

@ cosmos1990恕我直言,根据经验,对于无序分类数据,单热编码是行之有效的方法(与数字值的分配相反)。
艾米·塔沃里

2

没有机器学习算法需要 一种热编码。这是处理分类变量的一种方法。虚拟变量是另一个。传统上,虚拟变量是首选解决方案。例如,R函数lm()自动为分类数据创建伪变量。如果您使用的是python和scikt-learn,那么我相信其中的许多算法都需要对分类变量进行一键编码。我相信tensorFlow也需要一键编码。这些是变量编码方式的选择。没有理由为什么不能在代码中使用伪变量。所有这些都必须处理算法的实际代码实现。

正如hxd1011指出的那样,描述类别变量之间的“距离”是一个微妙的问题。除了上述距离外,还有贾卡德距离。某些ML方法(尤其是SVM)不适用于分类数据,添加分类变量可能(或两者都会,您决定)会导致模型的预测能力很差。大多数集成模型按原样处理分类数据,不需要进行预处理。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.