如何处理变长的特征向量?

时间:2013-03-18 10:10:55

标签: machine-learning

假设您正在尝试根据某些功能对房屋进行分类:

  • 总面积
  • 房间数
  • 车库区

但并非所有房屋都有车库。但是当他们这样做时,他们的总面积会产生非常明显的特征。利用此功能中包含的信息有什么好方法?

3 个答案:

答案 0 :(得分:5)

您可以合并一个零/一个虚拟变量,指示是否有车库,以及车库区域与假人的交叉产品(对于没有车库的房屋,将区域设置为零)。

答案 1 :(得分:1)

最好的方法是使用所有功能构建数据集,在大多数情况下,可以将那些不可用的列填充为零。

使用您的示例,它将类似于:

Total area  Number of rooms Garage area
100         2               0
300         2               5
125         1               1.5

通常,您选择的学习算法足够强大,可以使用这些零来正确地对该条目进行分类。毕竟,缺乏价值仍然是算法的信息。如果您的数据偏斜,这可能会成为一个问题,但在这种情况下,您还需要解决偏斜问题。

编辑:

我只是意识到还有另一个答案,评论你害怕使用零,因为这可能与小车库相混淆。虽然我仍然没有看到问题(小车库和零之间应该有足够的差异),你仍然可以使用相同的结构标记不存在区车库的负数(比方说-1)。

另一个答案中指出的解决方案也是完全合理的,有一个额外的功能,指示房子是否有车库将工作正常(特别是在基于决策树的算法)。我只是希望保持数据的维度尽可能低,但最后这更像是一种偏好而非技术决策。

答案 2 :(得分:0)

您需要合并零指标功能。也就是说,当车库大小为0时,该特征为1,对于任何其他值,该特征为0。

您的特征向量将是: 地区| num_rooms | garage_size | garage_exists

您的机器学习算法将能够看到车库大小的这种(非线性)特征。