R biglm mit kategorischen Variablen

8

Ich habe einen großen Datensatz, mit dem ich in R arbeite, indem ich einige der big.___() -Pakete verwende. Es ist ~ 10 Gigs (100mmR x 15C) und sieht so aus:

%Vor%

Ich versuche den Preis basierend auf Var1 und Var2 vorherzusagen.

Das Problem, das mir aufgefallen ist, ist, dass Var1 und Var2 kategorische / Faktor-Variablen sind.
Var1 und Var2 haben jeweils 3 Ebenen (1,2 und 3), aber es gibt nur 6 Kombinationen im Datensatz

%Vor%

Um Faktorvariablen in biglm() zu verwenden, müssen sie in jedem Datenstück vorhanden sein, das biglm verwendet (mein Verständnis ist, dass biglm den Datensatz in die Anzahl von "x" teilt und die Regressionsparameter danach aktualisiert Analysieren jedes Chunks, um mit Datensätzen umgehen zu können, die größer sind als RAM).

Ich habe versucht, die Daten zu unterteilen, aber mein Computer kann damit nicht umgehen oder mein Code ist falsch:

%Vor%

Das obige gibt mir eine Reihe von diesen:

%Vor%

Hat jemand irgendwelche Vorschläge, um dieses Problem zu umgehen?

Ich benutze R 64-Bit auf einem Windows 7 Rechner mit 4 GB RAM.

    
screechOwl 08.05.2012, 16:50
quelle

1 Antwort

9

Sie benötigen nicht alle Daten oder alle Werte, die in jedem Chunk vorhanden sind. Sie müssen nur alle Ebenen berücksichtigen. Dies bedeutet, dass Sie einen Chunk wie folgt haben können:

%Vor%

und es wird funktionieren. Obwohl es in Var2 nur einen Wert in Var1 und in Var2 zwei Werte gibt, sind alle drei Ebenen in beiden vorhanden, so dass es das Richtige tut.

Auch biglm bricht die Daten nicht in Stücke für Sie, sondern erwartet, dass Sie ihm handhabbare Stücke geben, mit denen Sie arbeiten können. Arbeite durch die Beispiele, um das besser zu sehen. Eine gängige Methode mit biglm ist es, aus einer Datei oder Datenbank zu lesen, die ersten 'n' Zeilen einzulesen (wobei 'n' eine vernünftige Teilmenge ist) und sie an biglm weiterzuleiten (möglicherweise nachdem alle Faktoren überprüft wurden) Alle Ebenen angegeben, dann entfernen Sie diesen Teil der Daten aus dem Speicher und lesen Sie in den nächsten 'n' Zeilen und übergeben Sie diese an update , fährt damit fort bis zum Ende der Datei entfernt die verwendeten Stücke jedes Mal (so haben Sie genug Speicherplatz für die nächste).

    
Greg Snow 08.05.2012, 17:52
quelle

Tags und Links