2016-12-14 93 views
3

我正在製作機器學習模型的功能。例如,一個類別變量'week'範圍1-7。當使用單熱編碼時,將week = 1編碼爲1,000,000,week = 2爲0,100,000 ...。但是我也可以使用虛擬變量和單熱編碼。一個虛擬變量'week_v',並以這種方式,我必須設置 hidden variable這意味着基礎變量,並設有week_v = 1 100000,week_v = 2是010000 ......和 不會出現week_v = 7。那麼什麼是它們之間的區別?我使用邏輯模型,然後我會嘗試gbdt。虛擬變量和單熱編碼有什麼區別?

+0

實際上沒有什麼區別。單熱編碼是您爲創建虛擬變量所做的事情。選擇其中之一作爲基本變量對避免變量之間的完美多重共線性是必要的。 – ayhan

+0

您可能有興趣檢查[this](https://stats.stackexchange.com/q/224051/99338)瞭解自由度如何根據您選擇的方法而改變。 –

回答

2

事實上,這兩種方法的效果(相當於措辭)對迴歸沒有影響。

在任何一種情況下,您都必須確保您的某個假人被遺漏(即作爲基本假設)以避免集合之間的完美多重共線性。例如,如果您想將觀察的weekday考慮在內,則只使用6個(不是7個)虛擬假設,假設其中一個虛擬爲基本變量。使用單熱編碼時,weekday變量作爲單個列中的分類值存在,從而有效地將回歸的第一個值用作基數。

相關問題