Gần đây tôi được cho biết rằng quá trình tôi tuân theo (thành phần của Luận án MS) có thể được coi là quá phù hợp. Tôi đang tìm cách để hiểu rõ hơn về điều này và xem nếu người khác đồng ý.
Mục tiêu của phần này của bài báo là
So sánh hiệu suất của Cây hồi quy Gradient Boosted với Rừng ngẫu nhiên trên tập dữ liệu.
Nhìn vào hiệu suất của mô hình cuối cùng được chọn (GBM hoặc RF).
Các gói gbm
và randomForest
trong R đang được sử dụng, cùng với
caret
.
Quá trình sau đây như sau:
- Xử lý sơ bộ dữ liệu (ví dụ: cắm các giá trị còn thiếu của các yếu tố dự đoán danh nghĩa với một danh mục riêng biệt gọi là "Mất tích"). Biến mục tiêu không được xem xét liên quan đến bất kỳ quá trình tiền xử lý nào (rất nhỏ).
- Tạo một lưới các giá trị cho các tham số meta của từng thuật toán (ví dụ: số lần lặp cho GBM).
- Tạo 25 phần tách ngẫu nhiên của tập dữ liệu (đào tạo 65% và kiểm tra 35%).
Lặp lại 25 lần như sau cho GBM (Mỗi lần sử dụng một trong các phân tách kiểm tra / đào tạo ngẫu nhiên. Mỗi lần, tập huấn luyện và kiểm tra là "hiện tại" của các thay đổi khóa học - đây là xác nhận chéo rời khỏi nhóm lặp đi lặp lại):
- Sử dụng xác thực chéo 5 lần để tìm cài đặt tham số "tối ưu" của thuật toán qua tìm kiếm lưới. Không có gì từ các lần chạy trước được sử dụng ở tất cả trong lần chạy hiện tại.
- Sau khi xác định, điều chỉnh mô hình phù hợp với tập huấn luyện "hiện tại" đầy đủ và dự đoán tập kiểm tra "hiện tại". Đặt thước đo hiệu suất của lần chạy này.
Sau khi có 25 biện pháp hiệu suất (thực tế là một biện pháp cụ thể theo miền, nhưng coi đó là độ chính xác) được lấy theo kiểu này, hãy thực hiện theo cùng một quy trình, sử dụng cùng một mẫu thử nghiệm và thử nghiệm độc lập, cho RF (cùng quy trình, chỉ khác với tìm kiếm lưới tất nhiên).
Bây giờ, tôi có 25 thước đo hiệu suất từ các bộ kiểm tra "hiện tại" cho GBM và RF. Tôi so sánh chúng bằng cách sử dụng Bài kiểm tra xếp hạng có chữ ký của Wilcoxon và cũng là bài kiểm tra hoán vị. Tôi thấy GBM là vượt trội. Tôi cũng tuyên bố rằng việc phân phối thước đo hiệu suất từ 25 lần chạy này cho GBM là hiệu suất dự kiến của trình phân loại GBM cuối cùng.
Những gì tôi đã không làm, là rút ra một bộ kiểm tra ngẫu nhiên ngay từ đầu và đặt nó sang một bên để so sánh với mô hình GBM cuối cùng được xây dựng từ tất cả các dữ liệu đào tạo. Tôi cho rằng những gì tôi đã làm thực sự tốt hơn nhiều khi tôi lặp lại mô hình phân tách / điều chỉnh mô hình / thử nghiệm trong quá trình giữ lại 25 lần so với chỉ một lần.
Có quá phù hợp ở đây? Vì 25 lần chạy đã được sử dụng để chọn GBM so với RF, điều đó có nghĩa là các biện pháp hiệu suất có được từ quy trình không thể được sử dụng làm ước tính hiệu suất cho mô hình đầy đủ?
EDIT Đáp lại bình luận của Wayne, đây là những gì đã được thực hiện trong mỗi 25 lần chạy:
- Dữ liệu được lấy mẫu cho tập huấn thứ i (i = 1, .., 25) được chia thành 5 nhóm có kích thước bằng nhau. Một mô hình phù hợp bằng cách sử dụng 4 trong số 5 nhóm, đặt tham số GBM (ví dụ: số lần lặp) bằng với các giá trị trong lưới thứ j (j = 1, .., 18).
- Hiệu suất trên nhóm thứ 5 được tính bằng mô hình này.
- Bước 1 và 2 được lặp lại 4 lần nữa (CV cũ gấp k thông thường với k = 5). Hiệu suất được tính trung bình từ 5 lần chạy phụ và điều này tạo nên hiệu suất mong đợi của GBM với bộ giá trị tham số nhất định đó.
- Các bước 1 -3 được lặp lại cho 17 "hàng" khác trong lưới.
Sau khi hoàn thành, các giá trị tham số tốt nhất từ bài tập trên đã được xác định và GBM phù hợp bằng cách sử dụng các giá trị tham số này và tập huấn luyện đầy đủ thứ i. Hiệu suất của nó được ước tính trên bộ thử nghiệm thứ i.
Khi toàn bộ quá trình này được thực hiện 25 lần, có 25 biện pháp hiệu suất có sẵn cho GBM. Sau đó, họ được tập hợp cho RF theo cùng một cách chính xác.
Sau khi so sánh và chọn GBM, tôi đã xem xét 25 biện pháp hiệu suất đó và lấy giá trị trung bình và Lỗi Stnd để xác định khoảng tin cậy cho mô hình GBM trên dữ liệu này.