나는 여러 클래스 분류를 위해 조정 된 임의의 포리스트 모델을 구축 중입니다. 다음 결과를 얻었습니다 교육 정확도 (AUC) : 0.9921996 테스트 정확도 (AUC) : 0.992237664 이 웹 사이트에서 이와 관련된 질문을 보았습니다. 일반적인 대답은 데이터 집합이 작아야한다는 것입니다. 모델은 운이 있어요하지만 내 경우에 나는 약 300K 훈련 데이터 포인트와 100,000 테스트 데이터 포인트 이 또한 내 클래스가 모델이 큰 시험 데이터에 잘 맞게하는교육 정확도 이상의 테스트 정확도
> summary(train$Bucket)
0 1 TO 30 121 TO 150 151 TO 180 181 TO 365 31 TO 60 366 TO 540 541 TO 730 61 TO 90
166034 32922 4168 4070 15268 23092 8794 6927 22559
730 + 91 TO 120
20311 11222
> summary(test$Bucket)
0 1 TO 30 121 TO 150 151 TO 180 181 TO 365 31 TO 60 366 TO 540 541 TO 730 61 TO 90
55344 10974 1389 1356 5090 7698 2932 2309 7520
730 + 91 TO 120
6770 3741
그것이 가능 균형이 잘 있나요? 내 모델이 정말로 잘 맞는 지 확인하기 위해 무언가를 할 수 있다면 대답 해주세요.
내 전체 코드
split = sample.split(Book2$Bucket,SplitRatio =0.75)
train = subset(Book2,split==T)
test = subset(Book2,split==F)
traintask <- makeClassifTask(data = train,target = "Bucket")
rf <- makeLearner("classif.randomForest")
params <- makeParamSet(makeIntegerParam("mtry",lower = 2,upper = 10),makeIntegerParam("nodesize",lower = 10,upper = 50))
#set validation strategy
rdesc <- makeResampleDesc("CV",iters=5L)
#set optimization technique
ctrl <- makeTuneControlRandom(maxit = 5L)
#start tuning
tune <- tuneParams(learner = rf ,task = traintask ,resampling = rdesc ,measures = list(acc) ,par.set = params ,control = ctrl ,show.info = T)
rf.tree <- setHyperPars(rf, par.vals = tune$x)
tune$y
r<- train(rf.tree, traintask)
getLearnerModel(r)
testtask <- makeClassifTask(data = test,target = "Bucket")
rfpred <- predict(r, testtask)
performance(rfpred, measures = list(mmce, acc))
답변 해 주셔서 감사합니다. 이 질문에 대한 다른 질문이 있습니다. 네가 도울 수 있다면 정말 고마워. 교육 데이터와 함께 테스트 데이터를 조작하는 것이 좋은 방법인지 알고 싶었습니다. 희소 한 사건으로 인해 특이 치를 제거하거나 요인 수준을 수정한다는 것을 조작하는 것으로 –