vowpal wabbit 中的零线性回归模型
Null linear regression model in vowpal wabbit
我想 运行 使用空模型对 vowpal wabbit 进行线性回归(仅截取 - 用于比较原因)。我应该为此使用哪个优化器?也是简单平均的最佳常数损失报告?
A1:对于线性回归,如果您关心平均值,则应使用 --loss_function squared
(默认值)。如果您更关心中位数而不是平均值(例如,如果您有一些异常值可能会大大扰乱平均值),请使用 --loss_function quantile
。顺便说一句:这些不是优化器,只是损失函数。我会保留优化器(增强型 SGD)(默认),因为它运行良好。
A2:best constant
是给出最低误差的常量预测,best constant loss
是始终预测 best constant
数字的平均误差。它是所有目标变量的加权平均值。这与线性回归公式 y = Ai*xi + B
中的截距 b
不同。 B
是自由项,与输入无关。 B
不一定是 y
的平均值。
A3:如果您想找到模型的截距,请在模型中查找名为 Constant
的权重。这需要两个简短的步骤:
# 1) Train your model from the dataset
# and save the model in human-readable (aka "inverted hash") format
vw --invert_hash model.ih your_dataset
# 2) Search for the free/intercept term in the readable model
grep '^Constant:' model.ih
grep
步骤的输出应该是这样的:
Constant:116060:-1.085126
其中 116060
是哈希槽(模型中的位置),-1.085126
是截距的值(假设没有哈希冲突,并且是输入的线性组合。)
我想 运行 使用空模型对 vowpal wabbit 进行线性回归(仅截取 - 用于比较原因)。我应该为此使用哪个优化器?也是简单平均的最佳常数损失报告?
A1:对于线性回归,如果您关心平均值,则应使用 --loss_function squared
(默认值)。如果您更关心中位数而不是平均值(例如,如果您有一些异常值可能会大大扰乱平均值),请使用 --loss_function quantile
。顺便说一句:这些不是优化器,只是损失函数。我会保留优化器(增强型 SGD)(默认),因为它运行良好。
A2:best constant
是给出最低误差的常量预测,best constant loss
是始终预测 best constant
数字的平均误差。它是所有目标变量的加权平均值。这与线性回归公式 y = Ai*xi + B
中的截距 b
不同。 B
是自由项,与输入无关。 B
不一定是 y
的平均值。
A3:如果您想找到模型的截距,请在模型中查找名为 Constant
的权重。这需要两个简短的步骤:
# 1) Train your model from the dataset
# and save the model in human-readable (aka "inverted hash") format
vw --invert_hash model.ih your_dataset
# 2) Search for the free/intercept term in the readable model
grep '^Constant:' model.ih
grep
步骤的输出应该是这样的:
Constant:116060:-1.085126
其中 116060
是哈希槽(模型中的位置),-1.085126
是截距的值(假设没有哈希冲突,并且是输入的线性组合。)