Tại sao Cây quyết định không đắt tiền tính toán?


38

Trong phần Giới thiệu về Học thống kê với các ứng dụng trong R , các tác giả viết rằng việc điều chỉnh cây quyết định là rất nhanh, nhưng điều này không có ý nghĩa với tôi. Thuật toán phải đi qua mọi tính năng và phân vùng nó theo mọi cách có thể để tìm ra sự phân chia tối ưu. Đối với các tính năng số có quan sát, điều này có thể dẫn đến nnn phân vùng cho mỗi tính năng.

Tôi có hiểu lầm làm thế nào việc phân chia nhị phân hoạt động? Hoặc có một lý do mà thuật toán này sẽ không mất nhiều thời gian?


1
+1 cho câu hỏi. Bạn có thể bắt đầu kiểm tra ghi chú bài giảng này , trang 15, sử dụng thuật toán thay vì thuật toán O ( N 2 ) . Ôi(VIẾT SAI RỒI)Ôi(VIẾT SAI RỒI2)
Haitao Du

Câu trả lời:


40

Các thuật toán cây quyết định không tính toán tất cả các cây có thể khi chúng phù hợp với một cây. Nếu họ làm, họ sẽ giải quyết một NP-hardvấn đề. Các thuật toán điều chỉnh cây quyết định thường đưa ra các quyết định tham lam trong quá trình điều chỉnh phù hợp ở mỗi giai đoạn chúng tối ưu hóa vấn đề phụ để tìm ra sự phân chia tối ưu với dữ liệu trong nút đã cho và tiếp tục tiến lên trong quy trình khớp. Ngoài ra, khi bạn di chuyển sâu hơn vào cây quyết định, bạn có một tập hợp dữ liệu nhỏ hơn đã đưa nó đến nút đã cho để bạn sẽ tối ưu hóa quy tắc chia tách trên một tập hợp con dữ liệu nhỏ hơn. Tất cả các lựa chọn này là quét tuyến tính của dữ liệu trong nút đã cho. Điều này không phức tạp để làm nhưng có thể trở nên hơi đắt về mặt tính toán nếu bạn có một số lượng lớn các quan sát hoặc một số lượng lớn các đồng biến để phân chia. Tuy nhiên, rất nhiều công việc có thể được tách ra và gửi đến các máy khác nhau để làm việc, vì vậy có nhiều cách để xây dựng kiến ​​trúc tính toán của bạn để mở rộng quy mô.


10
Nói cách khác, nó ít nhiều có thể so sánh với tìm kiếm nhị phân.
Robert Harvey

1
tôiog2(VIẾT SAI RỒI)

2
Đồng ý, nhưng nguyên tắc vẫn giữ. (Đó là lý do tại sao tôi sử dụng từ "ít nhiều")
Robert Harvey

2

Có một số khác biệt giữa thuật toán GIỎI và C4.5 để xây dựng cây quyết định. Chẳng hạn, GIỎI sử dụng tạp chất Gini để chọn các tính năng trong khi C.4.5 sử dụng Shannon Entropy. Tôi không nghĩ rằng sự khác biệt có liên quan đến câu trả lời, vì vậy tôi sẽ không phân biệt giữa những điều đó.

Điều khiến cây quyết định nhanh hơn bạn nghĩ là:

  1. Như những người khác đã nói, các thuật toán này là thuật toán 1 nhìn. Họ thực hiện tối ưu hóa địa phương. Tại mỗi chi nhánh, họ chọn quy tắc tối đa hóa / tối thiểu hóa bất kỳ số liệu nào họ sử dụng (Gini hoặc Entropy). Điều này có nghĩa là họ có thể bỏ lỡ các quy tắc trong đó sử dụng một toán tử logic như andsẽ dẫn đến một cây tốt hơn. Điều này có nghĩa là bạn nên rất cẩn thận / khéo léo khi làm kỹ thuật tính năng. Ví dụ: giả sử bạn đang cố gắng dự đoán mọi người uống bao nhiêu, bạn có thể muốn làm nổi bật những thứ kỹ sư nhưnew_feature = hour > 22 & hour < 4 & (friday_night | saturday_night) . Cây quyết định có thể bỏ lỡ các quy tắc như vậy, hoặc cho chúng ít quan trọng hơn mức cần thiết.
  2. X1= ={3,1,5,2,5,2,1}X <= 1X <= 1.5X <= 2X1= ={1,1,5,2,2,5,3}X <= 1X <= 1.5x¯vx¯nx¯+vn+1
  3. Cây quyết định có thể được song song. Mỗi nút bao gồm hai nhánh độc lập. Do đó, tại mỗi nhánh, bạn có cơ hội song song với việc tạo cây. Hơn nữa, việc lựa chọn tính năng cũng có thể được song song. Đây là những gì làm cho các gói như xgboostvậy rất nhanh. Tăng cường độ dốc là tuần tự và không thể song song, nhưng bản thân cây có thể.

1

Chỉ để làm phong phú thêm câu trả lời,

Cây quyết định song song trục phân cấp nhanh (GIỎI, C4.5) nhưng có những lựa chọn thay thế khác như cây quyết định không phân cấp hoặc những cây thực hiện phân vùng xiên không, mặc dù chúng có thể chính xác hơn. Kiểm tra các tài liệu tham khảo sau nếu bạn quan tâm (Chúng không phải là một lựa chọn tuyệt vời).

Không phân cấp:

Grubinger, T., Zeileis, A. và Pfeiffer, K.-., 2014. Evtree: Học tập tiến hóa về cây phân loại và hồi quy tối ưu toàn cầu trong RJStat.Software 61 (1), 1-29.

Chia xiên:

Murthy, SK, Kasif, S. và Salzberg, S., 1994. Một hệ thống tạo ra các cây quyết định xiên. J. Artif. Intell. Độ phân giải 2 (1), 1-32. http://dx.doi.org/doi:10.1613/jair.63 . Cantú-Paz, E. và Kamath, C., 2003. Tạo ra các cây quyết định xiên với các thuật toán tiến hóa. IEEE Trans. Evol. Tính toán. 7 (1), 54-68. http://dx.doi.org/10.1109/TEVC.2002.806857 . Heath, D., Kasif, S. và Salzberg, S., 1993. Cảm ứng của cây quyết định xiên. J. Artif. Intell. Độ phân giải 2 (2), 1002-1007.

Chúc may mắn!

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.