2015-12-15 43 views
-1

我有一個功能「技能」,這是一個多值參數。我想用它作爲分類的一個功能。我不知道如何用它來訓練我的模型。如何通過任何分類方法的多值屬性

例如,某個工作具有某些必需的技能(比如說Java,Node.js,MVC),對於不同的工作可能會有所不同。我必須使用技能作爲參數之一。

任何幫助,將不勝感激。 謝謝。

回答

1

處理多值功能的常用方法是將它們分開。 如果您知道數據集中所有可能的技能,請爲每項技能創建一項功能。如果技能是存在於樣品中的相應的特徵是1,否則是0。

例如

skill = "Java,MVC" 

變成多個特徵:

Java = 1, Node.js = 0, MVC = 1 

這種方法的缺點是如果你有很多不同的技能,你的特徵空間就會爆炸。這意味着你的模型變得容易過度擬合。

+0

你可以做相反的事情(編碼所有可能的組合),它在運行時非常高效,但需要付出相當大的努力在開始時對所有組合進行編碼。如果你的組合少於100個,我會建議這種方法。 – rpd

+0

@rpd我懷疑她/他有不到7種不同的技能,並且這可能是一個問題,因爲這些組合成倍增長2 ^(技能數量)。此外,對於機器學習應用程序來說,它不太有用,因爲只有一種不同技能的兩個不同候選人被視爲完全不同的組合。 (相似性丟失) –

+0

在這種情況下,您可以使用TF-IDF作爲技能和使用閾值的「預處理」步驟,以量化差異。 – rpd

相關問題