【发布时间】:2015-09-01 18:55:17
【问题描述】:
假设您正在尝试根据某些特征对房屋进行分类:
- 总面积
- 房间数
- 车库区
但并非所有房屋都有车库。但是当它们这样做时,它们的总面积会成为一个非常有区别的特征。什么是利用此功能中包含的信息的好方法?
【问题讨论】:
标签: machine-learning
假设您正在尝试根据某些特征对房屋进行分类:
但并非所有房屋都有车库。但是当它们这样做时,它们的总面积会成为一个非常有区别的特征。什么是利用此功能中包含的信息的好方法?
【问题讨论】:
标签: machine-learning
您可以合并一个零/一虚拟变量,指示是否有车库,以及车库面积与虚拟变量的叉积(对于没有车库的房屋,将面积设置为零)。
【讨论】:
最好的方法是构建包含所有功能的数据集,并且在大多数情况下,将那些不可用的列填充为零就可以了。
使用你的例子,它会是这样的:
Total area Number of rooms Garage area
100 2 0
300 2 5
125 1 1.5
通常,您选择的学习算法足够强大,可以使用这些零对条目进行正确分类。毕竟,没有价值,它仍然是算法的信息。如果您的数据有偏斜,这可能会成为一个问题,但在这种情况下,您无论如何都需要解决偏斜问题。
编辑:
我刚刚意识到还有另一个答案是您害怕使用零,因为这可能与小型车库相混淆。虽然我仍然认为这没有问题(小车库和零之间应该有足够的差异),但您仍然可以使用相同的结构将不存在区域车库标记为负数(假设为 -1)。
另一个答案中指出的解决方案也完全合理,具有指示房屋是否有车库的额外功能可以正常工作(特别是在基于决策树的算法中)。我只是更喜欢将数据的维度保持在尽可能低的水平,但归根结底,这更多是一种偏好,而不是技术决定。
【讨论】:
您需要加入零指标功能。也就是说,当车库大小为 0 时为 1,任何其他值为 0。
您的特征向量将是: 面积 |房间数 |车库大小 |车库存在
然后,您的机器学习算法将能够看到车库大小的这个(非线性)特征。
【讨论】: