나는 R에 익숙하지 않고 할당을 위해 C5.0 의사 결정 트리로 5 배 교차 유효성 검사를 구현하기 위해 for 루프를 사용하고 있습니다. 나는에서 목표 변수의 결과를 예측하기 위해 루프에서 안전/전체 트리 모델에 액세스하려면 어떻게R에서 교차 유효성 검사를 사용하여 C5.0 의사 결정 트리를 반복 할 때 개별 예측 모델을 저장하는 방법?
explanatory_variables.dt<-names(data_known)[-16]
form.dt<-as.formula(paste("target ~", paste(explanatory_variables.dt,
collapse = "+")))
folds.dt<-split(data_known,cut(sample(1:nrow(data_known)),5))
errs.c50.dt<-rep(NA,length(folds.dt))
for (i in 1:length(folds.dt)) {
test.dt<-ldply(folds.dt[i],data.frame)
train.dt<-ldply(folds.dt[-i],data.frame)
tmp.model.dt<-C5.0(form.dt,train.dt)
tmp.predict.dt<-predict(tmp.model.dt, newdata=test.dt)
conf.mat.dt<-table(test.dt$target,tmp.predict.dt)
errs.c50.dt[i]<-1-sum(diag(conf.mat.dt))/sum(conf.mat.dt)
}
print(sprintf("average error using k-fold cross validation and C5.0
decision tree algorithm: %.3f percent", 100*mean(errs.c50.dt)))
:
head(data_known)
order_item_id order_date item_id item_size brand_id item_price user_id
1 1 2012-09 1507 UNSIZED 102 24.9 4694
2 2 2012-11 1745 10 64 75.0 6097
3 3 2013-01 2588 XXL 42 79.9 7223
4 4 2012-08 164 40 47 79.9 4124
5 5 2012-09 1640 L 97 69.9 881
6 6 2013-03 2378 38 72 129.9 1576
user_title user_dob user_state user_reg_date
1 Mrs 1964-11 Rhineland-Palatinate 2011-02
2 Mrs 1973-08 Brandenburg 2011-05
3 Mrs 1949-08 Saarland 2013-01
4 Mrs 1960-12 Thuringia 2012-08
5 Mrs 1971-06 Baden-Wuerttemberg 2012-01
6 Mrs 1965-10 North Rhine-Westphalia 2011-02
delivery_time_days user_title_NA item_size_NA user_dob_NA target
1 2 0 0 0 Return
2 4 0 0 0 No Return
3 2 0 0 0 Return
4 5 0 0 0 Return
5 3 0 0 0 Return
6 11 0 0 0 Return
을 이제 내 루프는, 다음과 같이 내 데이터 세트 보인다 진정한 실현이 아직 알려지지 않은 다른 데이터 세트? 또는 교차 검증을 사용할 때 tmp.model.dt에 대한 예측을 기반으로해야합니까?
도움을 주셔서 감사합니다.
최저
,니코 여기
당신이 쫓고있는 구조가 목록입니다. 하나 만들고 모델을 저장하십시오. 나중에 사용하기 위해'save'를 사용하여리스트를 저장할 수 있습니다. –
로마 답장을 보내 주셔서 감사합니다. 나는 당신과 j의 의견 때문에 지금까지 해결할 수있었습니다. – Nico