Mục đích của việc sử dụng cây quyết định là gì?


8

Tôi không hiểu mục đích của cây quyết định là gì? Theo cách tôi thấy, nó là một chuỗi if-other. Tại sao tôi không sử dụng if-other thay vì sử dụng cây quyết định? Có phải vì nó làm giảm độ phức tạp của mã của tôi?

Tôi vẫn không được tính toán entropy và thu được thông tin vì có các thuật toán dựng sẵn cho chúng, nơi tôi chỉ cần cắm các quy tắc phải không? (Giống như ID3)

Tại sao chúng ta sử dụng nó với máy học bây giờ? Bởi vì chúng ta thậm chí không phải đưa ra các quy tắc trong khi trước khi chúng ta cần phải làm gì? Máy học từ dữ liệu huấn luyện và dựa trên các thuộc tính mà nó có thể dự đoán kết quả?

Việc triển khai ML trong mã của tôi có giảm chi phí nhiều hơn không và nó làm cho mã của tôi bớt phức tạp hơn, hiệu quả hơn, nhanh hơn?


6
Không phải về mã, mà là về mô hình.
Sycorax nói Phục hồi Monica

6
"Việc triển khai ML trong mã của tôi có giảm chi phí nhiều hơn không và nó làm cho mã của tôi bớt phức tạp hơn, hiệu quả hơn, nhanh hơn?" Hiệu quả hơn, tùy thuộc vào những gì mã của bạn làm, nhưng nếu không thì không. ML không tồn tại để làm cho mã của bạn ít phức tạp hơn hoặc hiệu suất cao hơn (nó có xu hướng có tác dụng ngược lại). ML tồn tại để tự động tạo ra các thuật toán dựa trên dữ liệu mẫu. Thông thường, điều này là không cần thiết bởi vì các lập trình viên chỉ có thể viết các thuật toán hiệu quả, nhưng đôi khi điều đó quá khó để thực hiện, đó là nơi ML xuất hiện.
DarthFennec

Xin đừng đăng chéo. Điều đó chống lại chính sách SE vì lý do này; nó lãng phí rất nhiều thời gian của mọi người.
gung - Phục hồi Monica

@DarthFennec Báo giá!
Jim

Câu trả lời:


21

Theo cách tôi thấy, nó là một chuỗi if-other. Tại sao tôi không sử dụng if-other thay vì sử dụng cây quyết định?

Bạn hoàn toàn đúng. Cây quyết định không là gì khác ngoài một loạt các câu lệnh if-other. Tuy nhiên, đó là cách chúng tôi diễn giải các câu lệnh này dưới dạng cây cho phép chúng tôi tự động xây dựng các quy tắc này ... Tôi đã đưa ra một số ví dụ đầu vào được đặt (x1,y1),...,(xN,yN) ... bộ quy tắc tốt nhất mô tả giá trị nào y đã đưa ra cho đầu vào x ? ID3 và tương tự cho phép chúng tôi tự động tạo các quy tắc này. Nó không thực sự là về cái cây từng được xây dựng, nó là về cách chúng ta tạo ra nó.

Ngoài ra, người ta hầu như không bao giờ sử dụng cây quyết định một mình, lý do chính xác là những gì bạn nói: đó là một mô hình khá đơn giản, thiếu tính biểu cảm. Tuy nhiên, nó có một lợi thế lớn so với các mô hình khác: Người ta có thể tính toán một cây quyết định duy nhất khá nhanh. Điều đó có nghĩa là chúng ta có thể đưa ra các thuật toán đào tạo nhiều cây quyết định (tăng cường, còn gọi là AdaBoost và GradientBoosting) trên các bộ dữ liệu lớn. Các bộ sưu tập (thường là hơn 500) của các mô hình đơn giản này (được gọi là rừng) sau đó có thể biểu thị các hình dạng phức tạp hơn nhiều.

f:[một,b]RSTôin(x)[một,b]một= =một0<một1<...<mộtM= =bmộtTôi,mộtTôi+1f|(mộtTôi,mộtTôi+1)f


2
Điểm cộng lớn khác là có thể truy cập để kiểm tra con người ("aaah, vậy đó là lý do!").
khấu trừ

1
cây quyết định là tuyệt vời để giải thích cho những người không có nền tảng thống kê bởi vì chúng rất trực quan.
qwr

1

Chỉ cần thêm vào câu trả lời của @Fabian Werner - bạn có nhớ thực hiện quy tắc Riemann Sums trong phần giới thiệu để tích hợp không? Vâng, đó cũng là một tập hợp các phân vùng nếu các câu lệnh mà bạn sử dụng để tính diện tích theo hàm.

Nếu bạn vẽ hàm 1D và vẽ các phân vùng một cách đồng đều những gì bạn sẽ tìm thấy là ở các khu vực có hàm có độ dốc nhỏ, các phân vùng lân cận có thể được hợp nhất với nhau mà không mất độ chính xác lớn. Tương tự, trong các phân vùng có độ dốc cao, thêm nhiều phân vùng sẽ cải thiện đáng kể sự gần đúng.

Bất kỳ tập hợp phân vùng sẽ gần đúng chức năng nhưng một số rõ ràng là tốt hơn so với những người khác.

Bây giờ, chuyển sang các mô hình GIỎ HÀNG - chúng tôi thấy dữ liệu ở dạng các điểm nhiễu từ chức năng này và chúng tôi được yêu cầu xấp xỉ chức năng. Bằng cách thêm quá nhiều phân vùng, chúng ta có thể điều chỉnh quá mức và thực hiện mô hình kiểu lân cận gần nhất. Để tránh điều này, chúng tôi giới hạn số lượng phân vùng mà mô hình của chúng tôi có thể sử dụng (thường ở dạng độ sâu tối đa và mẫu tối thiểu trên mỗi lần phân tách). Vậy bây giờ chúng ta nên đặt những phần tách này ở đâu? Đó là câu hỏi được giải quyết bởi các tiêu chí chia tách. Các khu vực có độ phức tạp cao hơn, các khu vực khác sẽ nhận được nhiều phân chia hơn theo quy tắc và đó là điều mà gini, entropy, v.v. nỗ lực thực hiện.

Đưa ra dự đoán chỉ là câu lệnh if-other nhưng trong bối cảnh học máy không phải là sức mạnh của mô hình đến từ đâu. Sức mạnh đến từ khả năng của mô hình để đánh đổi và phù hợp một cách có thể mở rộng và có thể được lấy từ một khung xác suất nhất quán với các đảm bảo lý thuyết trong giới hạn dữ liệu. Cuối cùng, nếu chúng ta có một cái nhìn trừu tượng tương tự về các mô hình ML, chúng ta có thể nói các mạng thần kinh, các phương thức kernel, các phương pháp tiếp cận Monte Carlo và nhiều thứ khác chỉ đơn giản là cộng và nhân. Thật không may, đó không phải là một quan điểm rất hữu ích của văn học.


0

Cây quyết định là một phân vùng của miền vấn đề trong các tập hợp con, bằng các điều kiện. Nó thường được thực hiện dưới dạng xếp tầng if-then-elses. Bạn có thể xem nó như một thuật ngữ mô tả logic quyết định phức tạp.

Cây quyết định không hiệu quả hơn cũng không "hỗ trợ" cho việc học máy hơn là kiểm tra logic. Chúng những bài kiểm tra logic.

Ngoài ra, hãy nhớ rằng bất kỳ thuật toán nào cũng không có gì khác hơn là sự kết hợp của các phép tính và kiểm tra số học, tức là một cây quyết định (thường là rất lớn).


Để hoàn thiện, chúng ta hãy đề cập rằng trong một số bối cảnh, chẳng hạn như học máy, các cây quyết định phức tạp được xây dựng tự động, bằng thuật toán. Nhưng điều này không thay đổi bản chất của họ.

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.