我有一个使用one-against-all(oaa)方法的工作逻辑回归分类器。虽然我目前正在训练分类器以识别15个课程,但是我希望将来能够从N个其他课程中提供示例,我希望我的分类器能够学习。但是,使用--save_resume
选项的vowpal wabbit命令不允许我使用--oaa
指定新的类总数。
我使用oaa选项,因为当我进行预测时,我想选择前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
并选择前3个最高概率为真的类。
答案 0 :(得分:1)
目前,使用--oaa N
进行多个步骤的培训时,无法在--save_resume
中增加班级数N.在内部,模型使用N来抵消权重向量,因此您需要破解模型的加载。
您可以尝试从一开始就将N设置得足够高,并在第一步中使用类1-15,并在后面的步骤中添加具有更高数字的类。由于在线培训的性质,后面的例子更多地影响了模型。
或者,使用csoaa_ldf,您可以动态指定类的数量:每个示例的不同类可能可用。