0
Tải bản đầy đủ (.pdf) (81 trang)

Mã giã của thuật toán C4.5

Một phần của tài liệu KHAI PHÁ DỮ LIỆU CÓ CANH TÁC DỮ LIỆU VÀ ỨNG DỤNG TRONG KHAI PHÁ DỮ LIỆU Y KHOA LUẬN VĂN THẠC SĨ (Trang 60 -62 )

Thuật toán C4.5 đượ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 (Depth - First). 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 và chọn 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. GainRatio được tính dựa trên kết quả tính toán đại lượng Information Gain theo công thức sau:

( , ) ( , ) ( X , T ) G a i n X T G a i n R a t i o n X T S p l i t I n f o = (3.4) Với: i 2 i i Value(X)

|T | |T |

info(X,T) = - log

| | | |

Split

T T

(3.5) 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

Mô tả thuật toán dưới dạng giả mã như sau [6]:

{

1. <Tính toán tần xuất các giá trị trong các lớp của T>;

2. 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>;

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

4. <Tại 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>;

5. 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>;

6. 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. )

7. { 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

8. <Gán nút con này 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'>;

}

9. <Tính toán các lỗi của nút N>; <Trả về nút N>; } Một số công thức được sử dụng n i x i i=1 T Info (T)=- * Info(T ) T

(3.6) X ( ) Info(T)-Info ( ) Gain X = T (3.7)

(3.7) được sử dụng làm tiêu chuẩn để lựa chọn thuộc tính khi phân lớp. Thuộc tính được chọn là thuộc tính có giá trị Gain tính theo (3.7) đạt giá trị lớn nhất.

Một phần của tài liệu KHAI PHÁ DỮ LIỆU CÓ CANH TÁC DỮ LIỆU VÀ ỨNG DỤNG TRONG KHAI PHÁ DỮ LIỆU Y KHOA LUẬN VĂN THẠC SĨ (Trang 60 -62 )

×