6

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

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

$ vw-varinfo input.txt

其中 input.txt 有类似的行

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

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

4

1 回答 1

5

我认为你应该使用这种语法(vowpal wabbit 版本 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 甚至更多,也随机打乱输入文件行将有助于算法更好地收敛)。

于 2013-10-11T23:36:26.343 回答