Vowpal Wabbit中的普通最小二乘回归

时间:2013-10-04 17:42:53

标签: command-line-arguments regression least-squares vowpalwabbit

有没有人设法在Vowpal Wabbit中运行普通的最小二乘回归?我试图确认它将返回与确切解决方案相同的答案,即选择最小化||y - X a||_2 + ||Ra||_2(其中R是正则化)我想得到分析答案 a = (X^T X + R^T R)^(-1) X^T y。在numpy python中进行这种类型的回归需要大约5行。

大众汽车的文档表明它可以做到这一点(可能是“平方”损失函数),但到目前为止,我还是无法让它接近匹配python结果。因为平方是默认的损失函数,我只是在调用:

$ vw-varinfo input.txt

其中input.txt包含类似

的行
1.4 | 0:3.4 1:-1.2 2:4.0  .... etc

我在大众电话中需要一些其他参数吗?我无法理解(相当简单的)文档。

1 个答案:

答案 0 :(得分:4)

我认为你应该使用这种语法(vowpal wabbit version 7.3.1):

vw -d input.txt -f linear_model -c --passes 50 --holdout_off --loss_function squared --invert_hash model_readable.txt

此语法将指示VW读取您的input.txt文件,在磁盘上写入模型记录和缓存(多遍收敛所必需的)并使用平方损失函数拟合回归。此外,它最终将以可读的方式将模型系数写入名为 model_readable.txt 的文件中。

--holdout_off选项是最近的一个选项,用于抑制样本外自动丢失计算(如果您使用的是早期版本,则必须将其删除)。

基本上,基于随机梯度下降的回归分析将为您提供类似于精确解的系数向量,只有在没有应用正则化时以及通过次数很高时(我建议50或甚至更多,也随机)改组输入文件行将有助于算法更好地收敛。)