Là quá nhiều đến nỗi bạn không nên chọn một mô hình quá phù hợp, mặc dù lỗi kiểm tra của nó là nhỏ hơn? Không. Nhưng bạn nên có lý do để chọn nó.
Hành vi này không bị hạn chế đối với XGBoost. Đây là một chủ đề phổ biến trong số tất cả các kỹ thuật máy học; tìm kiếm sự đánh đổi đúng đắn giữa thiếu và thừa. Định nghĩa chính thức là sự đánh đổi Bias-variance (Wikipedia) .
Sự đánh đổi sai lệch
Sau đây là đơn giản hóa sự đánh đổi Bias-variance, để giúp chứng minh sự lựa chọn mô hình của bạn.
Chúng tôi nói rằng một mô hình có độ lệch cao nếu nó không thể sử dụng đầy đủ thông tin trong dữ liệu. Nó quá phụ thuộc vào thông tin chung, chẳng hạn như trường hợp thường xuyên nhất, giá trị trung bình của phản hồi hoặc một vài tính năng mạnh mẽ. Xu hướng có thể đến từ các giả định sai, vì ví dụ giả định rằng các biến thường được phân phối hoặc mô hình là tuyến tính.
Chúng tôi nói rằng một mô hình có phương sai cao nếu nó sử dụng quá nhiều thông tin từ dữ liệu. Nó chỉ dựa vào thông tin được tiết lộ trong tập huấn luyện đã được trình bày cho nó, không đủ khái quát. Thông thường, mô hình sẽ thay đổi rất nhiều nếu bạn thay đổi tập huấn luyện, do đó tên "phương sai cao".
Những định nghĩa này rất giống với các định nghĩa về thiếu và thừa. Tuy nhiên, những định nghĩa đó thường quá đơn giản để trở thành đối lập, như trong
- Mô hình bị thiếu hụt nếu cả lỗi đào tạo và kiểm tra đều cao. Điều này có nghĩa là mô hình quá đơn giản.
- Mô hình bị quá mức nếu lỗi kiểm tra cao hơn lỗi đào tạo. Điều này có nghĩa là mô hình quá phức tạp.
Những đơn giản hóa này tất nhiên là hữu ích, vì chúng giúp chọn đúng độ phức tạp của mô hình. Nhưng họ bỏ qua một điểm quan trọng, thực tế là (hầu hết) mọi mô hình đều có cả thành phần sai lệch và thành phần phương sai. Mô tả thiếu / quá mức cho bạn biết rằng bạn có quá nhiều sai lệch / quá nhiều phương sai, nhưng bạn (hầu như) luôn có cả hai .
Nếu bạn muốn biết thêm thông tin về sự đánh đổi sai lệch thiên vị, chúng có rất nhiều hình ảnh hữu ích và nguồn tài nguyên tốt có sẵn thông qua google. Mỗi sách giáo khoa máy học sẽ có một phần về sự đánh đổi sai lệch, đây là một vài
- Giới thiệu về học thống kê và các yếu tố của học thống kê (có sẵn ở đây) .
- Nhận dạng mẫu và học máy, bởi Christopher Bishop.
- Học máy: Một quan điểm xác suất, của Kevin Murphy.
Ngoài ra, một bài đăng trên blog rất hay giúp tôi nắm bắt được là Hiểu về thương mại Bias-Variance của Scott Fortmann-Roe .
Áp dụng cho vấn đề của bạn
Vì vậy, bạn có hai mô hình,
SAO HOẢXGBoostĐào tạo MAE∼ 4.0∼ 0,3Kiểm tra MAE∼ 4.0∼ 2,4Phương sai thấp, độ lệch cao hơn ,Phương sai cao hơn, độ lệch thấp hơn ,
và bạn cần chọn một. Để làm như vậy, bạn cần xác định thế nào là một mô hình tốt hơn. Các tham số nên được bao gồm trong các quyết định của bạn là độ phức tạp và hiệu suất của mô hình.
- Có bao nhiêu "đơn vị" phức tạp mà bạn sẵn sàng trao đổi cho một "đơn vị" hiệu suất?
- Sự phức tạp hơn có liên quan đến phương sai cao hơn. Nếu bạn muốn mô hình của mình khái quát tốt trên một tập dữ liệu khác một chút so với mô hình bạn đã đào tạo, bạn nên nhắm đến sự phức tạp ít hơn.
- Nếu bạn muốn một mô hình mà bạn có thể hiểu dễ dàng, bạn có thể làm điều đó với chi phí hiệu suất bằng cách giảm độ phức tạp của mô hình.
- Nếu bạn đang nhắm đến hiệu suất tốt nhất trên tập dữ liệu mà bạn biết xuất phát từ cùng một quy trình tổng quát so với tập huấn luyện của bạn, bạn có thể thao tác độ phức tạp để tối ưu hóa lỗi kiểm tra của mình và sử dụng số liệu này làm số liệu. Điều này xảy ra khi tập huấn luyện của bạn được lấy mẫu ngẫu nhiên từ một tập lớn hơn và mô hình của bạn sẽ được áp dụng trên tập này. Đây là trường hợp trong hầu hết các cuộc thi Kaggle, ví dụ.
Mục tiêu ở đây không phải là tìm ra một mô hình "không phù hợp". Đó là tìm ra mô hình có sự đánh đổi sai lệch sai lệch tốt nhất. Trong trường hợp này, tôi sẽ lập luận rằng việc giảm độ lệch hoàn thành của mô hình XGBoost là đủ tốt để biện minh cho sự gia tăng của phương sai.
Bạn có thể làm gì
Tuy nhiên, bạn có thể có thể làm tốt hơn bằng cách điều chỉnh các siêu đường kính.
Tăng số lượng vòng và giảm tỷ lệ học tập là một khả năng. Một điều "kỳ lạ" về việc tăng cường độ dốc là việc chạy tốt đến mức mà lỗi đào tạo đã giảm về 0 dường như vẫn cải thiện lỗi kiểm tra (như đã thảo luận ở đây: Chỉ sâu hơn khi tốt hơn? ). Bạn có thể cố gắng đào tạo mô hình của mình lâu hơn một chút trên tập dữ liệu của mình sau khi bạn đã đặt các tham số khác,
1 / 214. Đây có thể là biệt ngữ, nhưng nếu các tính năng của bạn có mức độ tương tác là 3 (Roughly: Sự kết hợp của 4 tính năng không mạnh hơn sự kết hợp của 3 trong số các tính năng đó + thứ tư), thì việc trồng cây có kích thước lớn hơn 3 là bất lợi. Hai cây có độ sâu ba sẽ có sức mạnh khái quát hơn một cây có độ sâu bốn. Đây là một khái niệm khá phức tạp và tôi sẽ không đi sâu vào nó ngay bây giờ, nhưng bạn có thể kiểm tra bộ sưu tập giấy tờ này để bắt đầu. Ngoài ra, lưu ý rằng cây sâu dẫn đến phương sai cao!
Sử dụng mẫu phụ, được gọi là đóng bao , là tuyệt vời để giảm phương sai. Nếu các cây riêng lẻ của bạn có phương sai cao, việc đóng bao sẽ làm trung bình các cây và trung bình có ít phương sai hơn các cây riêng lẻ. Nếu, sau khi điều chỉnh độ sâu của cây, bạn vẫn gặp phải phương sai cao, hãy thử tăng mẫu phụ (nghĩa là giảm phần dữ liệu được sử dụng). Lấy mẫu của không gian tính năng cũng đạt được mục tiêu này.