Tại sao chúng ta cần XGBoost và Rừng ngẫu nhiên?


25

Tôi đã không rõ ràng về một số khái niệm:

  1. XGBoost chuyển đổi người học yếu thành người học mạnh. Lợi thế của việc này là gì? Kết hợp nhiều người học yếu thay vì chỉ sử dụng một cây?

  2. Random Forest sử dụng nhiều mẫu khác nhau từ cây để tạo ra cây. Lợi thế của phương pháp này là gì thay vì chỉ sử dụng một cây số ít?

Câu trả lời:


35

Bắt đầu với câu hỏi thứ hai của bạn dễ dàng hơn và sau đó chuyển sang câu hỏi thứ nhất.

Đóng bao

Random Forest là một thuật toán đóng bao. Nó làm giảm phương sai.

Nói rằng bạn có các mô hình rất không đáng tin cậy, chẳng hạn như Cây quyết định. (Tại sao không đáng tin cậy? Bởi vì nếu bạn thay đổi dữ liệu của mình một chút, cây quyết định được tạo có thể rất khác nhau.) Trong trường hợp như vậy, bạn có thể xây dựng một mô hình mạnh mẽ (giảm phương sai) thông qua đóng gói - đóng bao là khi bạn tạo các mô hình khác nhau bằng cách lấy lại dữ liệu của bạn để làm cho mô hình kết quả mạnh mẽ hơn.

Rừng ngẫu nhiên là những gì chúng ta gọi để đóng bao được áp dụng cho các cây quyết định, nhưng nó không khác gì so với thuật toán đóng bao khác.

Tại sao bạn muốn làm điều này? Nó phụ thuộc vào vấn đề. Nhưng thông thường, nó rất mong muốn cho mô hình ổn định.

Tăng cường

Tăng cường làm giảm phương sai, và cũng làm giảm sự thiên vị. Nó làm giảm phương sai vì bạn đang sử dụng nhiều mô hình (đóng bao). Nó làm giảm sự thiên vị bằng cách đào tạo mô hình tiếp theo bằng cách cho anh ta biết những lỗi mà các mô hình trước đó đã gây ra (phần tăng cường).

Có hai thuật toán chính:

  • Adaboost: đây là thuật toán gốc; bạn nói với các mô hình tiếp theo để trừng phạt các quan sát nặng nề hơn bị nhầm lẫn bởi các mô hình trước đó
  • Tăng cường độ dốc: bạn huấn luyện từng mô hình tiếp theo bằng cách sử dụng phần dư (sự khác biệt giữa giá trị dự đoán và giá trị thực)

Trong những bản hòa tấu này, người học cơ sở của bạn phải yếu. Nếu nó vượt qua dữ liệu, sẽ không có bất kỳ lỗi hoặc sai sót nào cho các mô hình tiếp theo được xây dựng. Tại sao những mô hình tốt? Chà, hầu hết các cuộc thi trong các trang web như Kaggle đã giành chiến thắng bằng cách sử dụng cây tăng cường độ dốc. Khoa học dữ liệu là một khoa học thực nghiệm, "bởi vì nó hoạt động" là đủ tốt. Dù sao đi nữa, hãy lưu ý rằng các mô hình tăng cường có thể phù hợp hơn (mặc dù về mặt thực nghiệm nó không phổ biến lắm).

Một lý do khác tại sao tăng cường độ dốc, đặc biệt, cũng khá tuyệt: bởi vì nó làm cho nó rất dễ sử dụng các hàm mất khác nhau, ngay cả khi đạo hàm không lồi. Chẳng hạn, khi sử dụng dự báo xác suất, bạn có thể sử dụng các công cụ như hàm pinball làm chức năng mất của bạn; một cái gì đó khó hơn nhiều với các mạng thần kinh (vì đạo hàm luôn luôn không đổi).

[Ghi chú lịch sử thú vị: Boosting ban đầu là một phát minh lý thuyết được thúc đẩy bởi câu hỏi " chúng ta có thể xây dựng một mô hình mạnh hơn bằng cách sử dụng các mô hình yếu hơn "]


Lưu ý: Đôi khi mọi người nhầm lẫn giữa rừng ngẫu nhiên và cây tăng cường độ dốc, chỉ vì cả hai đều sử dụng cây quyết định, nhưng chúng là hai họ rất khác nhau.


1
Tăng cường làm giảm sự thiên vị bằng cách lặp lại mô hình dư và phương sai bằng cách lấy trung bình có trọng số; xem § 5.5 Xu hướng, phương sai và tính ổn định , trang 118, Tăng cường: Cơ sở và thuật toán , Robert E. Schapire, Yoav Freund.
Emre

@Emre, bạn tất nhiên là chính xác. Ai đó đã chỉnh sửa bài viết của tôi và thay đổi giảm theo mức tăng . Tôi đã hoàn nguyên nó.
Ricardo Cruz

8

Khi bạn xây dựng một cây, bạn cần xác định một số tiêu chí để tách các nút. Chúng bao gồm các số liệu như Information Gain và Gini Index. Đó là những cách tiếp cận heuristic , chúng không được đảm bảo để phân chia tốt nhất có thể.

Trọng lượng trong thực tế một số thuộc tính ít liên quan và / hoặc ồn ào hơn, và nhiều vấn đề khác xảy ra trong dữ liệu thực. Nói tóm lại, bạn không thể xây dựng một cây hoàn hảo trong thời gian tính toán hợp lý (tất nhiên bạn có thể xây dựng tất cả các cây có thể và kiểm tra tốt nhất, nhưng sau đó bạn sẽ phải chờ vài năm để đào tạo ngay cả trong một tập dữ liệu cỡ trung bình).

Vì chúng ta không thể có cây tốt nhất , chúng ta có xấp xỉ. Một cách gần đúng là xây dựng nhiều cây (sử dụng các phân vùng dữ liệu hoặc phân vùng thuộc tính khác nhau), vì chúng tôi hy vọng hầu hết các cây đều có phần đúng và xem xét phân loại của chúng trong một hệ thống bỏ phiếu; điều này sẽ giải quyết hầu hết nhiễu, phân vùng dọc có thể xử lý các thuộc tính không liên quan, heuristic có ít tầm quan trọng hơn và có thể có các ưu điểm khác.


1

Tôi sẽ thêm một bổ sung nhỏ cho các câu trả lời tốt. Vấn đề chính là quá mức. Ngay khi bạn có nhiều hơn một tham số và cũng thêm các hàm phi tuyến tính, tất cả các thuật toán bắt đầu quá mức. Họ thấy một cái gì đó trong dữ liệu không tồn tại. Giống như khi trời tối hoặc sương mù mạnh, mọi người có xu hướng nhìn thấy những thứ trong bóng tối / sương mù không tồn tại. Hầu như tất cả các thuật toán tính toán làm quá nhiều hơn con người. Ngay cả hồi quy tuyến tính bắt đầu hiển thị các hệ số lạ khi các biến có tương quan cao. Nếu không có quá nhiều thì các cây quyết định thông thường, dựa trên các thuật toán đó, sẽ tốt hơn so với Random Forest hoặc XGBoost.

Và không có khoa học chính xác tại sao quá mức xảy ra và tại sao một số thuật toán tốt hơn những thuật toán khác. Về lý thuyết, các mô hình ARIMA rất hợp lý, nhưng thực tế cho thấy rằng sử dụng các kỹ thuật làm mịn theo cấp số nhân là tốt hơn và ARIMA thậm chí không thể phân biệt các biến hoạt động theo ARIMA nhưng với các tham số khác nhau.

Một số mạng lưới thần kinh và đặc biệt là mạng lưới thần kinh tích chập dường như có mức độ quá thấp. Đồng thời, ý tưởng ban đầu về các mạng thần kinh được kết nối đầy đủ đã thất bại với số lượng nơ-ron cao vì quá nhiều.

Các khả năng chính để chống lại quá mức là:

  1. lấy mẫu ngẫu nhiên
  2. tính trung bình trên nhiều mô hình
  3. chọn ngẫu nhiên mô hình (giảm ngẫu nhiên các nơ-ron trong khi huấn luyện mạng lưới thần kinh)

Nếu tôi hiểu chính xác các thuật toán, cả Random Forest và XGBoost đều lấy mẫu ngẫu nhiên và trung bình trên nhiều mô hình và do đó quản lý để giảm quá mức.

Trong cuộc thi nhận dạng hình ảnh ImageNet, mô hình tốt nhất năm 2016 (Shao et al) là sự kết hợp của một số mô hình thực sự tốt. Một số trong số họ đã giành chiến thắng trong cuộc thi trong những năm trước. Mô hình này có lỗi ít hơn 20% so với bất kỳ mô hình nào mà nó dựa trên. Đây là cách trung bình trên nhiều mô hình có thể mạnh mẽ trong việc chiến đấu với quá mức.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.