【发布时间】:2014-09-09 10:21:17
【问题描述】:
我已经开始使用 Vowpal Wabbit 进行逻辑回归,但是我无法重现它给出的结果。也许它确实有一些未记录的“魔法”,但有没有人能够复制/验证/检查逻辑回归的计算?
例如,使用下面的简单数据,我们旨在模拟age 预测label 的方式。很明显,当年龄增加时,观察到 1 的概率会增加。
作为一个简单的单元测试,我使用了下面的12行数据:
age label
20 0
25 0
30 0
35 0
40 0
50 0
60 1
65 0
70 1
75 1
77 1
80 1
现在,使用 R 、 SPSS 甚至手动对此数据集执行逻辑回归,生成一个看起来像 L = 0.2294*age - 14.08 的模型。因此,如果我替换年龄,并使用 logit 变换 prob=1/(1+EXP(-L)) 我可以获得预测概率,其范围从第一行的 0.0001 到最后一行的 0.9864 ,正如合理预期的那样。
如果我在Vowpal Wabbit中插入相同的数据,
-1 'P1 |f age:20
-1 'P2 |f age:25
-1 'P3 |f age:30
-1 'P4 |f age:35
-1 'P5 |f age:40
-1 'P6 |f age:50
1 'P7 |f age:60
-1 'P8 |f age:65
1 'P9 |f age:70
1 'P10 |f age:75
1 'P11 |f age:77
1 'P12 |f age:80
然后使用
执行逻辑回归vw -d data.txt -f demo_model.vw --loss_function logistic --invert_hash aaa
(命令行与How to perform logistic regression using vowpal wabbit on very imbalanced dataset一致),我得到一个模型L= -0.00094*age - 0.03857,这是非常不同的。
使用-r或-p得到的预测值进一步证实了这一点。得到的概率最终几乎完全相同,例如 0.4857 代表年龄=20,0.4716 代表年龄=80,这是非常偏离的。
我也注意到与较大数据集的这种不一致。 Vowpal Wabbit 在什么意义上以不同的方式进行逻辑回归,结果如何解释?
【问题讨论】:
标签: logistic-regression vowpalwabbit