有没有办法发送数据以在 Vowpal Wabbit 中训练模型而不将其写入磁盘?
这就是我想要做的。我在 csv 中有一个相对较大的数据集(大约 2gb),它可以毫无问题地放入内存中。我将它在 R 中加载到数据框中,并且我有一个函数可以将该数据框中的数据转换为 VW 格式。
现在,为了训练模型,我必须先将转换后的数据写入文件,然后将该文件提供给大众。而且写入磁盘部分花费的时间太长,特别是因为我想尝试具有不同特征转换的不同模型,因此我必须多次将数据写入磁盘。
所以,假设我能够在 R 中创建一个字符向量,其中每个元素都是 VW 格式的一行数据,我怎么能在不将其写入磁盘的情况下将其输入 VW 呢?
我考虑使用守护程序模式并将字符向量写入本地主机连接,但我无法让大众在守护程序模式下进行训练——我不确定这是否可能。
如有必要,我愿意使用 c++(通过 Rcpp 包)来完成这项工作。
非常感谢您提前。
更新:
感谢大家的帮助。如果有人感兴趣,我只是按照答案中的建议将输出通过管道传输到大众,如下所示:
# Two sample rows of data
datarows <- c("1 |name 1:1 2:4 4:1", "-1 |name 1:1 4:1")
# Open connection to VW
con <- pipe("vw -f my_model.vw")
# Write to connection and close
writeLines(datarows, con)
close(con)