Gibt es eine Möglichkeit, Daten zu senden, um ein Modell in Vowpal Wabbit zu trainieren, ohne es auf die Festplatte zu schreiben?Lesen Sie Daten aus dem Speicher in Vowpal Wabbit?
Hier ist, was ich versuche zu tun. Ich habe einen relativ großen Datensatz in csv (ca. 2GB), der problemlos in den Speicher passt. Ich lade es in R in einen Datenrahmen und ich habe eine Funktion, um die Daten in diesem Datenrahmen in VW-Format zu konvertieren.
Jetzt, um ein Modell zu trainieren, muss ich zuerst die konvertierten Daten in eine Datei schreiben und dann diese Datei an VW füttern. Und das Schreiben in den Disk-Teil dauert viel zu lange, zumal ich verschiedene Modelle mit verschiedenen Feature-Transformationen ausprobieren will und somit die Daten mehrfach auf die Festplatte schreiben muss.
Also angenommen, ich bin in der Lage, einen Zeichenvektor in R zu erstellen, in dem jedes Element eine Reihe von Daten im VW-Format ist, wie könnte ich das in VW einspeisen, ohne es auf die Festplatte zu schreiben?
Ich dachte über die Verwendung des Daemon-Modus und das Schreiben des Zeichenvektors auf eine Localhost-Verbindung, aber ich konnte VW nicht im Daemon-Modus trainieren - ich bin mir nicht sicher, ob das überhaupt möglich ist.
Ich bin bereit, C++ (über das Rcpp-Paket) zu verwenden, wenn dies erforderlich ist, um dies zu arbeiten.
Vielen Dank im Voraus.
UPDATE:
Vielen Dank an alle für Ihre Hilfe. Falls jemand interessiert, ich verrohrt nur die Ausgabe an VW, wie in der Antwort vorgeschlagen, etwa so:
# 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)
Vielen Dank. Um zu verdeutlichen, wenn ich den Dummy-Beispieltrick "Speichern" verwende, basiert das gespeicherte Modell auf allen Beispielen, die bis dahin an den Daemon gesendet wurden, richtig? – user3856970
Ja, das gespeicherte Modell basiert auf allen Beispielen, die bis zu diesem Zeitpunkt an den Daemon gesendet wurden (und wie beim Online-Lernen üblich, beeinflussen die späteren Beispiele das Modell mehr). –