2017-02-08 11 views
0

Ich versuche, Vorhersagen mit linearen Modell zu tun, betrachten Sie einen Datensatz mit 2 Spalten und folgenden Daten (1,1) (2, .5), (3,3), (4,5) , (5,5,5), (6,7) (8,8) (9,9) (10,10) .. I kann als lineares ModellVorhersage fehlender Werte mit Rxpredict

lm <- rxlinMod(col1~col2, data=test) 

passen und dann rxpredict als

laufen
pd <- rxPredict(lm,data=test) 

das Ergebnis rxpredict gegeben, wie kann ich den Wert von col2 finde jetzt, wo col1 Wert nicht verfügbar ist, beispielsweise, was der Wert von col2 wenn seine col1 ist 7.

Update: Paket ist revoscaler

Daten

col1,col2 
1,1 
2,2 
3,3 
4,4 
5,5 
6,6 
8,8 
9,9 
10,10 

infile <- file.path("C:/R-Spark", "test.csv") 
test <- rxImport(infile) 
library(rpart) 

lm <- rxLinMod(col1 ~ col2, data = test) 
rxPredict(lm,data = test) 

Rechenzeit: 0,003 Sekunden.

Ausgang

> rxPredict(lm,data = test) 
Rows Read: 10, Total Rows Processed: 10, Total Chunk Time: 0.002 seconds 
    col1_Pred 
1   1 
2   2 
3   3 
4   4 
5   5 
6   6 
7   7 
8   8 
9   9 
10  10 

Frage: Nun, wenn ich den vorhergesagten Wert von nur 7, wie kann ich die Daten filtert aus dem rxpredict Ausgang

+0

Bitte zeigen Sie ein reproduzierbares Beispiel und den Paketnamen (RevoScaleR?) – akrun

+0

Sie können ein Modell nicht verwenden, um y vorherzusagen, x, um x vorherzusagen. –

Antwort

0

Ich werde versuchen, bekommen Sie Ihre Frage zu beantworten verschiedene Daten mit , um Verwechslungen zu vermeiden, wenn auf die Werte col1, col2 oder die Datenrahmenzeilenindizes Bezug genommen wird.

Also, nehmen wir an, dass

test <- data.frame(col1=seq(20,200,20), col2=seq(10,100,10)) 

test wie folgt aussieht:

test 
    col1 col2 
1 20 10 
2 40 20 
3 60 30 
4 80 40 
5 100 50 
6 120 60 
7 140 70 
8 160 80 
9 180 90 
10 200 100 

jetzt:

lm <- rxLinMod(col1~col2, data=test) 
pd <- rxPredict(lm,data=test) 

so

pd 
    col1_Pred 
1   20 
2   40 
3   60 
4   80 
5  100 
6  120 
7  140 
8  160 
9  180 
10  200 

Jetzt, wenn Sie den vorhergesagten col1 Wert wünschen, wenn col2 = 70 in Ihrem test data.frame (der data.frame, der beim Aufrufen rxPredict verwendet wird). Sie können folgendes tun:

pd$col1_Pred[which(test$col2 == 70)] 
[1] 140 

Nur um zu klären, stellen Sie sich das gleiche lineare Modell lm mit neuen Eingabedaten test2 verwenden möchten:

test2 <- data.frame(col2=c(15, 25, 35)) 

test2 
    col2 
1 15 
2 25 
3 35 

Jetzt:

pd2 <- rxPredict(lm,data=test2) 

pd2 
    col1_Pred 
1  30 
2  50 
3  70 

Wenn Sie möchten den vorhergesagten Wert col1 für col2 = 25 in test2:

auslesen
pd2$col1_Pred[which(test2$col2 == 25)] 
[1] 50 
+0

Es hat für mich funktioniert, vielen Dank –

Verwandte Themen