2014-10-24 4 views
2

모델을 학습 한 후 교차 유효성 검사 후 예측 기능을 실행하려고합니다. 변수 "classe"를 예측하고 있습니다.predict()를 사용할 때 동일한 수의 예측 자이지만 행 수가 다른 새 데이터에 오류가 발생했습니다.

테스트 데이터는 적은 행 (20 회의 관측)을 제외하고는 훈련 데이터와 동일한 이름 지정자 수를 가지고 있습니다. 테스트 데이터의 모든 예측 변수는 숫자입니다 (교육 데이터와 동일). 그러나 내가 사용한 모델에 상관없이 문제를 일으키는 것처럼 보입니다.

모델 :

rf <- train(train$classe ~., method="rf", data=train, 
     trControl = trainControl(method = "oob")) 

내가 시도 :

predict(rf, testing1) 

내가

Error in predict.randomForest(modelFit, newdata) : newdata has 0 rows 

그때 내가

gbm <- train(train$classe ~., method="gbm", data=train, 
     trControl = trainControl(method = "cv", number=5)) 

predict(gbm, testing1) 
,691을 시도 있어요

> str(testing1) 
'data.frame': 20 obs. of 86 variables: 
$ roll_belt    : num 123 1.02 0.87 125 1.35 -5.92 1.2 0.43 0.93 114 ... 
$ pitch_belt    : num 27 4.87 1.82 -41.6 3.33 1.59 4.44 4.15 6.72 22.4 ... 
$ total_accel_belt  : num 20 4 5 17 3 4 4 4 4 18 ... 
$ kurtosis_roll_belt  : num NA NA NA NA NA NA NA NA NA NA ... 
$ kurtosis_picth_belt : num NA NA NA NA NA NA NA NA NA NA ... 

... # all numeric variables 

$ magnet_forearm_y  : num 419 791 698 783 -787 800 284 -619 652 723 ... 
$ magnet_forearm_z  : num 617 873 783 521 91 884 585 -32 469 512 ... 
$ problem_id    : num 1 2 3 4 5 6 7 8 9 10 ... 
:

나는 훈련의 마지막 변수가 "CLASSE"표시 설정 반면 내 테스트 데이터는 다음과 같습니다

Error in aperm.default(psum, c(2, 1, 3)) : 
'perm' is of wrong length 3 (!= 2) 

는, 유일한 차이는, 마지막 변수가 "문제 ID"를 나타냅니다이다있어

도움을 주시면 감사하겠습니다.

답변

0

예측을 위해 열 이름이 정확히 같아야한다는 것을 알고 있습니다. 마지막 하나라도 꺼져 있으면 문제가 발생할 수 있습니다.

2

테스트 데이터의 열에있는 값 중 일부는 "NA"이지만 교육 데이터에서는 비어 있습니다. 두 파일을 R에 읽는 방법간에 약간의 불일치가있었습니다. 문제를 해결 한 후 predict()가 작동합니다.