2013-08-28 3 views
1

기계 학습 코드로 R을 사용했습니다. 내 프로젝트 시나리오는 아래와 같습니다. 데이터베이스 저장소로 MongoDB를 사용했습니다. mongo db에서 저는 매 5 분마다 그 콜렉션에 하나의 콜렉션을 가지고있었습니다. 하나의 새로운 문서가 추가되었습니다. 컬렉션 설명은 다음과 같습니다. 기계 R 선형 회귀를 사용하여 학습

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

지금 내 문제는 문서 위에 사용하여 나는 다음 5 분 또는 10 분 또는 24 시간을 예측 할 것입니다. cpuUsed 및 메모리 값. 나는 위의 코드를 실행할 때 그 동안 나는 그것이 나 값을 예측에 사용되는 값을 cpuUsed 나도 몰라이 출력을 사용하여 출력을

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

를 다음 보여줍니다

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") 

아래와 같이 R 코드를 작성하지만, . 아무도 나를 도와주세요. 감사합니다. 예측 수요의

+0

안녕하세요, 위 코드에서 나는 아래 코드 라이브러리 ('RMongo')와 같이 R 코드를 변경했습니다 mg1 <- mongoDbConnect ('dbname' ') 쿼리 <- dbGetQuery (mg1,'final ', "{' 호스트 ID ':'100.1.1.1 '} ") 일 <- 쿼리 $ 날짜 메모리 <- 쿼리 $ 메모리 CPU <- 쿼리 $의 cpuUtilization 고해상도 <- LM (cbind (메모리, CPU) ~ 날짜-1) new <- data.frame (date = 1377843220) # 날짜가 타임 스탬프에 전달되었습니다. 예측 (res, new) 대답은 나에게 있지만이 방법은 좋지 않거나 예측 결과를 예측할 수 없습니다. 도와주세요. – Yogesh

답변

0

newdata 매개 변수는 맞춤에 사용되는 변수를 포함합니다 :

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

를 만 다음 실제로 예측에 사용되며, 그렇지 않으면 당신은 피팅 된 값을 얻는다.

그러면 new으로 예측 값을 cbind 수 있습니다.

+0

안녕 내 코드에 귀하의 제안을 사용하고 그것은 작동하지만 문제는 내 쿼리 101 레코드가 포함되어 있고 경고 코드 1을 표시 할 때 : 'newdata'1 행 있지만 발견 된 변수 101 행을 2 : 예측합니다. 랭크가 부족한 적합도로부터의 예측은 을 오도 할 수 있으며 결과는 lwr upr 값에 맞는 101 개의 레코드를 모두 표시하지만 I (lm (cpu ~ data1 $ memory + data1 $ Date), new, interval = "confidence" 내 출력에 맞는 CPU에 대한 단일 값만 원하면 다음에 오는 cpuUsed 값으로 예측했습니다. – Yogesh