【问题标题】:Vowpal Wabbit: How to use command line arguments when splitting to train and test filesVowpal Wabbit:拆分训练和测试文件时如何使用命令行参数
【发布时间】:2020-01-05 06:48:31
【问题描述】:

我是 VW 的新手,想以我使用命令行参数的方式验证我的操作..

我将我的数据集分为训练集和测试集(基于 75%-25%),现在想运行 VW。

我使用的命令行参数:

火车组

vw train.tsv -f model.vw --sgd --loss_function 逻辑 --hash all --learning_rate 0.01 --power_t 0.0 --noconstant -b 22 --ignore 'A'

测试集

vw test.tsv -t -i model.vw -p preds.txt --sgd --link 逻辑 --hash 全部 --learning_rate 0.01 --power_t 0.0 --noconstant -b 22

我不确定测试部分是否需要这部分:

--hash all --learning_rate 0.01 --power_t 0.0 --noconstant -b 22

由于它存在于火车部分构建的模型中。

帮助表示赞赏!

【问题讨论】:

    标签: data-science vowpalwabbit


    【解决方案1】:

    上述问题中的尝试示例存在一些问题。

    让我们逐步解释这一点。 从一个简单的工作示例开始:

    训练:

    # Read training data from train.dat, learn
    # and store the resulting model in train.model
    vw -d train.dat -f train.model
    

    测试:

    # use the train.model to predict on new test.dat data
    # output the predictions into predict.dat
    vw -t -i train.model -d test.dat -p predict.dat
    

    注意事项:

    • train.dat 和 test.dat 必须是 vw 输入格式(它们不能是 *.tsv)。有一个实用程序可以将 csv/tsv 转换为 vw 格式。在源代码树中查找 utl/csv2vw。
    • 注意使用-d ... 将输入文件参数传递给vw。一些旧版本的vw 对必须指定-d 更为宽松,但最近的版本更严格。为了安全起见,只需在输入文件前添加-d。
    • vw 输入格式为documented here
    • 正如您所注意到的:训练期间使用的一些选项在测试期间不需要通过,因为它们已经嵌入到模型中(并且无法更改)。例如,-b 22 的位数就是其中之一。但是您不需要记住哪些选项。如果vw 已经知道(来自模型)的选项不一致或重复,它将打印错误。只需删除您收到错误消息的那些。
    • -t 表示仅测试。默认情况下,vw 会不断学习并更新内存中的模型。
    • -i(加载初始模型)和-f(存储最终模型)用于读取模型文件(开始)和写入模型文件(结束)运行。
    • 一般而言,由于vw 是在线学习者,因此无需将数据拆分为训练和测试。每个示例都将用于 a) 预测和 b) 学习。由于预测是在模型更新之前进行的,因此所有在线预测损失都类似于测试(样本外)
    • --power_t 0 是一个极端的设置,可能不是你想要的,它会一直忘记学到的东西(假设数据的极端非平稳性)
    • 如果标签位于 {-1, 1} 中并且您对逻辑回归感兴趣,则可以添加 --loss_function logistic 之类的选项。
    • --hash-all 仅在您的特征名称是数字而其他不是数字时才有意义,并且您希望最大限度地减少冲突。
    • --sgd 禁用 SGD 算法增强功能:--adaptive、--normalized 和 --invariant。在大多数情况下,这会使收敛变得不那么稳健和更慢。考虑放弃此选项。
    • 在大多数情况下,vw 默认选项运行良好。仅当您了解选项并知道自己在做什么时才更改它们。

    在新的 Vowpal Wabbit 网站vowpalwabbit.org 上有一些新的和改进的教程。初学者的部分和示例在我的经验中非常好。

    【讨论】:

      猜你喜欢
      • 2015-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      • 2021-03-30
      相关资源
      最近更新 更多