Site icon TAPIT

Machine learning decision tree (cây quyết định)

Cây quyết định (Decision Tree) là một cây phân cấp có cấu trúc được dùng để phân lớp các đối tượng dựa vào dãy các luật (series of rules). Khi cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp (classes) của nó, cây quyết định sẽ sinh ra các luật để dự đoán lớp của các đối tượng chưa biết (unseen data).

I. CẤU TRÚC DECISION TREES
Decision Trees gồm 3 phần chính: 1 node gốc (root node), những node lá (leaf nodes) và các nhánh của nó (branches). Node gốc là điểm bắt đầu của cây quyết định và cả hai node gốc và node chứa câu hỏi hoặc tiêu chí để được trả lời. Nhánh biểu diễn các kết quả của kiểm tra trên nút. Ví dụ câu hỏi ở node đầu tiên yêu cầu câu trả lời là “yes” hoặc là “no” thì sẽ có 1 node con chịu trách nhiệm cho phản hồi là “yes”, 1 node là “no”.

II. CÁC THUẬT TOÁN LIÊN QUAN TỚI DECISION TREES
ID3 (Iterative Dichotomiser 3) Algorithm
Thuật toán ID3 có thể được tóm tắt như sau: 

ID3 (Examples, Target_Attribute, Attributes)

      Begin:

      Else begin:

# Tạo một nút lá được gắn nhãn = giá trị đích phổ biến nhất trong Examples. Sau đó gắn nút lá này vào nhánh cây mới vừa tạo.

  C4.5 Algorithm

C4.5 là thuật toán phân lớp dữ liệu dựa trên cây quyết định hiệu quả và phổ biến trong những ứng dụng khai phá cơ sở dữ liệu có kích thước nhỏ. C4.5 xây dựng cây quyết định từ tập training data tương tự như ID3.

Tập training data S gồm các mẫu đã được phân  loại sẵn s1, s2,… Mỗi mẫu si = x1,x2,… với x1, x2 là 1 vector biểu diễn cho thuộc tính hoặc đặc điểm của mẫu. Một tập vector C = c1,c2,… với c1, c2 biểu diễn cho mỗi lớp mà mỗi mẫu thuộc về.

Với mỗi lớp của cây, C4.5 chọn một thuộc tính của dữ liệu mà phân chia tập các mẫu thành nhiều tập con, được nâng cao chất lượng một cách hiệu quả nhất. Tiêu chuẩn của nó là thu được information gain (sự khác biệt về entropy) – kết quả từ việc chọn một thuộc tính cho việc chia tách dữ liệu. Quyết định đưa ra dựa trên tập thuộc tính với information gain được chuẩn hóa cao nhất. Thuật toán C4.5 sau đó sẽ lặp lại với các danh sách con nhỏ hơn.

Một vài trường hợp cơ bản:
– Tất cả các mẫu đều thuộc cùng một lớp. Khi điều này xảy ra, nó chỉ đơn giản tạo ra một nút lá cho cây quyết định và cho biết chọn lớp đó.
– Không có tính năng nào cung cấp bất kỳ information gain. Trong trường hợp này, C4.5 tạo ra một node quyết định (decision node) bằng cách sử dụng giá trị kì vọng của lớp đó.
– Với các trường hợp khác, C4.5 lần nữa tạo ra một node quyết định bằng cách sử dụng giá trị kì vọng của lớp đó.

Thuật toán được giải mã như sau:

ComputerClassFrequency(T);

 if OneClass or FewCases
              return a leaf;
Create a decision node N;
ForEach Attribute A
ComputeGain(A);
N.test=AttributeWithBestGain;
if (N.test is continuous)
find Threshold;
ForEach T’ in the splitting of T
If ( T’ is Empty )
Child of N is a leaf
else
Child of N=FormTree(T’);
ComputeErrors of N;
return N
Ví dụ mô tả cách tính information gain:
Với thuộc tính rời rạc:

Trong tập dữ liệu trên: S1 là tập những bản ghi có giá trị phân lớp là yes, S2 là tập những bản ghi có giá trị phân lớp là no. Khi đó:

Tính G(S,A) với A lần lượt là từng thuộc tính:
A = age. Thuộc tính age đã được rời rạc hóa thành các giá trị <30, 30-40, và >40.

Tính tương tự với các thuộc tính khác ta được:
   – A = income: Gain (S, income) = 0.029
   – A = student: Gain (S, student) = 0.151
   – A = credit_rating: Gain ( S, credit_rating) = 0.048
Thuộc tính age là  thuộc tính có độ đo Information Gain lớn nhất. Do vậy age được chọn làm thuộc tính phát triển tại node đang xét.

III. KẾT LUẬN

Sưu tầm
Trần Thụy Ngọc Hằng