如何对具有不同属性的多个相同值的数据进行一次热编码?

时间:2019-05-09 13:45:01

标签: machine-learning encoding data-science

我有包含寻找工作的应聘者的数据。我得到的原始数据完全是一团糟,但我设法对其进行了改进。现在,我面临着一个无法解决的问题。

一条候选记录如下

https://i.imgur.com/LAPAIbX.png

由于ML算法无法处理分类数据,因此我想对此进行编码。我的目标是要有一个如下所示的候选记录:

https://i.imgur.com/zzsiDzy.png

我需要更改的是,为原始数据的Knowledge1,Knowledge2,Knowledge3,Knowledge4,Tag1和Tag2中存在的每个可能值添加一个新列,但不能重复。我设法对其进行编码,以获得比我需要的更多的属性,这导致模型不准确。我尝试的方法为每个可能的选项提供了新创建的属性Jscript_Knowledge1,Jscript_Knowledge2,Jscript_Knowledge3等。

如果解释不够清楚,请告诉我,以便我进一步解释。

非常感谢,并感谢您的帮助。

干杯!

1 个答案:

答案 0 :(得分:1)

根据您的解释,我对您的问题有所了解。我将尝试阐述如何解决这个问题。如果那不能解决您的问题,我可能需要更多说明以了解您的问题。让我们开始吧。

  • 对于您将拥有的所有候选数据,请收集主数据 技能/知识列表
  • 此列表将成为您的列

  • 对于每位候选人,如果他具备此技能,则该列的记录将变为1,否则将保持为0

  • 这是一种热编码的本质,但是,由于同一技能分散在多列中,因此您很难对其进行自动编码。

另一种方法可能是:

  • 对于每位候选人,将所有知识技能作为列表收集,并将其分配给知识的一列,并将标签作为另一列表,然后将其分配至另一列,而不是当前的4(知识)+ 2(标签)。
  • 在此列中按字母顺序对知识(和标签)列表进行排序。
  • 此后自动进行一次热编码可能会产生比以前更小的列

希望这会有所帮助!