开发者社区 问答 正文

(元音字母Wabbit)上下文强盗模拟错误

我使用vowpal wabbit来离线模拟和评估我的模型。因此,我使用了网站https://vowpalwabbit.org/tutorials/cb_simul.html教程部分提供的函数。 我运行模型时出错了。 错误是:cb_adf:格式不好的例子,只有一行可以有成本 所以我打印的格式,看看是不是真的情况下,但对我的格式是ok的,因为我得到这个格式之前的错误弹出:

shared |User client=1425 ord_amt=69.90674997927502 PM=24.676111110999997
|Action actions=0 
|Action actions=1 
|Action actions=2 
|Action actions=3 
|Action actions=4 
|Action actions=5 
0:44.83788:0.82222 |Action actions=6 
|Action actions=7 
|Action actions=8 

此外,这个错误总是在第16次迭代中弹出,我的用户在每次运行时都是随机选择的。 有人遇到过同样的错误,或者有人能给我指出解决方案的方向? 问题来源StackOverflow 地址:/questions/59466988/vowpal-wabbit-contextual-bandit-simulation-error

展开
收起
kun坤 2019-12-25 09:36:35 449 分享 版权
阿里云 AI 助理回答

遇到您描述的错误,通常意味着Vowpal Wabbit (VW) 在处理您的输入数据时遇到了不符合预期的格式问题,特别是与成本(cost)相关的部分。在上下文带宽(Contextual Bandit)模式下,VW期望每个示例中的成本信息正确且唯一地呈现。根据您的描述,错误提示“cb_adf: 格式不好的例子,只有一行可以有成本”,这表明VW可能在多个地方检测到了成本值,而这是不允许的。

从您提供的数据格式来看,似乎并没有直接展示成本(cost)的信息,但错误提示暗示了某些地方可能存在隐含的成本表示或格式误解。为了解决这个问题,请检查以下几个方面:

  1. 确认是否有隐藏的成本信息:确保除了应该出现成本的那一个动作之外,其他地方没有误包含任何看起来像成本的数据。有时候,即使是一个看似无关的数字也可能被VW误解为成本。

  2. 检查数据预处理脚本:如果您在将原始数据转化为VW能接受的格式之前进行了预处理,确保这个过程中没有意外地添加或修改了成本相关的字段。

  3. 遵循正确的cb_adf格式:确保您的数据严格遵循VW对于cb_adf(Contextual Bandit with Action Dependent Features)格式的要求。正确的格式通常包括一个共享特征行(以shared |开头),接着是多个动作行(以|Action actions=<index>开头),其中只有一个动作行包含实际的成本和概率信息,形如<cost>:<probability> |Action ...

  4. 随机性不影响格式要求:您提到用户在每次运行时都是随机选择的,这不应该直接影响到数据格式。但是,如果您的数据生成逻辑中包含了某种基于随机性的操作,确保它不会无意中改变数据结构或引入额外的成本信息。

  5. 使用-V选项进行调试:运行VW时加上-V标志可以增加输出的详细程度,帮助您定位问题所在。这可能会提供关于哪些特定输入导致错误的更多信息。

如果以上步骤都不能解决问题,建议您尝试简化输入数据,仅保留最基本且符合格式要求的例子来测试,逐步增加复杂度直到再次遇到错误,这样可以帮助您更精确地定位问题所在。同时,也可以考虑在Vowpal Wabbit的官方GitHub页面或者邮件列表中寻求帮助,那里可能有遇到过类似问题的开发者能够提供更具体的指导。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答地址: