我正在尝试使用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!
等。
如何将这些统计数据用作标签来预测概率?
答案 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
)。