我正在尝试使用 VW 来根据卧室数量、浴室数量、面积和其他特征来预测房价。我的训练数据示例行如下:
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.43102856333 '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.43487968790 '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-CT4609.826172 3526-HIGH-ST4537.140137 2796-BRANCH-ST
这些预测值是不正确的。我不确定我的训练数据是否有问题?我对 | 字符和特征的放置仍然感到困惑。
回答:
当你构建一个特征如 city=SACRAMENTO
时,VW 将其解释为一个名称为 city=SACRAMENTO
的字符串特征,并赋予其隐式的值 1.0
。city=SACRAMENTO
会被哈希处理,并形成该特征的索引。
当你构建一个特征如 beds:2
时,VW 将其解释为一个名称为 beds
的特征,其特征值为 2.0
。beds
会被哈希处理并形成索引。
因此,可以将形式为 __=__
的特征视为枚举,或离散集合中的值。当你有连续特征时,应该使用浮点值。
使用 __=__
格式对于城市名称似乎是可以的,但当你对纬度和经度使用相同的格式时,很难找到另一个示例具有完全相同的纬度/经度字符串,从而能够在预测中使用该特征。我认为纬度/经度应该是一个基于浮点的特征。
对于 sale_date
,你有类似的问题。这可能更多是一个特征工程的问题,但或许你想将这个特征拆分为年、星期几、月等。