2014-09-27 2 views
1

누락 된 값을 처리하기 위해 R에서 Amelia 패키지를 사용하고 있습니다. 임의의 포리스트를 귀속 된 데이터로 조정하려고 할 때 아래 오류가 발생합니다. 난 내가 전가의 $의 imputations로 랜덤 포레스트 입력을 사용하는 경우 R.클래스 ""amelia ""를 data.frame에 강제 변환 할 수 없습니다.

train_data<-read.csv("train.csv") 
sum(is.na(train_data)) 

impute<- amelia(x=train_data,m=5,idvars=c("X13"), interacs=FALSE) 
impute<= as.data.frame(impute) 

for(i in 1:impute$m) { 
    model <- randomForest(Y ~X1+X2+X3+X4+X5+X6, 
       data= as.data.frame(impute)) 
} 

Error in as.data.frame.default(impute) : 
    cannot coerce class ""amelia"" to a data.frame 

에서 랜덤 포레스트 기능에 대한 권리 입력됩니다 데이터 프레임에 아멜리아 클래스를 변환 할 수있는 방법을 잘 모르겠습니다 [[I]] i를 오류 아래 :

model <- randomForest(Y ~X1+X2+X3+X4+X5+X6, 
       impute$imputations[[i]]) 
Error: $ operator is invalid for atomic vectors 

사람이 내가이 문제를 해결하는 방법을 나에게 제안 할 수 .IT는 큰 도움이 될 것입니다.

+0

@RichardScriven impute <-as.matrix (impute)를 수행해야한다는 뜻입니까? – Nikita

+0

먼저'unclass (impute)'를 먼저 봐야한다고 생각합니다. 그러면 객체가 실제로 어떻게 보이는지 알 수 있습니다. 'as.matrix'를 잊어 버려, 내가 잘못 생각했다. –

+0

@RichardScriven 설명에 감사드립니다. 나는 아직도이 오류를 처리 할 수 ​​없다. aregImpute를 사용하는 동안 유사한 오류가 발생합니다. 귀속 된 테스트 데이터 세트를 예측 함수에 제공 할 때.predict_valid <-predict (model, newdata = impute_valid, type = "response) - impute_valid <- aregImpute (Y ~ X1 + X2 + X3 + X4 + X5 + X6, 데이터 = 테스트 데이터, n.impute = 5, nk = 0) ") as.data.frame.default (data)의 오류 : 클래스" "aregImpute" "을 data.frame에 강제 해석 할 수 없습니다. – Nikita

답변

-1

변인에 대한 정보가 포함 된 변수를 훈련하려고하기 때문에 이러한 일이 발생합니다. 당신이 훈련 할 필요가있는 데이터가 없습니다. 데이터 세트에 귀속 된 값을 결합하려면 complete 함수를 사용해야합니다.

impute <- amelia(x=train_data,m=5,idvars=c("X13"), interacs=FALSE) 
impute <- complete(impute,1) 
impute <- as.data.frame(impute) 

이렇게하면 교육이나 데이터 예측에 문제가 없습니다.

impute<= as.data.frame(impute) 

가되어야한다 :

impute <- as.data.frame(impute) 

오류가 발생합니다

+0

질문은 아멜리아에 관한 것이지만 이것은 마우스 대체 패키지에 대한 대답입니다. –

+0

@MhairiMcNeill이 수정되었습니다. 이 문제로 작업 할 때이 특정 사례로 업데이트 할 때 문제가 발생했습니다. 그러나 수정 사항은 동일합니다. –

0

그래서, 나는 첫 번째 문제는이 여기에 라인라고 생각합니다.

복수 대체는 여러 데이터 집합으로 데이터를 대체합니다. 각 데이터 집합은 누락 값에 대한 다른 대체 값을 갖습니다. 이것은 그러한 가치없는 예측의 불확실성을 반영합니다. Amelia 객체를 데이터 프레임으로 변환하면 5 개의 데이터 프레임 중에서 하나의 데이터 프레임을 만들려고 시도하고 있으며이를 수행하는 방법이 분명하지 않습니다.

단순한 형태의 imputation (예 : 평균값 입력)을 살펴볼 수 있습니다.