如何添加新的 class 以恢复 vowpal wabbit 一对一逻辑 classifier?

How to add a new class to resumed vowpal wabbit one-against-all logistic classifier?

我有一个使用一对多 (oaa) 方法的逻辑回归分类器。虽然我目前正在训练分类器识别 15 类,但将来我想向它提供来自 N 个额外 类 的示例,我希望我的分类器能够学习这些示例。但是,使用 --save_resume 选项的 vowpal wabbit 命令不允许我使用 --oaa 来指定 类.

的新总数

我使用 oaa 选项,因为当我进行预测时,我想 select 预测的前 3 个 类 具有最高的真实概率,我使用 --probabilities选项。

如何在使用 --oaa--save_resume 时向我的分类器教授额外的 类?


我最初使用以下方法训练我的分类器:

vw --oaa=15 --loss_function=logistic --save_resume -c --passes 10 -d /tmp/train.vw -f /tmp/model.vw

我恢复训练使用:

vw --loss_function=logistic --save_resume -c --passes 10 -d /tmp/train.vw -i /tmp/model.vw -f /tmp/model.v

我使用以下方法进行预测:

vw -t --probabilities --loss_function=logistic -d /tmp/test.vw -i /tmp/model.vw -p /tmp/predict.vw

然后我检查 predict.vw 和 select 类 的前 3 个最高概率为真。

目前,在使用--save_resume进行多步训练时,无法增加--oaa N中类的数量N。在内部,该模型使用 N 来抵消权重向量,因此您需要破解模型的加载。

您可以尝试从一开始就将 N 设置得足够高,并在第一步中使用 类 1-15,然后在后面的步骤中添加更高数字的 类。由于在线训练的性质,后面的例子对模型的影响更大。

或者,使用 csoaa_ldf,您可以即时指定 类 的数量:不同的 类 可能 可用 每个示例.