Vowpal是一个很棒的工具,我们一直都在使用它。在对罕见事件二项式数据进行模型训练时,我经常遇到的一件事是vw-varinfo
的输出似乎是高度不平衡的。这是我的意思的一个例子,Kaggle Springleaf竞赛数据集的前几行输出:
FeatureName HashVal MinVal MaxVal Weight RelScore
num^VAR_0241_trans 219348 0.00 0.00 +128.7630 100.00%
cat^VAR_1934_1 82340 0.00 1.00 +0.1997 0.16%
cat^VAR_0232_2 24324 0.00 1.00 +0.1418 0.11%
cat^VAR_0005_0 43252 0.00 1.00 +0.1085 0.08%
bin^VAR_0550_bin1 85964 0.00 1.00 +0.0902 0.07%
这表明VAR_0241
几乎包含数据中的所有信号,并且每个其他功能都无关紧要。但这与我们从GBM和RF中看到的重要性结果不一致。那些在那里比我更熟悉的人谁可能猜测发生了什么?发布样本数据不切实际,但用于运行此代码的代码是:
vw-varinfo -c --nn 5 -f nnet.vw --passes 20 -l 0.26 --loss_function logistic -d train.vw > /tmp/vw_info_nn.txt