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

时间:2011-12-18 01:21:22

标签: classification libsvm

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

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

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

由于

1 个答案:

答案 0 :(得分:6)

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

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

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