我正在尝试使用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!
等等。
如何使用这些统计数据作为标签来预测概率?
发布于 2018-02-10 15:03:04
要预测连续标签,您需要使用以下损失函数之一:
--loss_function squared # optimizes for min loss vs mean
--loss_function quantile # optimizes for min loss vs median
--loss_function squared
是vw
的默认值,所以您可以省略它。
您可以使用的另一个技巧是通过使用函数(2* [-1, 1]
- 1)将中点0.5映射到0.0,从而将概率范围映射到概率。然后,您可以使用--loss_function logistic
,它需要二进制标签(-1
和1
),但遵循abs(probability)
作为浮点权重的标签:
1 0.22 | features...
-1 0.28 | features...
对于您的特定数据,这可能会更好,也可能不会更好(您必须保留一些数据,并测试不同模型的准确性。)
关于二元结果的背景:vw
“起始点”(即null或初始模型)到处都是0.0权重。这就是为什么在进行逻辑回归时,negative, positive
标签必须分别为-1, 1
(而不是0, 1
)。
https://stackoverflow.com/questions/48684894
复制相似问题