Thuật toán C4.5

Một phần của tài liệu (LUẬN văn THẠC sĩ) các thuật toán phân lớp dữ liệu và ứng dụng xây dựng hệ thống hỏi đáp tự động về một số bệnh thường gặp​ (Trang 42 - 45)

5. Ý NGHĨA KHOA HỌC CỦA ĐỀ TÀI

2.5.2. Thuật toán C4.5

Thuật toán C4.5 biểu diễn các khái niệm ở dạng các cây quyết định. Giải thuật có đầu vào, đầu ra như sau:

Đầu vào: Tập dữ liệu huấn luyện – là tập hợp các ví dụ.

Đầu ra: Cây quyết định tương ứng với tập dữ liệu huấn luyện đó.

(1)

(2)

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

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à làm việc được với tập dữ liệu bị thiếu và bị nhiễu. Nó thực hiện phân lớp tập mẫu dữ liệu theo chiến lược ưu tiên theo chiều sâu. Thuật toán xét tất cả các phép thử có thể để phân chia tập dữ liệu đã cho ra một phép thử có giá trị GainRatio tốt nhất. GainRatio là một đại lượng để đánh giá độ hiệu quả của thuộc tính dùng để thực hiện phép tách trong thuật toán để phát triển cây quyết định. Thuật toán C4.5 mở rộng cách tính Information Gain thành GainRatio để cố gắng khắc phục sự thiên lệch. GainRatio được xác định bởi công thức sau:

Với SplitInfo (X,T) chính là thong tin do phân tách T trên cơ sở giá trị của thuộc tính phân loại X. Công thức tính như sau:

Trong đó:

+ Value (X) là tập các giá trị của thuộc tính X.

+ Ti là tập con của tập T ứng với thuộc tính X giá trị là Vi*

Đối với các thuộc tính liên tục, chúng ta tiến hành phép thử nhị phân cho mọi giá trị của thuộc tính đó. Để 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

Thuật toán xây dựng như sau [10]:

Function xay_dung_cay (T)

{

(Tính toán tần xuất các giá trị trong các lớp của T);

(4)

IF (Kiểm tra các mẫu, nếu thuộc cùng một lớp hoặc có rất ít mẫu khác lớp)

Then (Trả về 1 nút là)

Else (Tạo một nút quyết định N);

For (Với mỗi thuộc tính A) Do (Tính giá trị Gain (A));

(Tạo nút N, thực hiện việc kiểm tra để chọn ra thuộc tính có giá trị Gain tốt nhất (lớn nhất). Gọi N.test là thuộc tính có Gain lớn nhất);

If (Nếu N.test là thuộc tính liên tục) Then (Tìm ngưỡng cho phép tách của N.test);

For (Với mỗi tập con T’ được tách ra từ tập T) Do

(T’ được tách ra theo quy tắc:

{

- Nếu N.test là thuộc tính liên tục tách theo ngưỡng ở bước 5

- Nếu N.test là thuộc tính phân loại rời rạc tách theo các giá trị của thuộc tính này.

{

If (Kiểm tra, nếu T rỗng) } Then

(Gán nút con này của nút N là nút lá);

Else

(Gán nút con này là nút lá nút được trả về bằng cách gọi đệ qui lại đổi với hàm xay_dung_cay (T’),với tập T’);

}

(Tính toán các lỗi của nút N); (Trả về nút N);

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Một phần của tài liệu (LUẬN văn THẠC sĩ) các thuật toán phân lớp dữ liệu và ứng dụng xây dựng hệ thống hỏi đáp tự động về một số bệnh thường gặp​ (Trang 42 - 45)

Tải bản đầy đủ (PDF)

(77 trang)