2017-02-08 76 views
0

我想要做的預測使用線性模型,考慮一個數據集與2列和以下數據(1,1)(2,5),(3,3),(4,5) ,(5,5,5)(6,7)(8,8)(9,9)(10,10)..我可以適合線性模型作爲預測缺失值使用rxpredict

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

,然後作爲

rxpredict運行
pd <- rxPredict(lm,data=test) 

給出的rxpredict的結果,我怎麼能現在發現的col2的值,其中col1值不可用,例如會有什麼col2如果01的值是7

更新: 包是revoscaler

數據

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) 

計算時間:0.003秒。

輸出

> 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 

問題: 現在,如果我想要得到的只有7預測值我怎樣才能從rxpredict輸出濾波器的數據

+0

請顯示一個可重現的示例和軟件包名稱(RevoScaleR?) – akrun

+0

你不能用模型來預測給定的x,來預測x。 –

回答

0

我會盡量回答你的問題採用不同的數據,以避免引用col1col2或數據幀行索引的值時的混淆。

所以,讓我們假設

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

test看起來是這樣的:

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 
現在

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

所以

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

現在,如果您希望在您的test data.frame中調用col2 = 70時預測的col1值(調用rxPredict時使用的數據幀)。你可以做到以下幾點:

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

只是爲了澄清,想象你想要使用新的輸入數據test2相同的線性模型lm

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

test2 
    col2 
1 15 
2 25 
3 35 

現在:

pd2 <- rxPredict(lm,data=test2) 

pd2 
    col1_Pred 
1  30 
2  50 
3  70 

如果您希望單獨輸出test2中的col2 = 25的預測值col1

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

它爲我工作,非常感謝 –