标签: vowpalwabbit

在交叉验证方面需要关于Vowpal Wabbit的一些指示

我的目标是在他们的参数空间中对各种VW模型进行网格搜索(尝试不同的损失函数和正则化等).由于模型可以使用多次传递,我想使用交叉验证.我想知道我是否应该实现自己的交叉验证代码(可能作为bash脚本)或者我是否重新发明轮子.关于这是否已在之前完成的任何指示或最佳方式继续进行将是有用的.我正在考虑在bash脚本中实现交叉验证,并使用GNU parallel来并行化Grid Search

vowpalwabbit

7
推荐指数
1
解决办法
1962
查看次数

处理多标签分类中的类不平衡

我在多类设置中看到了关于类不平衡的几个问题.但是,我有一个多标签问题,所以在这种情况下你会怎么处理?

我有一组约300k文本示例.如标题中所述,每个示例至少有一个标签,并且只有100个可能的唯一标签.我已经通过利用命名空间将这个问题简化为Vowpal Wabbit的二进制分类,例如

从:

healthy fruit | bananas oranges jack fruit
evil monkey | bipedal organism family guy
...  
Run Code Online (Sandbox Code Playgroud)

至:

1 |healthy bananas oranges jack fruit
1 |fruit bananas oranges jack fruit
0 |evil bananas oranges jack fruit
0 |monkey bananas oranges jack fruit
0 |healthy bipedal organism family guy
0 |fruit bipedal organism family guy
1 |evil bipedal organism family guy
1 |monkey bipedal organism family guy
...  
Run Code Online (Sandbox Code Playgroud)

我正在使用大众提供的默认选项(我认为是在线SGD,具有平方损失功能).我正在使用平方损失,因为它非常类似汉明损失.

在训练之后,当在相同的训练集上进行测试时,我注意到所有的例子都是用'0'标签预测的 ......这是一种最小化损失的方法,我想.在这一点上,我不知道该怎么做.我正在考虑使用成本敏感的一对一分类来尝试平衡类,但是由于存在2 ^ 100个标签组合,因此将多标签减少到多类是不可行的.我想知道是否有其他人有任何建议.

编辑:我终于有机会测试类失衡,特别是vw …

classification machine-learning vowpalwabbit text-classification

7
推荐指数
2
解决办法
5386
查看次数

Vowpal Wabbit Logistic回归

我正在使用Vowpal Wabbit在具有25个特征和4800万个实例的数据集上执行逻辑回归.我对当前的预测值有疑问.它应该在0或1之内.

average    since         example     example  current  current  current
loss       last          counter      weight    label  predict features
0.693147   0.693147            1         1.0  -1.0000   0.0000       24
0.419189   0.145231            2         2.0  -1.0000  -1.8559       24
0.235457   0.051725            4         4.0  -1.0000  -2.7588       23
6.371911   12.508365           8         8.0  -1.0000  -3.7784       24
3.485084   0.598258           16        16.0  -1.0000  -2.2767       24
1.765249   0.045413           32        32.0  -1.0000  -2.8924       24
1.017911   0.270573           64        64.0  -1.0000  -3.0438       25
0.611419   0.204927          128       128.0  -1.0000  -3.1539       25
0.469127   0.326834          256       256.0  -1.0000  -1.6101       23
0.403473 …
Run Code Online (Sandbox Code Playgroud)

machine-learning vowpalwabbit logistic-regression

7
推荐指数
1
解决办法
1007
查看次数

Vowpal Wabbit:低秩矩阵分解?

我有一个非常基本的问题.我想做低级矩阵分解,我正在查看有关该主题的Vowpal Wabbit文档.我的问题是:

这两种方法有区别吗?(实施或其他)

$ vw --lrq ab5
Run Code Online (Sandbox Code Playgroud)

要么

$ vw -q ab --rank 5
Run Code Online (Sandbox Code Playgroud)

在这里,ab有多项功能的命名空间和5为潜在因素维度.


可能的后续行动:

如果这些是等价的,--rank也适用于高阶交互?

machine-learning vowpalwabbit matrix-factorization

7
推荐指数
1
解决办法
720
查看次数

Vowpal Wabbit中的普通最小二乘回归

有人设法在Vowpal Wabbit中运行普通的最小二乘回归吗?我试图确认它将返回与确切解决方案相同的答案,即当选择最小化||y - X a||_2 + ||Ra||_2(其中R是正则化)时,我想得到分析答案 a = (X^T X + R^T R)^(-1) X^T y.在numpy python中进行这种类型的回归需要大约5行.

大众的文档表明它可以做到这一点(可能是"平方"的损失函数),但到目前为止,我还是无法让它接近匹配python结果.因为平方是默认的损失函数,我只是简单地称:

$ vw-varinfo input.txt
Run Code Online (Sandbox Code Playgroud)

其中input.txt有像这样的行

1.4 | 0:3.4 1:-1.2 2:4.0  .... etc
Run Code Online (Sandbox Code Playgroud)

我还需要大众电话中的其他参数吗?我无法理解(相当简单的)文档.

regression command-line-arguments least-squares vowpalwabbit

6
推荐指数
1
解决办法
1733
查看次数

Vowpal Wabbit是否会在多个在线通行证中随机播放数据?

Vowpal Wabbit会在每个纪元/通过后自动调整其数据吗?我希望创建的缓存文件将包含在线算法(如VW的默认在线SGD方法)所必需的混洗元数据.例如

vw -d train.txt -c --passes 50 -f train.model
Run Code Online (Sandbox Code Playgroud)

如果没有,我有一个备份脚本,可以在每次传递时手动调整数据

# Create the initial regressor file
vw -d train.txt -f train.model
# For the next 49 passes, shuffle and then update the regressor file
for i in {0..49}
do
    <some script: train.txt --> shuffled_data.txt>
    vw -d shuffled_data.txt -i train.model -f train.model
done
Run Code Online (Sandbox Code Playgroud)

如果VW没有自动洗牌,那么是否有更有效的方法来执行上述代码块?不幸的是,VW的wiki对此并不清楚.谢谢.

machine-learning vowpalwabbit

6
推荐指数
1
解决办法
988
查看次数

Vowpal Wabbit的渐变提升

有没有办法使用Vowpal Wabbit对回归使用渐变增强?我使用Vowpal Wabbit附带的各种技巧很有帮助.我想尝试渐变增强,但我找不到在大众实现渐变增强的方法.

machine-learning vowpalwabbit

6
推荐指数
1
解决办法
1546
查看次数

使用Vowpal wabbit的Contextual Bandit

在这种情况下,其中一个输入是选择手臂/动作的概率,但我们如何找到该概率?是不是发现概率本身就是一项重大任务?

vowpalwabbit

6
推荐指数
1
解决办法
490
查看次数

如何安装Vowpal Wabbit python界面

大众最近添加了一个python接口,但是我无法找到如何安装它的说明.如果我从自制软件安装大众汽车(brew install vowpal-wabbit),我打开python,然后打电话

import pyvw

我得到一个ImportError.

python homebrew vowpalwabbit

6
推荐指数
1
解决办法
2921
查看次数

Vowpal Wabbit 的 Java API?

我正在尝试通过 Java使用Vowpal Wabbit。我已经从 GitHub 下载并成功编译了代码。命令行工具工作正常。在快速浏览了存储库(尤其是这里)之后,我只能假设通过 Java 使用它应该已经是可能的,而且我真的不想重新发明轮子。

Vowpal Wabbit 的包装器,允许通过 Java 使用。此包装器设计为自包含的。由于使用了 JNI,因此该 JAR 支持多种平台。

我已经将 maven 依赖项(在这里找到)添加到我的项目中,但是没有任何类型的文档,我真的不知道从哪里开始。我在另一个问题中看到,似乎可以将 VW 与 Java 一起使用,但是这家伙只Runtime.getRuntime.exec()用来调用他的 bash 命令,而我找不到有关任何其他方式的任何文档(并且只有2 个问题在 SO 上混合 VW 和 Java,这无济于事)。我是 JNI 的新手,所以很可能有一些我看不到的简单内容。完全清楚,我的问题是:

  • 我应该创建一个有效的 vw 命令并使用它Runtime.getRuntime.exec()吗?这似乎不是 JNI 的精神,因为不需要任何包装器/库。另外,这并不使它非常便携。
  • (该死的)(Java API)文档在哪里?

欢迎任何形式的帮助或指导。

java java-native-interface vowpalwabbit

5
推荐指数
1
解决办法
1088
查看次数