首页 > 解决方案 > VowpalWabbit 预测不正确。如何正确准备学习数据?

问题描述

我正在尝试学习大众根据卧室、浴室、面积和其他特征的数量来预测房价。我的训练数据示例行是:

68000 '51-OMAHA-CT| city=SACRAMENTO zip=95823 state=CA beds:3 baths:1 sq__ft:1167 type=Residential sale_date=Wed-May-21-00-00-00-EDT-2008 latitude=38.478902 longitude=-121.431028
56333 '3526-HIGH-ST| city=SACRAMENTO zip=95838 state=CA beds:2 baths:1 sq__ft:836 type=Residential sale_date=Wed-May-21-00-00-00-EDT-2008 latitude=38.631913 longitude=-121.434879
68790 '2796-BRANCH-ST| city=SACRAMENTO zip=95815 state=CA beds:2 baths:1 sq__ft:796 type=Residential sale_date=Wed-May-21-00-00-00-EDT-2008 latitude=38.618305 longitude=-121.443839

价格街 | ...总共大约 500 条记录。我的测试数据是(大约 500 条记录):

'51-OMAHA-CT| city=SACRAMENTO zip=95823 state=CA beds:3 baths:1 sq__ft:1167 type=Residential sale_date=Wed-May-21-00-00-00-EDT-2008 latitude=38.478902 longitude=-121.431028
'3526-HIGH-ST| city=SACRAMENTO zip=95838 state=CA beds:2 baths:1 sq__ft:836 type=Residential sale_date=Wed-May-21-00-00-00-EDT-2008 latitude=38.631913 longitude=-121.434879
'2796-BRANCH-ST| city=SACRAMENTO zip=95815 state=CA beds:2 baths:1 sq__ft:796 type=Residential sale_date=Wed-May-21-00-00-00-EDT-2008 latitude=38.618305 longitude=-121.443839

预测给出这些值:

4819.900391 51-OMAHA-CT
4609.826172 3526-HIGH-ST
4537.140137 2796-BRANCH-ST

这些不是正确的预测。我不确定我的训练数据是否有问题?我还是很困惑| 字符和放置功能。

标签: artificial-intelligencevowpalwabbit

解决方案


当您将特征构造为city=SACRAMENTO时,大众将其解释为具有名称的字符串特征city=SACRAMENTO并为其分配隐含值1.0city=SACRAMENTO被散列并形成特征的索引。

当您将特征构造为beds:2时,大众将其解释为具有名称beds且特征值为 的特征2.0beds被散列并形成索引。

因此,将表单中的特征__=__视为枚举或离散集合中的值。当您具有连续特征时,应使用浮点值。

对城市名称使用该__=__格式似乎很好,但是当您对纬度和经度使用相同的格式时,另一个示例不太可能共享相同的确切 lat/lng 字符串,从而能够在预测中使用该功能。在我看来,lat/lng 应该是一个基于浮点数的功能。

对于sale_date您有类似的问题。这可能更像是一个特征工程,但也许你想把这个特征分成年份、星期几、月份等。


推荐阅读