Machine learning 如何处理变长特征向量?

Machine learning 如何处理变长特征向量?,machine-learning,Machine Learning,假设您试图根据某些特征对房屋进行分类: 总面积 房间数 车库区 但并非所有的房子都有车库。但当它们这样做时,它们的总面积就形成了一个非常有辨别力的特征。利用此功能中包含的信息的好方法是什么?您可以合并一个零/一虚拟变量,指示是否有车库,以及车库面积与虚拟面积的叉积(对于没有车库的房屋,将面积设置为零).最好的方法是使用所有功能构建数据集,在大多数情况下,可以将不可用的列填充为零 以您的示例为例,它将类似于: Total area Number of rooms Garage area 10

假设您试图根据某些特征对房屋进行分类:

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

但并非所有的房子都有车库。但当它们这样做时,它们的总面积就形成了一个非常有辨别力的特征。利用此功能中包含的信息的好方法是什么?

您可以合并一个零/一虚拟变量,指示是否有车库,以及车库面积与虚拟面积的叉积(对于没有车库的房屋,将面积设置为零).

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

以您的示例为例,它将类似于:

Total area  Number of rooms Garage area
100         2               0
300         2               5
125         1               1.5
通常,您选择的学习算法足够强大,可以使用这些零对条目进行正确分类。毕竟,没有价值,它仍然是算法的信息。如果数据有偏差,这可能会成为一个问题,但在这种情况下,无论如何都需要解决偏差问题

编辑:

我刚刚意识到还有另一个答案是,你害怕使用零,因为这可能会与小型车库混淆。虽然我仍然不认为这有什么问题(小车库和零之间应该有足够的区别),但您仍然可以使用相同的结构,用负数(比如-1)标记不存在的区域车库


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

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

然后,您的特征向量将是: 面积|数量|房间|车库|大小|车库|存在


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

如果将车库面积设置为零,我看不出虚拟变量会有什么变化。将不存在的车库区域设置为0时,我看到的问题是,它们将被视为类似于非常小的车库,这是不准确的。@ty4:这就是假人出现的地方。例如,如果你要拟合一个线性模型,多亏了这个假人,你会得到一个不同的截距,用于有车库和没有车库的房子。再想一想,你甚至不需要交叉积。