2015-12-15 44 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

相关问题