VowpalWabbit 预测不正确。如何正确准备学习数据?
VowpalWabbit incorrect predictions. How to properly prepare learning data?
我正在尝试学习大众根据卧室、浴室、面积和其他特征的数量来预测房价。我的训练数据示例行是:
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
这些预测不正确。我不确定我的训练数据是否有问题?我还是很困惑 |字符和放置功能。
当您将特征构造为 city=SACRAMENTO
时,VW 会将其解释为名称为 city=SACRAMENTO
的字符串特征,并为其分配一个隐式值 1.0
。 city=SACRAMENTO
被散列并形成特征的索引。
当您将特征构造为 beds:2
时,大众将其解释为名称为 beds
且特征值为 2.0
的特征。 beds
被散列并形成索引。
因此,将 __=__
形式的特征视为枚举,或来自离散集合的值。当您具有连续特征时,应使用浮点值。
使用 __=__
格式对于城市名称似乎没问题,但是当您对纬度和经度使用相同的格式时,另一个示例不太可能共享完全相同的 lat/lng string 能够在预测中使用该功能。在我看来 lat/lng 应该是一个基于浮点数的特征。
对于 sale_date
你有类似的问题。这可能更像是一个特征工程的事情,但也许你想把这个特征分成年、星期几、月等。
我正在尝试学习大众根据卧室、浴室、面积和其他特征的数量来预测房价。我的训练数据示例行是:
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
这些预测不正确。我不确定我的训练数据是否有问题?我还是很困惑 |字符和放置功能。
当您将特征构造为 city=SACRAMENTO
时,VW 会将其解释为名称为 city=SACRAMENTO
的字符串特征,并为其分配一个隐式值 1.0
。 city=SACRAMENTO
被散列并形成特征的索引。
当您将特征构造为 beds:2
时,大众将其解释为名称为 beds
且特征值为 2.0
的特征。 beds
被散列并形成索引。
因此,将 __=__
形式的特征视为枚举,或来自离散集合的值。当您具有连续特征时,应使用浮点值。
使用 __=__
格式对于城市名称似乎没问题,但是当您对纬度和经度使用相同的格式时,另一个示例不太可能共享完全相同的 lat/lng string 能够在预测中使用该功能。在我看来 lat/lng 应该是一个基于浮点数的特征。
对于 sale_date
你有类似的问题。这可能更像是一个特征工程的事情,但也许你想把这个特征分成年、星期几、月等。