Skip to content

kythuatdulieu/SelectNTreeInRF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Thử Nghiệm Số Lượng Cây Random Forest

Dự án này tự động hóa quy trình: quét các mô hình Random Forest (RF) trên một lưới số lượng cây, lặp lại mỗi cấu hình với nhiều config ngẫu nhiên, rồi chọn số cây nhỏ nhất T* vẫn giữ được hiệu năng độ ổn định trong khi chi phí huấn luyện ở mức hợp lý.

Quy Trình Đánh Giá

Với mỗi bộ dữ liệu và mỗi số lượng cây ứng viên trong N_TREES_GRID, script sẽ:

  1. Chạy REPEATS lần huấn luyện RF độc lập (khác hạt giống) với n_jobs=-1.
  2. Ghi lại chỉ số cho từng lần chạy:
    • Phân loại: accuracy (luôn có) và binary AUC nếu áp dụng.
    • Hồi quy: MSE và R².
    • Luôn có: điểm OOB, thời gian huấn luyện, độ quan trọng đặc trưng, dự đoán.
  3. Tổng hợp thống kê theo từng T: trung bình/độ lệch chuẩn của chỉ số chính, thời gian huấn luyện trung bình, độ lệch chuẩn dự đoán (thấp hơn = ổn định hơn), và độ giống nhau Jaccard của top-10 đặc trưng quan trọng (cao hơn = tốt hơn).
  4. Chọn T* thông qua project/selection.py:
    • Áp dụng quy tắc hiệu năng tương đối/1-SE (mặc định ≤0.5% giảm so với tốt nhất).
    • Áp dụng ngưỡng ổn định: độ lệch chuẩn dự đoán nằm trong (1 + PRED_STD_TOL) * min và Jaccard của độ quan trọng nằm trong (1 - IMP_JACCARD_TOL) * max.
    • Chọn T nhỏ nhất thỏa cả hai; phương án dự phòng ưu tiên độ ổn định tốt nhất trong các ứng viên hiệu năng.
  5. Lưu hiện vật cho từng bộ dữ liệu:
    • Hình (figures/{dataset}_summary.png): đường cong hiệu năng, ổn định và thời gian huấn luyện có đánh dấu T*.
    • Chỉ số thô (results/{dataset}_results.json): toàn bộ dữ liệu lưới kèm lý do lựa chọn.

Chạy

Đảm bảo đã cài các thư viện phụ thuộc (scikit-learn, matplotlib, numpy, pandas, scipy), sau đó thực thi:

PYTHONPATH=project python project/main.py

Chỉnh project/config.py để thay đổi bộ dữ liệu, các ngưỡng hoặc số lần lặp.

About

Random Forest tree count tuning

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages