Tôi đã chạy 4500 rừng ngẫu nhiên qua đêm với một số cài đặt tham số ngẫu nhiên:
Vấn đề hồi quy Ysignal = x1^2+sin(x2*pi) + x3 * x4 + x5
trong đó bất kỳ xđược lấy mẫu độc lập với phân phối bình thường, sd = 1, mean = 1
Ytotal = Ysignal + Yerror
Ở đâu Yerror = rnorm(n.observations,sd=sd(Ysignal))*noise.factor
theoretical.explainable.variance"TEV" = var(Ysignal= / var(Ytotal)
randomForest.performance = explained.variance(OOB cross-validation) / TEV
các bộ dữ liệu được lấy mẫu từ bài toán hồi quy và nhiễu thêm vào
n.obslà một số ngẫu nhiên trong khoảng từ 1000 đến 5000
n.extra.dummy.variablestrong khoảng từ 1 đến 20
ntree luôn luôn 1000
sample_replacement luôn luôn true
mtrylà 5 đến 25, giới hạn n.obs
noise.factortrong khoảng từ 0 đến 9
samplesize.ratio một số ngẫu nhiên từ 10% đến 100%, kích thước tỷ lệ của mỗi bootstrap
tất cả các mô hình đã được đào tạo như rfo = randomForest(x=X, y=Ytotal, <more args>)
các randomForest.performance, khả năng của mình để giải thích phần cao nhất của TEVsự gia tăng chung khi samplesizeGiảm khi TEVnhỏ hơn 50% và giảm khi TEVcao hơn 50%.
Do đó, nếu các randomForest-modelfitbáo cáo của bạn, ví dụ 15% giải thích phương sai bằng OOB-CV và đây là độ chính xác mô hình chấp nhận được cho bạn, thì bạn có thể điều chỉnh hiệu suất cao hơn một chút bằng cách hạ sampsizexuống một phần ba số lượng quan sát, được đưa ra ntree > 1000.
Tinh thần : Đối với dữ liệu rất ồn, tốt hơn là khử các cây tương quan hơn là hạ thấp độ lệch bằng cách trồng cây có kích thước tối đa.