我使用vowpalwabbit来解决一个上下文盗贼问题。我想使用cover选项作为解释这里。
在这方面,我面临两个问题:
下面是一个示例(使用VW的python包装器):
import vowpalwabbit.pyvw as pyvw
data_train = ["1:0:0.5 |features a b", "2:-1:0.5 |features a c", "2:0:0.5 |features b c",
"1:-2:0.5 |features b d", "2:0:0.5 |features a d", "1:0:0.5 |features a c d",
"1:-1:0.5 |features a c", "2:-1:0.5 |features a c"]
data_test = ["|features a b", "|features a b"]
model1 = pyvw.vw(cb_explore=2, cover=10)
for data in data_train:
model1.learn(data)
model1.save("saved_model.model")
model2 = pyvw.vw(cb_explore=2, cover=10, i="saved_model.model")
for data in data_test:
print(data)
print(model1.predict(data))
print(model2.predict(data))我得到以下输出:
|features a b
[0.75, 0.25]
[0.5, 0.5]
|features a b
[0.7642977237701416, 0.2357022762298584]
[0.5, 0.5]正如您所看到的,模型1的预测正在发生变化(稍微),而对模型2的预测(应该与模型1相同)是不同的。
如果我用cover替换bag,我就不会遇到这个问题。对此的解释是什么?在大众中有什么方法可以解决这个问题?
发布于 2020-11-16 17:06:28
谢谢你的报道,这似乎是个bug。
我已经为这个这里打开了一个问题,所以您可以跟踪进度。
https://stackoverflow.com/questions/64557595
复制相似问题