題:
科學文獻中所謂的“單熱”編碼是什麼?
fractile
2017-10-20 00:37:07 UTC
view on stackexchange narkive permalink

採用分類矢量並將其轉換為使用一鍵編碼的二進製表示形式的運算符的名稱是什麼? 我在想,因為我正在寫科學論文,因此需要一個適當的名稱。

虛擬編碼是另一個名稱。在機器學習中,每個人都只使用一種簡單的類型,因此很清楚這是什麼,但是還有其他類型的對比編碼(另一個名稱)以及減號和其他概念,它們在統計中使用相似的角色,等等。您可以更具體一些。
在統計和數據分析中,早在機器學習之前,這種類型的分類編碼就稱為_dummy_變量,也稱為_indicator_類型的對比變量。
六 答案:
Tim
2017-10-20 01:22:57 UTC
view on stackexchange narkive permalink

統計學家稱一次性編碼為虛擬編碼。正如其他人所建議的那樣(包括註釋中的 Scortchi ),這不是確切的同義詞,但這是通常用於0-1編碼的分類變量的術語。

另請參見:“虛擬變量”與“指標變量”相對於名義/分類數據

h!不敢相信我忘記了。我也將它們稱為指標。
我認為“虛擬編碼”不是一個很好的同義詞。它在一般意義上用於表示具有一組數字變量的分類變量,或者用於與“單次編碼”不同的“參考級編碼”,例如在[一鍵編碼與偽編碼的問題](https://stats.stackexchange.com/q/290526/17230)中。“平均水平編碼”(請參閱[在回歸模型中是否有所謂的“平均編碼”(如虛擬編碼和效果編碼)?](https://stats.stackexchange.com/q/159702/17230)表示一個熱編碼,但也可能暗示線性模型上下文...
...強烈用於一般用途。
我從來沒有見過定義,但是對我來說,統計中的虛擬變量總是意味著用(N-1)個變量對N個因子進行編碼,而單熱編碼將使用N個變量對N個因子進行編碼。在實踐中,這種差異非常重要。如果使用一熱編碼進行回歸,則由於變量的依賴性,將變得毫無意義!
-1
@ Cox-也許“胡說八道”有點強,但是我保證當我指的是虛擬變量時,我使用one-hot的時間就是我不使用“良好的回歸例程”並且出現問題的時間。
Matt Krause
2017-10-20 02:24:45 UTC
view on stackexchange narkive permalink

這取決於您的目標受眾。

正如 Tim所說,統計學家稱之為虛擬編碼,這就是我在描述諸如回歸模型之類的東西時所期望的。“包括了虛擬編碼變量以適應商店的位置。”我認為在這裡稱它為一鍵編碼似乎有點奇怪。

但是,正如另一位Tim也說過的那樣,單熱編碼在機器學習文獻中相當普遍。至少對我而言,它隱含暗示存在節點(如在神經網絡中),物理線(在設備中)或類似的東西。

從形式上來說,我猜想您正在應用一組指標函數$ \ mathbb {I} _X $,但這在證明之外可能太正式了。

Aksakal
2017-10-20 18:10:19 UTC
view on stackexchange narkive permalink

該術語來自電子工程。試想一下誰會稱1為“熱”?只有那些用電工作的人,“熱”或“帶電”的意思是電線上有電勢。“一個熱”是指電路設計,其中一根電線上的離散電信號電平將被解碼為一組電線上的熱/冷。我想有些具有EE背景的機器學習人員發現了這種類比引人注目。

在計量經濟學和統計學中,您可能會遇到 dummy indicator 變量,它們非常相似,因為它們用於表示具有不同指標的不同類別。雖然有細微的差別。例如,您為K個類別製作了K-1個虛擬變量,因為基本類別對應於所有設置為0的虛擬變量。相反,我認為在一種熱編碼中,您有K條導線,其中基本類別將具有自己的導線(變量)。

Tim Atreides
2017-10-20 00:51:46 UTC
view on stackexchange narkive permalink

我接受過統計訓練,最近聽說過機器學習/計算機科學中的“一次性編碼”。通常,我通常將一次性引用的矩陣稱為設計矩陣/數據矩陣/設計框架。

你有我可以引用的參考嗎?我正在寫一本科學出版物,並想為所有讀者弄清楚這種方法,因為該論文不是針對ML社區而是更廣泛的。
不能說我曾經聽過“ one-hotted”作為動詞。但是,我類似地從數學/統計方向來解決這個問題。(Google在“ one-hotted”上的結果很有趣-我混合了機器學習的含義和人們在談論“一輛hoted-up的汽車”。)
kedarps
2017-10-20 02:46:23 UTC
view on stackexchange narkive permalink
Christopher Bishop的

模式識別和機器學習使用了$ 1 $ -of- $ K $方案。

這是這本書的引文,

二進制變量可用於描述可以採用兩個可能值之一的數量。但是,我們經常會遇到離散變量,它們可能具有$ K $可能的互斥狀態之一。儘管存在各種替代方法來表達此類變量,但我們很快就會看到,一種特別方便的表示形式是$ 1 $ -of-KK $方案,其中變量用$ K $維矢量$ \ textbf {x} $,其中元素$ x_k $之一等於$ 1 $,其餘所有元素等於$ 0 $。因此,例如,如果我們有一個可以包含$ K = 6 $個狀態的變量,並且對該變量的特定觀察恰好對應於$ x_3 = 1 $的狀態,則$ \ textbf {x} $ 將由

表示

$ \ textbf {x} =(0,0,1,0,0,0)^ {T} $

Nat
2017-10-20 08:02:18 UTC
view on stackexchange narkive permalink

在物理科學和工程學中,它稱為(廣義的)克羅內克三角洲

最簡單的形式是將克朗納克三角洲定義為$$ \ begin {align *} {\ delta} _ {i,j} {\ equiv} \ begin {cases} 1 & \ text {if} & i = j \\ 0 & \ text {else} \ end {cases} \ end {align *}, $$$$$$$$$$$$$$$$$$$ \ begin {align *} {\ delta} _ {\ left [\ text {condition} \ right]} {\ equiv} \ begin {cases} 1 & \ text {if} & \ left [\ text {condition} \ right] \\ 0 & \ text {else} \ end {cases} \ end {align *}。 $$

因此,“ $ {\ delta} _ {i {\ in} \ text {category}} $”將被讀為$$ \ begin {align *} {\ delta} _ {i {\ in} \ text {category}} {\ equiv} \ begin {cases} 1 & \ text {if} & i {\ in} \ text {category} \\ 0 & \ text {else} \ end {cases} \ end {align *}, $$ 如果從上下文可以明顯看出類別,那麼大多數作者會傾向於將其截斷為“ $ {\ delta} _ {i} $”。

Kronecker增量在 Sigma / Pi / 愛因斯坦 /等中非常有用。符號,因為它允許有條件地指定術語。

只需將其與常見的編程結構相關聯,即Kronecker delta的 condition?1:0 ,其中?:條件運算符


作為切題,我鼓勵作者放棄老式的$ {\ delta} _ {i,j} $,而轉而使用廣義等效項$ {\ delta} _ {i = j} $ 。老式表示法沒有任何優勢,而廣義表示法則更加明確和可擴展。

我在這裡看不到鏈接。對於變量的每個狀態,hot都會將一個變量解碼為一組。如何在此應用程序中使用Kronecker delta?
@Aksakal [這篇文章](https://hackernoon.com/what-is-one-hot-encoding-why-and-when-do-you-have-to-use-it-e3c6186d008f)給出了一個編碼類別“ _CompanyName_”,可能的值為“ _VW _”,“ _ Acura_”和“ _Honda_”,這些值名稱會成為三個$ \ left \ {0,1 \ right \} $變量,其中[@Tim's答案](https://stats.stackexchange.com/a/308929/143653)調用這些“虛擬變量”。這些與Kronecker增量$ {\ delta} _ {\ text {VW}} $,$ {\ delta} _ {\ text {Acura}} $和$ {\ delta} _ {\ text {本田}} $。
@Aksakal我更喜歡廣義表示法,但是在舊的表示法$ {\ delta} _ {i,j} $中,它將是$ {\ delta} _ {\ text {CompanyName},\ text {VW}} $等。
虛擬對象的工作方式如下:您擁有名為$ VW $和$ ACURA $的變量。您的觀察結果為$ i = 1..N $,因此得到的值$ VW_i $和$ ACURA_i $在汽車為HONDA時均為零。請注意,這裡的$ i $不是汽車的品牌,而是觀察的數量。我仍然看不到如何將其連接到Kronecker三角洲。假設,如果原始變量為$ CAR_i $,則增量將像$ VW_i = \ delta(CAR_i,VW)$
@Aksakal您所調用的“ $ {VW} _ {i} $”的值為$ {{\ delta} _ {\ text {VW}}} _ i $或$ {\ delta} _ {i {\ in}\ text {VW}} $。如果$ i $是大眾汽車,則為$ 1 $;否則為$ 0 $。
@Aksakal至於您所指的類型錯誤,我同意。古典數學符號的類型較弱,有點像Excel,希望讀者將值強制轉換為在上下文中有意義的類型。這就是我真的更喜歡顯式版本的原因之一。
讓我們來談談尺寸,我認為這樣可以解決問題。您建議的設計矩陣的維度是多少?在我的例子中,我們從$ N \ times $$設計矩陣開始:只有一個帶有$ CAR_i $變量的善意列,它可以採用三個值之一(不包括攔截)。新的設計矩陣為$ N \ times $$:兩列$ VW_i $和$ ACURA_i $分別接受0或1個值,當兩者均為零時表示HONDA,而不能同時為1s
@Aksakal是的,我們在同一頁面上。在$ N {\ times} 2 $情況下,第一列標籤為“ $ \ text {VW} $”,其值將枚舉為“ $ \ text {VW} _i $”。在那裡,$ \ text {VW} _i $與$ {{\\ delta} _ \ text {VW}} _ i $或$ {{\ delta} _ {i {\ in} \ text {VW}}} $。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...