科学文献中所谓的“单热”编码是什么?


10

采取分类矢量并将其使用一键编码转换为二进制表示形式的运算符的名称是什么?我在想,因为我写的是科学论文,因此需要适当的名称。


3
虚拟编码是另一个名称。在机器学习中,每个人都只使用一种简单的类型,因此很清楚这是什么,但是还有其他类型的对比编码(另一个名称)以及减号和其他概念,它们在统计中使用相似的角色,等等。您可以更具体一些。
Gijs

7
在统计和数据分析中,早在机器学习之前,这种类型的分类编码就称为虚拟变量,又称为指示符类型对比变量。
ttnphns

Answers:


18

统计人员称单热编码为伪编码。正如其他人所建议的(包括注释中的Scortchi),这不是确切的同义词,但这是通常用于0-1编码的分类变量的术语。

另请参阅:“虚拟变量”与“指标变量”的名义/分类数据


3
h!不敢相信我忘记了。我也将它们称为指标。
蒂姆·阿特里德斯

2
我认为“虚拟编码”不是一个很好的同义词。它在一般意义上用来表示带有一组数字变量的分类变量,或用于与“单次热编码”不同的“参考级编码”,例如在单次热编码与伪编码的问题中。“水平均值编码”(请参阅回归模型中是否存在所谓的“均值编码”(如虚拟编码和效果编码)?)表示单次热编码,但也可能表示线性模型上下文...
Scortchi-恢复莫妮卡

2
...强烈用于一般用途。
Scortchi-恢复莫妮卡

3
我从来没有见过定义,但是对我来说,统计中的虚拟变量总是意味着用(N-1)个变量对N个因子进行编码,而单热编码将使用N个变量对N个因子进行编码。在实践中,这种差异非常重要。如果一个人使用一热编码进行回归,由于变量的依赖性,那么一无是处!
meh

2
@aginensky尽管人们当然应该确切地注意他们拥有什么变量,但是在这种情况下,良好的回归例程不会产生任何废话:它只会忽略一个预测变量,并告诉您。
尼克·考克斯

8

这取决于您的目标受众。

正如Tim所说,统计学家称之为虚拟编码,这就是我在描述诸如回归模型之类时所期望的。“包括了虚拟编码变量以适应商店的位置。” 我认为将其称为“一键编码”似乎有点奇怪。

但是,正如另一位Tim所说,在机器学习文献中,单热编码相当普遍。至少对我而言,它隐含暗示存在节点(如在神经网络中),物理线(在设备中)或类似的东西。

形式上,我猜您正在应用一组指标函数,但是在证明之外,这可能太正式了。IX


6

该术语来自电子工程。试想一下谁会称1为“热”?只有那些用电工作的人,“热”或“带电”的意思是电线上有电势。“一个热”是指电路设计,其中一根电线上的离散电信号电平将被解码为一组电线上的热/冷。我想有些具有EE背景的机器学习人员发现了这种类比引人注目。

在计量经济学和统计学中,您可能会遇到dummyindicator变量,它们非常相似,因为它们用于代表具有不同指标的不同类别。虽然有细微的差别。例如,您为K个类别制作了K-1个虚拟变量,因为基本类别对应于所有设置为0的虚拟变量。相反,我认为在一种热编码中,您有K条导线,其中基本类别将具有自己的导线(变量)。


5

我接受过统计训练,最近听说过机器学习/计算机科学中的“一次性编码”。通常,我通常将一次性引用的矩阵称为设计矩阵/数据矩阵/设计框架。


你有我可以引用的参考吗?我正在写一本科学出版物,并想为所有读者弄清楚这种方法,因为该论文不是针对ML社区而是更广泛的。
fractile

不能说我曾经听过“ one-hotted”作为动词。但我类似地从数学/统计方向来解决这个问题。(Google在“ one-hotted”上的结果很有趣-我混合了机器学习的含义和人们谈论的“ one hotted-up car”。)
Michael Lugo

3

在物理科学和工程学中,它被称为(广义的)克罗内克三角洲

最简单的形式是将Kroneker delta定义为尽管这很容易概括为 δ [ 条件]{ 1 如果[ 条件] 0 别的

δi,j{1ifi=j0else,
δ[condition]{1if[condition]0else.

因此,“ ”通常会被读为 其中大多数如果从上下文可以明显看出类别,则作者倾向于将其截断为“ ”。δ 类别{ 1 如果类别0 否则 δ δicategory

δicategory{1ificategory0else,
δi

Kronecker delta在Sigma / Pi / Einstein / etc中非常有用。符号,因为它允许有条件地指定术语。

只是这与常见的编程结构,Kronecker符号的condition?1:0,这里?:有条件的经营者


切记,我鼓励作者放弃老式的,而转而使用广义等效项。老式表示法没有任何优势,而广义表示法则更加明确和可扩展。δ = Ĵδi,jδi=j


我在这里看不到链接。对于变量的每个状态,hot都会将一个变量解码为一组。如何在此应用程序中使用Kronecker delta?
阿克萨卡族人

@Aksakal 这篇文章提供了使用可能的值“ VW ”,“ Acura ”和“ Honda ” 对类别“ CompanyName ” 进行编码的示例,它们通过这些值名称变成三个变量,其中,@添的回答呼吁那些“虚拟变量”。这些与Kronecker deltas,和。{0,1}δVWδAcuraδHonda
Nat

@Aksakal我更喜欢广义的表示法,但是在旧的表示法,它应该是等。 。δi,jδCompanyName,VW
纳特

虚拟对象的工作方式如下:您拥有名为和的变量。您的观察,因此您得到的值和,当汽车为HONDA时均为零。注意,这里不是汽车的品牌,而是观察的编号。我仍然看不到如何将其连接到Kronecker三角洲。说,如果原始变量为,则增量将像VWACURAi=1..NVWiACURAiiCARiVWi=δ(CARi,VW)
Aksakal

VWiδVWiδiVWi10

2

1K

这是这本书的引文,

K1KKxxk0 K = 6 x 3 = 1 x10K=6状态和对该变量的特定观察恰好对应于的状态,则 将表示为,x3=1x

x=(0,0,1,0,0,0)T

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.