【问题标题】:How to deal with feature vector of variable length?如何处理变长的特征向量?
【发布时间】:2015-09-01 18:55:17
【问题描述】:

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

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

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

【问题讨论】:

    标签: machine-learning


    【解决方案1】:

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

    【讨论】:

    • 如果您将车库区域设置为零,我看不出虚拟变量有何变化。我看到将不存在的车库区域设置为 0 的问题是它们将被视为类似于极小的车库,这是不准确的。
    • @ty4:这就是假人的用武之地。例如,如果你要拟合一个线性模型,多亏了假人,你会得到不同的截距,用于有车库和没有车库的房子。再三考虑,您可能甚至不需要交叉产品。
    【解决方案2】:

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

    使用你的例子,它会是这样的:

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

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

    编辑:

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

    另一个答案中指出的解决方案也完全合理,具有指示房屋是否有车库的额外功能可以正常工作(特别是在基于决策树的算法中)。我只是更喜欢将数据的维度保持在尽可能低的水平,但归根结底,这更多是一种偏好,而不是技术决定。

    【讨论】:

      【解决方案3】:

      您需要加入零指标功能。也就是说,当车库大小为 0 时为 1,任何其他值为 0。

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

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

      【讨论】:

        猜你喜欢
        • 2016-08-17
        • 1970-01-01
        • 2018-12-23
        • 1970-01-01
        • 2013-05-25
        • 2018-09-23
        • 1970-01-01
        • 2013-06-23
        • 2018-06-20
        相关资源
        最近更新 更多