gpt4 book ai didi

vowpalwabbit - 为 vowpal wabbit 中的示例设置权重的实用指南

转载 作者:行者123 更新时间:2023-12-04 02:45:10 27 4
gpt4 key购买 nike

我有一个数据集(有 6 个目标类)的多类分类问题。训练数据的类标签分布偏斜:下面是每个类标签(1 到 6)的分布

(array([174171,     12,     29,   8285,   9996,  11128]),

我正在使用 vowpal wabbit 的 oaa 方案进行分类,并为每个示例尝试了默认权重 1.0。然而,对于大多数模型,这只会导致模型对评估中所有示例的预测为 1.0(因为标签 1 在训练集中具有非常大的表示)。

我现在正在尝试使用不同的权重进行试验,我可以将这些权重应用于每个类的示例,以帮助提高分类器的性能。

关于决定每个示例权重的技术的任何指示或实用技巧都将非常有用。一种可能的技术是根据它们的频率以反比对示例进行权衡。不幸的是,这似乎导致分类器严重偏向标签 2 和 3,并预测评估中几乎所有内容都为 2 和 3。

模型选择会影响权重的确定吗?我正在试验神经网络以及逻辑和铰链损失函数。

最佳答案

可能有更好的方法,但我会像您一样,首先根据标签的稀有性对示例进行反向加权,如下所示:

标签计数总和 = 174171 + 12 + 29 + 8285 + 9996 + 11128 = 203621 所以

标签 1 出现 174171 次(占总数的 85.5%)将被加权:203621/174171 = 1.16909 出现 12 次(最少)的标签 2 将被加权:203621/12 = 16968.4

等等。

确保训练集中的示例被很好地打乱。这在在线学习中至关重要。将相同的标签示例混在一起会导致在线性能非常差。

如果你的 shuffle 做得很好,并且你在新的例子上表现不佳,你可以不那么积极地重新加权,例如采用 sqrt() 的逆权重,然后如果这仍然太激进,切换到反权重等的 log()

另一种方法是使用一种新的对成本敏感的多类选项,例如--csoaagithub 上的 VW wiki 有一些示例,详细说明了如何使用这些选项及其训练集格式。

选择的损失函数肯定有效果。但是请注意,一般来说,当在 vw 中使用多类或任何其他基于缩减的选项时,您应该单独保留 --loss_function 并让算法使用其内置的-在默认情况下。如果您尝试使用不同的损失函数并获得比减少内置损失函数更好的结果,vw 的开发人员可能会对这感兴趣,请将其报告为错误。

关于vowpalwabbit - 为 vowpal wabbit 中的示例设置权重的实用指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18964788/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com