我正在尝试使用线性模型进行预测,考虑一个包含2列并跟随数据(1,1)(2,.5),(3,3),(4,5),(5,5)的数据集,5)(6,7)(8,8)(9,9)(10,10)..我可以拟合线性模型
lm <- rxlinMod(col1~col2, data=test)
然后将rxpredict作为
运行pd <- rxPredict(lm,data=test)
根据rxpredict
的结果,我现在如何找到col2
col1
值不可用的值,例如col2
的值是col1
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)
是7。
更新 包装是revoscaler
数据
> 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
计算时间:0.003秒。
输出
#if
问题: 现在,如果我想获得仅7的预测值,我如何从rxpredict输出中过滤数据
答案 0 :(得分:0)
我会尝试使用不同的数据回答您的问题,以避免在引用col1
,col2
或数据框行索引的值时出现混淆。
所以,我们假设
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
现在,如果您希望col1
data.frame(调用col2 = 70
时使用的data.frame)test
时的预测rxPredict
值。您可以执行以下操作:
pd$col1_Pred[which(test$col2 == 70)]
[1] 140
只是为了澄清一下,想象一下你想对新的输入数据lm
使用相同的线性模型test2
:
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
如果您希望在col1
中挑出col2 = 25
的预测test2
值:
pd2$col1_Pred[which(test2$col2 == 25)]
[1] 50