Cây quyết định: cây thông minh lá (tốt nhất trước tiên) và cây thông khôn


13

Vấn đề 1:

Tôi bối rối trước mô tả của LightGBM liên quan đến cách cây được mở rộng.

Họ tuyên bố:

Hầu hết các thuật toán học cây quyết định phát triển cây theo cấp độ (độ sâu), như hình ảnh sau:

nhập mô tả hình ảnh ở đây

Câu hỏi 1 : Thuật toán "nhất" nào được thực hiện theo cách này? Theo như tôi biết thì C4.5 và GIỎI sử dụng DFS. XGBoost sử dụng BFS. Những thuật toán hoặc gói khác sử dụng BFS cho cây quyết định?

Vấn đề 2:

LightGBM tuyên bố:

LightGBM phát triển cây bằng lá khôn (tốt nhất trước tiên). Nó sẽ chọn lá có mất delta tối đa để phát triển. Khi phát triển cùng một lá, thuật toán lá khôn có thể giảm tổn thất nhiều hơn thuật toán cấp độ khôn ngoan.

nhập mô tả hình ảnh ở đây

Câu 2 : Có đúng không khi nói rằng cây tăng trưởng khôn ngoan sẽ có độ sâu bằng nhau cho tất cả các lá?

Câu hỏi 3: Nếu Câu hỏi 2 không chính xác, thì các cây từ sự phát triển theo cấp độ và khôn ngoan của lá sẽ trông giống nhau ở phần cuối của giao dịch (không cần cắt tỉa, v.v.). Đó có phải là một tuyên bố chính xác?

Câu hỏi 4: Nếu câu hỏi 3 là chính xác, làm thế nào "thuật toán lá thông minh có thể giảm tổn thất nhiều hơn thuật toán mức độ khôn ngoan"? Nó có phải làm với thuật toán sau cắt tỉa không?

Câu trả lời:


10

Nếu bạn trồng cây đầy đủ, đầu tiên tốt nhất (khôn ngoan lá) và sâu đầu tiên (cấp độ khôn ngoan) sẽ dẫn đến cùng một cây. Sự khác biệt là theo thứ tự mà cây được mở rộng. Vì chúng ta thường không trồng cây đến độ sâu đầy đủ của chúng, nên vấn đề theo thứ tự: áp dụng các tiêu chí dừng sớm và phương pháp cắt tỉa có thể dẫn đến các cây rất khác nhau. Bởi vì những người khôn ngoan chọn lá chia dựa trên sự đóng góp của họ đối với tổn thất toàn cầu và không chỉ là tổn thất dọc theo một nhánh cụ thể, nên thường (không phải lúc nào) sẽ học những cây có lỗi thấp hơn "nhanh hơn" so với mức độ khôn ngoan. Tức là đối với một số lượng nhỏ các nút, lá khôn ngoan có thể sẽ vượt trội so với mức độ khôn ngoan. Khi bạn thêm nhiều nút, mà không dừng lại hoặc cắt tỉa, chúng sẽ hội tụ đến cùng một hiệu suất vì cuối cùng chúng sẽ xây dựng cùng một cây.

Tài liệu tham khảo:

Shi, H. (2007). Học cây quyết định đầu tiên tốt nhất (Luận văn, thạc sĩ khoa học (ThS)). Đại học Waikato, Hamilton, New Zealand. Lấy từ https://hdl.handle.net/10289/2317


EDIT: Liên quan đến câu hỏi đầu tiên của bạn, cả C4.5 và GIỎI đều là những ví dụ chuyên sâu, không phải là tốt nhất trước tiên. Dưới đây là một số nội dung có liên quan từ tài liệu tham khảo ở trên:

1.2.1 Cây quyết định tiêu chuẩn

Các thuật toán tiêu chuẩn như C4.5 (Quinlan, 1993) và GIỎI (Breiman et al., 1984) để tạo ra các cây quyết định từ trên xuống mở rộng các nút theo thứ tự theo chiều sâu trong mỗi bước sử dụng chiến lược phân chia và chinh phục. Thông thường, tại mỗi nút của cây quyết định, kiểm tra chỉ liên quan đến một thuộc tính duy nhất và giá trị thuộc tính được so sánh với hằng số. Ý tưởng cơ bản của cây quyết định tiêu chuẩn là, trước tiên, chọn một thuộc tính để đặt tại nút gốc và tạo một số nhánh cho thuộc tính này dựa trên một số tiêu chí (ví dụ: thông tin hoặc chỉ mục Gini). Sau đó, phân chia các trường hợp đào tạo thành các tập hợp con, một cho mỗi nhánh kéo dài từ nút gốc. Số lượng tập con giống như số lượng chi nhánh. Sau đó, bước này được lặp lại cho một nhánh được chọn, chỉ sử dụng những trường hợp thực sự tiếp cận nó. Một trật tự cố định được sử dụng để mở rộng các nút (thông thường, từ trái sang phải). Nếu tại bất kỳ thời điểm nào, tất cả các thể hiện tại một nút có cùng nhãn lớp, được gọi là nút thuần, việc tách dừng và nút được tạo thành nút cuối. Quá trình xây dựng này tiếp tục cho đến khi tất cả các nút là tinh khiết. Sau đó, nó được theo sau bởi một quá trình cắt tỉa để giảm bớt tình trạng thừa (xem Phần 1.3).

1.2.2 Cây quyết định đầu tiên tốt nhất

Một khả năng khác, cho đến nay dường như chỉ được đánh giá trong bối cảnh các thuật toán tăng cường (Friedman et al., 2000), là mở rộng các nút theo thứ tự tốt nhất thay vì theo thứ tự cố định. Phương thức này thêm nút chia tốt nhất của LINE vào cây trong mỗi bước. Nút tốt nhất của LINE là nút làm giảm tối đa tạp chất trong số tất cả các nút có sẵn để phân tách (nghĩa là không được gắn nhãn là các nút cuối). Mặc dù điều này dẫn đến cùng một cây được trồng hoàn toàn như mở rộng theo chiều sâu tiêu chuẩn, nó cho phép chúng tôi điều tra các phương pháp cắt tỉa cây mới sử dụng xác thực chéo để chọn số lần mở rộng. Cả trước khi cắt tỉa và sau cắt tỉa đều có thể được thực hiện theo cách này, điều này cho phép so sánh công bằng giữa chúng (xem Phần 1.3).

Cây quyết định đầu tiên tốt nhất được xây dựng theo kiểu phân chia và chinh phục tương tự như cây quyết định độ sâu tiêu chuẩn đầu tiên. Ý tưởng cơ bản về cách xây dựng cây đầu tiên tốt nhất như sau. Đầu tiên, chọn một thuộc tính để đặt tại nút gốc và tạo một số nhánh cho thuộc tính này dựa trên một số tiêu chí. Sau đó, phân chia các trường hợp đào tạo thành các tập hợp con, một cho mỗi nhánh kéo dài từ nút gốc. Trong luận án này chỉ có các cây quyết định nhị phân được xem xét và do đó số lượng nhánh chính xác là hai. Sau đó, bước này được lặp lại cho một nhánh được chọn, chỉ sử dụng những trường hợp thực sự tiếp cận nó. Trong mỗi bước, chúng tôi chọn tập hợp con tốt nhất của LINE trong số tất cả các tập hợp con có sẵn để mở rộng. Quá trình xây dựng này tiếp tục cho đến khi tất cả các nút là thuần túy hoặc đạt được một số lượng mở rộng cụ thể. Hình 1. 1 cho thấy sự khác biệt về thứ tự phân chia giữa cây nhị phân đầu tiên tốt nhất giả định và cây đầu tiên có độ sâu nhị phân giả định. Lưu ý rằng các thứ tự khác có thể được chọn cho cây đầu tiên tốt nhất trong khi thứ tự luôn giống nhau trong trường hợp độ sâu đầu tiên.


Bạn có thể vui lòng trả lời câu hỏi đầu tiên là tốt?
Jekaterina Kokatjuhha

Cập nhật câu trả lời của tôi. Phiên bản ngắn là cả C4.5 và GIỎI là ví dụ về độ sâu trước, không phải đầu tiên tốt nhất.
David Marx

Câu hỏi đầu tiên của tôi không phải là về định nghĩa hay giải thích về đầu tiên hay nhất của DFS. Và tôi đã tuyên bố rằng C4.5 và GIỎ HÀNG là DFS. Câu hỏi đầu tiên là về thuật toán "nào" nhất "được triển khai theo mức độ khôn ngoan? [...] Những thuật toán hoặc gói nào khác sử dụng BFS cho cây quyết định?"
Jekaterina Kokatjuhha

1
Sự phát triển của cây "sâu đầu tiên" khôn ngoan. Đó là những gì tôi đã cố nói với bạn. Đọc đoạn trích tôi nhấn mạnh cho bạn. Đừng nhầm lẫn giữa biểu đồ truyền tải DFS và BFS ở đây với sự phát triển của cây "Độ sâu trước" và "đầu tiên tốt nhất". Chúng không giống nhau, và sự tăng trưởng đầu tiên sâu sắc đề cập đến cái mà bạn gọi là "BFS", không phải "DFS".
David Marx

Đó là điểm quan trọng tôi đã bỏ lỡ tất cả các thời gian. Cảm ơn bạn.
Jekaterina Kokatjuhha
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.