我应该为 Vowpal Wabbit 中的训练和测试指定相同的二次特征吗?
Should I specify the same quadratic features for training and testing in Vowpal Wabbit?
我 运行 我的 VW 模型处于测试模式(使用 -t
标志)和 -q SE SZ DR
,其中 S, E, Z, D, R
是我的命名空间。然后我在诊断打印输出中遇到以下警告:
WARNING: model file has set of {-q, --cubic, --interactions} settings stored, but they'll be OVERRIDEN by set of {-q, --cubic, --interactions} settings from command line.
所以问题是:在创建二次特征时,我是否应该在 testing 时在 -q
标志后指定与用于 training 相同的名称空间?
起初,我决定是的,我最好这样做,否则:(a) 将不会创建二次特征,并且在测试中将忽略它们的权重; (b) 或者它们将被创建但散列到与训练集中不同的桶中。这两种方式都会降低性能,这就是我的想法。但是前面提到的警告让我怀疑。那么大众汽车在这种情况下是如何运作的呢?
如警告所述,模型文件中已存储(持久化)的选项不应在 command-line 上重复(或更改)。
换句话说:如果您使用 -q XY ...
交互进行训练,这些交互已经存储在模型中。它们在启动时加载模型时被初始化(使用 -i model_file
),因此没有理由(重新)将它们包含在命令行中。
并非所有命令行选项都是 model-persistent:例如,默认情况下,loss-function (--loss_function ...
) 未存储在模型中,因此如果您 运行 一个回归,你可以用每个 test-run 来改变 loss-function。一个非常有用的功能。
您始终可以通过使用 --readable_model file_name
创建 "readable model" 并查看其 header(前几行)来判断模型中保留了哪些选项。
我 运行 我的 VW 模型处于测试模式(使用 -t
标志)和 -q SE SZ DR
,其中 S, E, Z, D, R
是我的命名空间。然后我在诊断打印输出中遇到以下警告:
WARNING: model file has set of {-q, --cubic, --interactions} settings stored, but they'll be OVERRIDEN by set of {-q, --cubic, --interactions} settings from command line.
所以问题是:在创建二次特征时,我是否应该在 testing 时在 -q
标志后指定与用于 training 相同的名称空间?
起初,我决定是的,我最好这样做,否则:(a) 将不会创建二次特征,并且在测试中将忽略它们的权重; (b) 或者它们将被创建但散列到与训练集中不同的桶中。这两种方式都会降低性能,这就是我的想法。但是前面提到的警告让我怀疑。那么大众汽车在这种情况下是如何运作的呢?
如警告所述,模型文件中已存储(持久化)的选项不应在 command-line 上重复(或更改)。
换句话说:如果您使用 -q XY ...
交互进行训练,这些交互已经存储在模型中。它们在启动时加载模型时被初始化(使用 -i model_file
),因此没有理由(重新)将它们包含在命令行中。
并非所有命令行选项都是 model-persistent:例如,默认情况下,loss-function (--loss_function ...
) 未存储在模型中,因此如果您 运行 一个回归,你可以用每个 test-run 来改变 loss-function。一个非常有用的功能。
您始终可以通过使用 --readable_model file_name
创建 "readable model" 并查看其 header(前几行)来判断模型中保留了哪些选项。