在机器学习中表示任意长的分类数组数据

时间:2015-12-13 14:48:26

标签: machine-learning data-mining

让我们说我有一个用户数据,我想为机器学习任务“矢量化”。它采用以下格式:

{
  subjects: [String (subject id)],
  education: [
    school: String (school id),
    concentration: String (conc. id),
    degree: String (degree id)
  ],
  age: Integer,
  gender: String
}

年龄和性别等数据我分别表示为整数和二进制(女性为0,男性为1)。

如果用户只有一个主题,我可以使用单热编码来表示它。但是,请考虑以下事项:

  • 主题数量可能正在变化(即添加/删除主题)。这意味着单热编码中矢量的长度会发生变化。
  • 用户可以拥有任意数量的主题。

教育记录也是如此。用户可以拥有任意数量的教育记录。

所以我的问题是:用户可以拥有任意数量的分类数据的最佳方式是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

首先,你应事先了解所有可能的科目。 第二,为每个主题创建一个这样的功能:

subj1 subj2 .... subj1000
0       1             0

这里用户没有subj1和subj1000但是有subj2。

对于未来事先未知的主题,您可以忽略它们。

正如@ Anony-Mousse所说,这就像文字处理中的Bag of Words模型一样。