使用具有概率的Vowpal wabbit作为标签来预测概率

时间:2018-02-08 11:54:56

标签: machine-learning vowpalwabbit

我正在尝试使用Vowpal Wabbit来预测现有统计数据集的概率。我的txt文件看起来像这样:

0.22 | Features1
0.28 | Features2

现在,在这个例子中,我想预测Features3的标签(概率)。我正在尝试使用逻辑回归:

vw -d ds.vw.txt -f model.p --loss_function=logistic --link=logistic -p probs.txt

但是得到错误:

You are using label 0.00110011 not -1 or 1 as loss function expects!
You are using label 0.00559702 not -1 or 1 as loss function expects!

等。

如何将这些统计数据用作标签来预测概率?

1 个答案:

答案 0 :(得分:1)

要预测连续标签,您需要使用以下一种损失功能:

How can I access public variables from within promise nested callback functions?

--loss_function squared # optimizes for min loss vs mean --loss_function quantile # optimizes for min loss vs median --loss_function squared默认值,因此您可以将其删除。

您可以使用的另一个技巧是通过使用函数(2 *概率-1)将中点0.5映射到0.0来将概率范围映射到vw。然后,您可以使用需要二进制标签的[-1, 1]--loss_function logistic-1),但请使用1作为浮点权重的标签:

abs(probability)

这可能会或可能不会更好地适用于您的特定数据(您必须保留一些数据并测试不同模型的准确性。)

关于二元结果的背景:1 0.22 | features... -1 0.28 | features... "起点" (即null或初始模型)到处都是0.0权重。这就是为什么当您进行逻辑回归时,vw标签必须分别为negative, positive(而不是-1, 1)。