分类 – LibSVM:交叉验证和测试期间的-wi选项(权重选择)

我需要有关libSVM的weight选项的帮助.我在某些方面感到困惑;我们是否应该在进行交叉验证时使用-wi选项?如果是这样,我们是否应该根据v-1子集使用整个数据的计算权重或计算的权重(对于v-fold交叉验证)?我的第二个问题是我们应该在预测期间使用-wi选项吗?如果是这样,我们是否应该在训练期间使用计算的权重,还是应该根据测试数据中的负面和正面实例的分布来计算权重?

例如;我们有50个数据和200个数据.因此,在计算出最佳c和gamma参数值后,我们将在训练时使用-w1 4 -w-1 1选项.但是在网格搜索和交叉验证期间进行培训呢?假设我们正在进行5倍交叉验证.在对剩余的4个子集进行训练时,负面和可能实例的分布可能会发生变化.那么我们应该在这个5倍交叉验证期间重新计算权重吗?

除了shoud,我们在测试时使用-w1 4 -w-1 1选项?

谢谢

最佳答案
要回答您的第一个问题,如果您在模型训练期间对类的子集应用非平凡权重,那么您应该在整个训练/调整期间执行相同的操作,包括基于交叉验证的C和gamma调整(否则您将是基于成本敏感的目标/风险/损失函数调整模型,该函数与您通过启用非平凡类权重指定的那个不同

类权重在libSVM外部,因为它们不是由libSVM计算的 – 该命令行选项允许用户设置他/她自己的类权重以强调/减少类子集的重要性.有些人也会调整班级权重,但这是一个不同的故事.

至于预测,那里没有明确使用类权重(因为它们在模型训练/调整阶段作为对目标/风险/损失函数的“调整”进入,因此得到的模型已经“意识到”权重)

转载注明原文:分类 – LibSVM:交叉验证和测试期间的-wi选项(权重选择) - 代码日志