Data science Vowpal Wabbit:如何在分割训练和测试文件时使用命令行参数

Data science Vowpal Wabbit:如何在分割训练和测试文件时使用命令行参数,data-science,vowpalwabbit,Data Science,Vowpalwabbit,我是VW的新手,希望通过使用命令行参数来验证我的操作 我将我的数据集分为训练集和测试集(基于75%-25%),现在想运行大众 我使用的命令行参数: 列车组 vw train.tsv-f model.vw--sgd--loss_函数logistic--hash all --学习率0.01—功率0.0—无常数b 22—忽略“A” 测试集 vw test.tsv-t-i model.vw-p preds.txt--sgd--link logistic--hash 全部--学习率0.01--功率0.0-

我是VW的新手,希望通过使用命令行参数来验证我的操作

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

我使用的命令行参数:

列车组 vw train.tsv-f model.vw--sgd--loss_函数logistic--hash all --学习率0.01—功率0.0—无常数b 22—忽略“A”

测试集 vw test.tsv-t-i model.vw-p preds.txt--sgd--link logistic--hash 全部--学习率0.01--功率0.0--无恒量-b 22

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

--散列全部--学习率0.01--幂0.0--无恒量-b 22

由于其存在于列车部件的模型中


谢谢你的帮助

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

让我们分步骤来解释这一点。 从简单开始,用最少的工作示例:

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

# 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