【问题标题】:Machine Learning using R linear regression使用 R 线性回归的机器学习
【发布时间】:2013-08-28 09:24:22
【问题描述】:

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

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

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

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 值用于预测值。 如果有人知道请帮助我。 谢谢。

【问题讨论】:

  • 嗨,在上面的代码中,我将 R 代码更改为如下code library('RMongo') mg1

标签: r machine-learning


【解决方案1】:

predict的newdata参数需要包含fit中用到的变量:

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

只有这样它才真正用于预测,否则你得到拟合值。

然后您可以使用newcbind 预测值。

【讨论】:

  • 嗨,我在我的代码中使用了你的建议,它可以工作,但问题是我的查询包含 101 条记录,当我运行代码时它显示警告 1:'newdata' 有 1 行但找到的变量有 101第 2 行:在 predict.lm(lm(cpu ~ data1$memory + data1$Date), new, interval = "confidence") 中:来自秩不足拟合的预测可能会产生误导,结果显示所有 101 条记录都符合 lwr upr值,但是,我只想要一个适合我的输出的 cpu 值,所以我预测下一个即将到来的 cpuUsed 值。
猜你喜欢
  • 2019-08-01
  • 2019-04-17
  • 2020-03-27
  • 2015-11-23
  • 1970-01-01
  • 1970-01-01
  • 2018-01-26
  • 1970-01-01
  • 2020-06-25
相关资源
最近更新 更多