Vowpal Wabbit可读模型

Bok*_*kha 4 machine-learning data-mining vowpalwabbit

我正在使用Vowpal Wabbit并且正在生成训练为可读模型的分类器.

我的数据集有22个功能,可读模型作为输出:

Version 7.2.1
Min label:-50.000000
Max label:50.000000
bits:18
0 pairs:
0 triples:
rank:0
lda:0
0 ngram:
0 skip:
options:
:0
101143:0.035237
101144:0.033885
101145:0.013357
101146:-0.007537
101147:-0.039093
101148:-0.013357
101149:0.001748
116060:0.499471
157941:-0.037318
157942:0.008038
157943:-0.011337
196772:0.138384
196773:0.109454
196774:0.118985
196775:-0.022981
196776:-0.301487
196777:-0.118985
197006:-0.000514
197007:-0.000373
197008:-0.000288
197009:-0.004444
197010:-0.006072
197011:0.000270
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释如何解释文件的最后部分(在选项之后)?我正在使用逻辑回归,我需要检查如何迭代训练更新我的分类器,以便我能够理解何时达到收敛...

提前致谢 :)

ari*_*elf 10

您看到的值是所有22个要素的哈希值和权重,以及在生成的训练模型中的一个额外"常量"要素(其哈希值为116060).

格式为:

hash_value:weight
Run Code Online (Sandbox Code Playgroud)

要查看原始要素名称而不是哈希值,可以使用以下两种方法之一:

  • 使用utl/vw-varinfo训练集中的(在源树中)实用程序,使用与训练相同的选项.尝试utl/vw-varinfo帮助/使用消息
  • 使用相对较新的--invert_hash readable.model选项

BTW:由于大的性能损失,将哈希值反转回原始功能名称不是默认值.默认情况下,vw在它看到的每个要素字符串上应用单向散列.它根本不维护要素名称与其哈希值之间的哈希映射.

编辑:

可能感兴趣的另一个小问题是第一个条目,options:其后读取:

:0
Run Code Online (Sandbox Code Playgroud)

它本质上意味着任何"其他"特征(所有那些不在训练集中,因此,没有散列到权重向量中)的特征默认为权重0.这意味着它在vowpal-wabbit中是多余的训练值为零的要素,无论如何都是默认值.显式:0值功能根本不会对模型做出任何贡献.当你在训练集中遗漏一个权重时,如:feature_name没有尾随的:<value>vowpal wabbit隐含地假设它是一个带有TRUE值的二元特征.IOW:它默认所有无值功能,值为one(:1)而不是零(:0).HTH.