Cây quyết định

Trong lý thuyết quyết định (chẳng hạn quản lý rủi ro), một cây quyết định (tiếng Anh: "decision tree") là một đồ thị của các quyết định và các hậu quả có thể của nó (bao gồm rủi ro và hao phí tài nguyên). "Cây quyết định" được sử dụng để xây dựng một kế hoạch nhằm đạt được mục tiêu mong muốn. Các cây quyết định được dùng để hỗ trợ quá trình ra quyết định. Cây quyết định là một dạng đặc biệt của cấu trúc cây.
Giới thiệu chung.
Trong lĩnh vực máy học, cây quyết định là một kiểu mô hình dự báo ("predictive model"), nghĩa là một ánh xạ từ các quan sát về một sự vật/hiện tượng tới các kết luận về giá trị mục tiêu của sự vật/hiện tượng. Mỗi một nút trong ("internal node") tương ứng với một biến; đường nối giữa nó với nút con của nó thể hiện một giá trị cụ thể cho biến đó. Mỗi nút lá đại diện cho giá trị dự đoán của biến mục tiêu, cho trước các giá trị của các biến được biểu diễn bởi đường đi từ nút gốc tới nút lá đó.
Kỹ thuật học máy dùng trong cây quyết định được gọi là học bằng cây quyết định, hay chỉ gọi với cái tên ngắn gọn là cây quyết định.
Học bằng cây quyết định cũng là một phương pháp thông dụng trong khai phá dữ liệu. Khi đó, cây quyết định mô tả một cấu trúc cây, trong đó, các lá đại diện cho các phân loại còn cành đại diện cho các kết hợp của các thuộc tính dẫn tới phân loại đó[1]. Một cây quyết định có thể được học bằng cách chia tập hợp nguồn thành các tập con dựa theo một kiểm tra giá trị thuộc tính [1]. Quá trình này được lặp lại một cách đệ quy cho mỗi tập con dẫn xuất. Quá trình đệ quy hoàn thành khi không thể tiếp tục thực hiện việc chia tách được nữa, hay khi một phân loại đơn có thể áp dụng cho từng phần tử của tập con dẫn xuất. Một bộ phân loại rừng ngẫu nhiên ("random forest") sử dụng một số cây quyết định để có thể cải thiện tỉ lệ phân loại.
Cây quyết định cũng là một phương tiện có tính mô tả dành cho việc tính toán các xác suất có điều kiện.
Cây quyết định có thể được mô tả như là sự kết hợp của các kỹ thuật toán học và tính toán nhằm hỗ trợ việc mô tả, phân loại và tổng quát hóa một tập dữ liệu cho trước.
Dữ liệu được cho dưới dạng các bản ghi có dạng: 
Biến phụ thuộc ("dependant variable") "y" là biến mà chúng ta cần tìm hiểu, phân loại hay tổng quát hóa.
"x1", "x2", "x3"... là các biến sẽ giúp ta thực hiện công việc đó
Các kiểu cây quyết định.
Cây quyết định còn có hai tên khác:
Cây hồi quy ("Regression tree") ước lượng các hàm giá có giá trị là số thực thay vì được sử dụng cho các nhiệm vụ phân loại. (ví dụ: ước tính giá một ngôi nhà hoặc khoảng thời gian một bệnh nhân nằm viện)
Cây phân loại ("Classification tree"), nếu "y" là một biến phân loại như: giới tính (nam hay nữ), kết quả của một trận đấu (thắng hay thua).
Ví dụ thực hành.
Ta sẽ dùng một ví dụ để giải thích về cây quyết định:
David là quản lý của một câu lạc bộ đánh golf nổi tiếng. Anh ta đang có rắc rối chuyện các thành viên đến hay không đến. Có ngày ai cũng muốn chơi golf nhưng số nhân viên câu lạc bộ lại không đủ phục vụ. Có hôm, không hiểu vì lý do gì mà chẳng ai đến chơi, và câu lạc bộ lại thừa nhân viên.
Mục tiêu của David là tối ưu hóa số nhân viên phục vụ mỗi ngày bằng cách dựa theo thông tin dự báo thời tiết để đoán xem khi nào người ta sẽ đến chơi golf. Để thực hiện điều đó, anh cần hiểu được tại sao khách hàng quyết định chơi và tìm hiểu xem có cách giải thích nào cho việc đó hay không.
Vậy là trong hai tuần, anh ta thu thập thông tin về:
Trời ("outlook") (nắng ("sunny"),
Và tất nhiên là số người đến chơi golf vào hôm đó.
David thu được một bộ dữ liệu gồm 14 dòng và 5 cột.
Sau đó, để giải quyết bài toán của David, người ta đã đưa ra một mô hình cây quyết định.
Nhóm người chơi golf khi trời nắng, nhóm chơi khi trời nhiều mây, và nhóm chơi khi trời mưa.
Kết luận thứ nhất: nếu trời nhiều mây, người ta luôn luôn chơi golf. Và có một số người ham mê đến mức chơi golf cả khi trời mưa.
Tiếp theo, ta lại chia nhóm trời nắng thành hai nhóm con. Ta thấy rằng khách hàng không muốn chơi golf nếu độ ẩm lên quá 70%.
Cuối cùng, ta chia nhóm trời mưa thành hai và thấy rằng khách hàng sẽ không chơi golf nếu trời nhiều gió.
Và đây là lời giải ngắn gọn cho bài toán mô tả bởi cây phân loại. David cho phần lớn nhân viên nghỉ vào những ngày trời nắng và ẩm, hoặc những ngày mưa gió. Vì hầu như sẽ chẳng có ai chơi golf trong những ngày đó. Vào những hôm khác, khi nhiều người sẽ đến chơi golf, anh ta có thể thuê thêm nhân viên thời vụ để phụ giúp công việc.
Kết luận là cây quyết định giúp ta biến một biểu diễn dữ liệu phức tạp thành một cấu trúc đơn giản hơn rất nhiều.
Các công thức.
Gini impurity.
Dùng trong thuật toán CART (Classification and Regression Trees).
Nó dựa vào việc bình phương các xác suất thành viên cho mỗi thể loại đích trong nút. Giá trị của nó tiến đến cực tiểu (bằng 0) khi mọi trường hợp trong nút rơi vào một thể loại đích duy nhất. 
Giả sử "y" nhận các giá trị trong {1, 2..., "m"} và gọi "f(i,j)" là tần suất của giá trị "j" trong nút "i". Nghĩa là "f(i,j)" là tỷ lệ các bản ghi với "y"="j" được xếp vào nhóm "i".
formula_1
Entropy.
Dùng trong các thuật toán sinh cây ID3, C4.5 và C5.0. 
Số đo này dựa trên khái niệm entropy trong lý thuyết thông tin ("information theory").
formula_2
Ưu điểm của cây quyết định.
So với các phương pháp khai phá dữ liệu khác, cây quyết định là phương pháp có một số ưu điểm:
== nhược điểm của cây quyết định
- khó giải quyết được những vấn đề có dữ liệu phụ thuộc thời gian liên tục
- dễ xảy ra lỗi khi có quá nhiều lớp
chi phí tính toán để xây dựng mô hình cây quyết định CAO
Mở rộng cây quyết định thành đồ thị quyết định.
Trong cây quyết định, mọi đường đi từ nút gốc đến nút lá được tiến hành bằng các phép hội ("AND").
Trong đồ thị quyết định, có thể dùng các phép tuyển ("OR") để kết nối ghép hai hay nhiều đường lại với nhau.
Phần bù của cây quyết định là phân tích hình thái học ("Morphological Analysis").