Thuật toán C4.5: Khai phá dữ liệu tiên tiến với cây quyết định

MỤC LỤC

Khai phá dữ liệu bằng cây quyết định

Do vậy cùng với một tập mẫu dữ liệu huấn luyện nếu áp dụng thuật toán CLS với thứ tự chọn thuộc tính triển khai cây khác nhau, sẽ cho ra các cây có hình dạng khác nhau. - Cho tập dữ liệu S gồm có n thuộc tính Ai(i=1,2…n) giá trị Information của thuộc tính Ai ký hiệu là Information(Ai) được xác định bởi công thức. Trong quá trình xây dựng cây quyết định theo thuật toán ID3 tại mỗi bước triển khai cây, thuộc tính được chọn để triển khai là thuộc tính có giá trị Gain lớn nhất.

Với việc tính toán giá trị Gain để lựa chọn thuộc tính tối ưu cho việc triển khai cây, thuật toán ID3 được xem là một cải tiến của thuật toán CLS. Thuật toán C4.5 là một thuật toán được cải tiến từ thuật toán ID3 với việc cho phép xử lý trên tập dữ liệu có các thuộc tính số (numeric atributes) và và làm việc được với tập dữ liệu bị thiếu và bị nhiễu. Để thu thập được giá trị Entropy gain của tất cả các phép thử nhị phân một cách hữu hiệu ta tiến hành xắp xếp các dữ liệu theo giá trị của thuộc tính liên tục đó bằng thuật toán Quicksort.

Giả sử T là một tập hợp gồm các mẫu cần được phân loại, X là phép kiểm tra theo thuộc tính L, U là số lượng các giá trị bị thiếu của thuộc tính L. Nếu phép kiểm tra có N giá trị đầu vào thì tiêu chuẩn (2.13) được tính như trong trường hợp chia N tập hợp ban đầu thành (N+1) tập hợp con. Thuật toán này có sử dụng kỹ thuật tiền xử lý phân loại(Pre sorting) trước khi xây dựng cây, do đó giải quyết được vấn đề bộ nhớ cho thuật toán ID3.

Thuật toán SLIQ có thể phân lớp rất hiệu quả đối với các tập dữ liệu lớn và không phụ thuộc vào số lượng lớp, số lượng thuộc tính và số lượng mẫu trong tập dữ liệu. Qua tìm hiểu các thuật toán xây dựng cây quyết định ở trên, ta thấy việc xây dựng cây bằng cách phát triển nhánh cây đầy đủ theo chiều sâu để phân lớp hoàn toàn các mẫu huấn luyện; như thuật toán CLS và thuật toán ID3 đôi khi gặp khó khăn trong các trường hợp dữ liệu bị nhiễu (Noisy Data) hoặc dữ liệu bị thiếu (Missing Data) không đủ để đại diện cho một quy luật; tức là tạo ra các nút có số mẫu rất nhỏ. Trong trường hợp này, nếu thuật toán vẫn cứ phát triển cây thì ta sẽ dẫn đến một tình huống mà ta gọi là tình trạng "Over fitting" trong cây quyết định.

Chiến thuật tiến cắt tỉa nghĩa là sẽ dừng sớm việc phát triển cây trước khi nó vươn đến điểm mà việc phân lớp các mẫu huấn luyện được hoàn thành. Còn đối với các CSDL lớn và có chứa các thuộc tính mà giá trị của nó là liên tục thì CLS làm việc không hiệu quả.Thuật toán có thể cho các kết quả khác nhau với cùng một tập dữ liệu đầu vào. Tuy nhiên thuật toán này cũng chưa giải quyết được về vấn đề thuộc tính số, liên tục, số lượng các thuộc tính còn bị hạn chế và giải quyết hạn chế với vấn đề dữ liệu bị thiếu hoặc bị nhiễu.

Trong thuật toán này đã giải quyết được vấn đề làm việc với thuộc tính số(liên tục), thuộc tính có nhiều giá trị, và vấn đề dữ liệu bị thiếu hoặc bị nhiễu. - Thuật toán SLIQ phân lớp rất có hiệu quả đối với các tập dữ liệu lớn, nó làm việc không phù thuộc vào số lượng các lớp, các thuộc tính và số lượng bản ghi trong tập dữ liệu. SLIQ đã cải thiện được vấn đề về bộ nhớ vì có 3 pha tiền xử lý phân loại, tại một thời điểm chỉ có 1 danh sách lớp thường trú trong bộ nhớ.

Mặc dù đã có nhiều cải tiến, nhiều thuật toán xây dựng cây quyết định ra đời, nhưng nói chung vấn còn nhiều vấn đề khó khăn phức tạp và nhiều thách thức trong KPDL bằng cây quyết định.

Hình 2.1 Cây quyết định phân lớp mức lương
Hình 2.1 Cây quyết định phân lớp mức lương

Xây dựng chương trình dêmo

Sau đó, do em dự tính dùng tool dtree (dtree làm việc với dữ liệu dạng file text ) để xây dựng cây quyết định, vì vậy em tiến hành xử lý , export dữ liệu từ access ra file text. - Đầu vào: dữ liệu phẳng (dạng file text) chứa các thông tin được sử dụng trong mô tả bài toán. - Đầu ra: đầu ra của cây là file text chứa các luật dự đoán xếp loại tốt nghiệp của sinh viên dựa vào các thông tin đầu vào.