使用R线性回归的机器学习

时间:2013-08-28 09:24:23

标签: r machine-learning

我使用R作为机器学习代码。我的项目场景如下所述。 我使用MongoDB进行数据库存储。在mongo db中,我每隔5分钟在该集合中有一个集合。添加了一个新文件。集合描述如下。

 {
"_id" : ObjectId("521c980624c8600645ad23c8"),
"TimeStamp" : 1377605638752,
"cpuUsed" : -356962527,
"memory" : 2057344858,
"hostId" : "200.2.2.2"
 }

现在我的问题是使用上述文件我想预测接下来的5分钟或10分钟或24小时。 cpuUsed和内存值。为此,我写下如下代码

library('RMongo')
mg1 <- mongoDbConnect('dbname')
query <- dbGetQuery(mg1,'test',"{'hostId' : '200.2.2.2'}")
data1 <- query[]
cpu <- query$cpuUtilization
memory <- query$memory
new <- data.frame(data=1377678051) # set timestamp for calculating results
predict(lm(cpu ~   data1$memory + data1$Date ), new, interval="confidence")

但是,当我执行上面的代码时,它会向我显示以下输出

           fit        lwr       upr
    1    427815904  -37534223 893166030
    2   -110791661 -368195697 146612374
    3    137889445 -135982781 411761671
    4   -165891990 -445886859 114102880
    .
    .
    .
    n    

使用此输出我不知道用于预测值的cpuUsed值。 如果有人知道请帮助我。 谢谢。

1 个答案:

答案 0 :(得分:0)

预测的newdata参数需要包含拟合中使用的变量:

new <- data.frame(memory = 1377678051, Date=as.Date("2013-08-28))

只有它实际上用于预测,否则你得到拟合值。

然后,您可以使用cbind new {{1}}预测值。