我有一个关于如何在Python之外使用VW生成的值的问题。例如,我有以下VW的“可读输出”:
Feature1:221152:-0.0342143Feature2:115611:-0.003415Feature3:230533:-0.0162561Feature4:222340:-0.0244261Constant:116060:-0.74116Feature5:240651:0.0662623Feature6:201380:0.568669Feature7:168515:0.00426367Feature8:107643:-0.00488802Feature9:25461:0.0186098Feature10:172852:-0.00895446
如果我有以下数据点:
1 1 'datapoint1 | Feature10:0 Feature5:0 Feature3:0 Feature7:22 Feature4:7 Feature6:0.603153898117 Feature2:0 Feature1:0 Feature8:0 Feature9:0
当我通过VW测试时,得到以下结果:
0.383351 datapoint1
但是当我尝试手动重现这个最终值时,得到了一个非常不同的结果:
-0.74116+(0.00426367*22)+(-0.0244261*7)+(0.568669*0.603153898117) = -0.475347035911703727Constant Feature7 Feature4 Feature6
我使用的是逻辑损失函数。有人知道我们应该如何在VW框架之外使用VW生成的值吗?我不知道这些生成的值应该如何应用。
回答:
如果你对结果应用逻辑变换(因为你使用了逻辑回归)
f(y) = 1/(1+e(-y)) = 1/(1+exp(-(-0.475347))) = 0.38335
你会得到与VW中看到的相同结果。