0
マルチクラス分類用に調整されたランダムフォレストモデルを構築しています。 私は次の結果を得ています トレーニングの精度(AUC):0.9921996 試験精度(AUC):0.992237664 このウェブサイトではこれに関する質問がありましたが、データセットが小さくてモデルは 幸運しかし、私の場合は私は約30万トレーニングデータポイントと100kの試験データポイント はまた、私のクラスはトレーニングの精度以上のテスト精度
> 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))
答えをありがとう。私はもう一つ質問しています。もしあなたが助けることができれば本当に感謝しています。トレーニングデータと一緒にテストデータを操作するのがよい方法かどうかを知りたかったのです。私は外れ値を取り除くことや、まれな出来事で因子レベルを修正することを操作することによって、そのようなもの –