Daten aus dem Speicher in Vowpal Wabbit lesen?
Gibt es eine Möglichkeit, Daten zu senden, um ein Modell in Vowpal Wabbit zu trainieren, ohne es auf die Festplatte zu schreiben?
Folgendes versuche ich zu tun. Ich habe einen relativ großen Datensatz in CSV (ca. 2 GB), der problemlos in den Speicher passt. Ich lade es in R in einen Datenrahmen und habe die Funktion, die Daten in diesem Datenrahmen in das VW-Format zu konvertieren.
Um ein Modell zu trainieren, muss ich zunächst die konvertierten Daten in eine Datei schreiben und diese Datei dann an VW weiterleiten. Und das Schreiben auf die Festplatte dauert viel zu lange, zumal ich verschiedene Modelle mit unterschiedlichen Feature-Transformationen ausprobieren möchte und daher die Daten mehrmals auf die Festplatte schreiben muss.
Angenommen, ich kann einen Zeichenvektor in R erstellen, in dem jedes Element eine Datenzeile im VW-Format ist. Wie kann ich das in VW einspeisen, ohne es auf die Festplatte zu schreiben?
Ich überlegte, den Daemon-Modus zu verwenden und den Zeichenvektor in eine Localhost-Verbindung zu schreiben, aber ich konnte VW nicht dazu bringenZug im Daemon-Modus - Ich bin mir nicht sicher, ob dies überhaupt möglich ist.
Ich bin bereit, c ++ (über das Rcpp-Paket) zu verwenden, falls erforderlich, damit dies funktioniert.
Vielen Dank im Voraus.
AKTUALISIEREN:
Vielen Dank für Ihre Hilfe. Bei Interesse habe ich die Ausgabe einfach wie in der Antwort vorgeschlagen an VW weitergeleitet:
# 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)