- Chọn A2; Nếu T2; chọn S2.
Chương 2: DATAMINING VÀ RA QUYẾT ĐỊNH 2.1 Phân lớp dữ liệu:
2.2.3 Xây dựng cây quyết định
• Việc tạo cây quyết định bao gồm 2 giai đoạn : Tạo cây và tỉa cây .
- Để tạo cây ở thời điểm bắt đầu tất cả những ví dụ huấn luyện là ở gốc sau đó phân chia ví dụ huấn luyện theo cách đệ qui dựa trên thuộc tính được chọn . - Việc tỉa cây là xác định và xóa những nhánh mà có phần tử hỗn loạn hoặc
những phần tử nằm ngoài (những phần tử không thể phân vào một lớp nào đó) .
• Có rất nhiều biến đổi khác nhau về nòng cốt của thuật toán cây quyết định, mặc dù vậy chúng vẫn tuân theo những bước cơ bản sau :
- Cây được thiết lập từ trên xuống dưới và theo cách thức chia để trị. - Ở thời điểm bắt đầu, các mẫu huấn luyện nằm ở gốc của cây
- Thuộc tính được phân loại (Rời rạc hóa các thuộc tính dạng phi số ) - Chọn một thuộc tính để phân chia thành các nhánh. Thuộc tính được chọn dựa trên độ đo thống kê hoặc độ đo heuristic.
- Tiếp tục lặp lại việc xây dựng cây quyết định cho các nhánh.
• Điều kiện để dừng việc phân chia:
+ Tất cả các mẫu rơi vào một nút thuộc về cùng một lớp (nút lá) + Không còn thuộc tính nào có thể dùng để phân chia mẫu nữa + Không còn lại mẫu nào tại nút.
2.2.3.1 Chọn thuộc tính phân tách
Cây quyết định được xây dựng bằng cách phân tách các bản ghi tại mỗi nút dựa trên một thuộc tính đầu vào. Rõ ràng nhiệm vụ đầu tiên là phải chọn ra xem thuộc tính nào đưa ra được sự phân tách tốt nhất tại nút đó.
Độ đo được sử dụng để đánh giá khả năng phân tách là độ tinh khiết. Chúng ta sẽ có những phương pháp xác định để tính toán độ tinh khiết một cách chi tiết, tuy nhiên chúng đều cố gắng đạt được hiệu quả như nhau. Một sự phân
tách tốt nhất là sự phân tách làm tăng độ tinh khiết của tập bản ghi với số lượng lớn nhất. Một sự phân tách tốt cũng phải tạo ra các nút có kích cỡ tương tự nhau, hay chí ít cũng không tạo ra các nút có quá ít bản ghi.
Dữ liệu gốc
Phép phân tách kém Phép phân tách kém
Phép phân tách tốt
Thuật toán xây dựng cây quyết định hết sức thấu đáo. Chúng bắt đầu bằng việc chọn mỗi biến đầu vào chưa được chọn và đo mức độ tăng độ tinh khiết trong các kết quả ứng với mỗi biến. Sau đó một phép tách tốt nhất sẽ được sử dụng trong phép tách khởi đầu, để tạo hai hay nhiều nút con. Nếu không phép phân tách nào có khả năng (có thể do có quá ít bản ghi) hoặc do không có phép phân tách nào làm tăng độ tinh khiết thì thuật toán kết thúc và nút đó trở thành nút lá.
Phép phân tách trên các biến đầu vào kiểu số: đối với sự phân tách nhị
phân trên một biến đầu vào, mỗi giá trị mà biến đó chứa đều có thể trở thành giá trị dự tuyển. Phép phân tách nhị phân dựa trên biến đầu vào kiểu số có dạng X < N. Để cải thiện hiệu năng, một số thuật toán không kiểm tra hết toàn bộ các giá trị của biến mà chỉ kiểm tra trên tập mẫu giá trị của biến đó.
Phép phân tách trên các biến đầu vào định tính : thuật toán đơn giản
nhất trong việc phân tách trên một biến định tính là ứng với mỗi giá trị của biến đó, ta tạo một nhánh tương ứng với một lớp được phân loại. Phương pháp này được sử dụng thực sự trong một số phần mềm nhưng mang lại hiệu quả thấp. Một phương pháp phổ biến hơn đó là nhóm các lớp mà dự đoán cùng kết quả với nhau. Cụ thể, nếu hai lớp của biến đầu vào có phân phối đối với biến đích chỉ khác nhau trong một giới hạn cho phép thì hai lớp này có thể hợp nhất với nhau.
Phép phân tách với sự có mặt của các giá trị bị thiếu: một trong những
điểm hay nhất của cây quyết định là nó có khả năng xử lý các giá trị bị thiếu bằng cách coi giá trị rỗng (NULL) là một nhánh của nó. Phương pháp này được ưa thích hơn so với việc vứt các bản ghi có giá trị thiếu hoặc cố gắng gắn giá trị nào đó cho nó bởi vì nhiều khi các giá trị rỗng cũng có ý nghĩa riêng của nó. Mặc dù phép phân tách giá trị rỗng như là một lớp riêng rẽ khá có ý nghĩa nhưng người ta thường đề xuất một giải pháp khác. Trong khai phá dữ liêu, mỗi nút chứa vài luật phân tách có thể thực hiện tại nút đó, mỗi phép phân tách đó dựa vào các biến đầu vào khác nhau. Khi giá trị rỗng xuất hiên trong biến đầu vào của phép phân tách tốt nhất, ta sử dụng phép phân tách thay thế trên biến đầu vào có phép phân tách tốt thứ hai.
2.2.3.2 Phép kiểm tra để chọn phép phân tách tốt
Độ lợi thông tin (Information gain)
• Information gain là đại lượng được sử dụng để chọn lựa thuộc tính với information gain lớn nhất.
• Cho P và N là hai lớp và S là một tập dữ liệu có p phần tử lớp P và n phần tử lớp N .
• Khối lượng thông tin cần thiết để quyết định một mẫu tùy ý có thuộc về lớp P hay N hay không là:
2 2 ( , ) ( p , n ) p log p n log n Info p n Entropy p n p n p n p n p n p n = = − − + + + + + +
• Cho các tập {S1, S2 , …, Sv} là một phân hoạch trên tập S, khi sử dụng thuộc tính A.
• Cho mỗi Si chứa pi mẫu lớp P và ni mẫu lớp N
• 1 ( ) i i ( , ) i i i p n Entropy A Info p n p n ν = + = + ∑
Entropy, hay thông tin mong muốn cần thiết để phân lớp các đối tượng trong tất cả các cây con Si là:
• Thông tin có được bởi việc phân nhánh trên thuộc tính A là:
( ) ( , ) ( )
Gain A = Info p n −Entropy A
Các biến độc lập Biến phụ thuộc
Quang cảnh Nhiệt độ Độ ẩm Gió Chơi
Nắng Nóng Cao Nhẹ Không Nắng Nóng Cao Mạn h Không Âm u Nóng Cao Nhẹ Có Mưa Ấm áp Cao Nhẹ Có Mưa Mát Trung bình Nhẹ Có Mưa Mát Trung bình Mạn h Không Âm u Mát Trung bình Mạn h Có Nắng Ấm áp Cao Nhẹ Không Nắng Mát Trung bình Nhẹ Có Mưa Ấm áp Trung bình Nhẹ Có Nắng Ấm áp Trung bình Mạn h Có Âm u Ấm áp Cao Mạn h Có Âm u Nóng Trung bình Nhẹ Có Mưa Ấm áp Cao Mạn h không • Lớp P: Chơi_tennis = “Có” • Lớp N: Chơi_tennis = “Không”
• Thông tin cần thiết để phân lớp một mẫu được cho là:
2 2 9 9 5 5 ( , ) (9, 5) - log - log 0.940 14 14 14 14 Info p n = Info = = • Xét thuộc tính ‘Quang cảnh’ ta có : ○ ‘Quang cảnh’ = ‘Nắng’:
Info ([2,3]) = entropy (2/5, 3/5) = – 2/5log2(2/5) – 3/5log2(3/5) = 0.971 ○ ‘Quang cảnh’ = ‘Âm u’:
Info ([4,0]) = entropy (1, 0) = – 1log2(1) – 0log2(0) = 0 Do không có log2(0) nên ta quy ước nó bằng 0
○ ‘Quang cảnh’ = ‘Mưa’:
Info ([3,2]) = entropy (3/5, 2/5) = – 3/5log2(3/5) – 2/5log2(2/5) = 0.971 ○ Entropy cho phép phân tách trên thuộc tính « Quang cảnh» :
5 4 5
( ) (2,3) (4, 0) (3, 2)
14 14 14
Entropy Quang canh = Info + Info + Info
= (5/14) * 0.971 + (4/14) * 0 + (5/14) * 0.971 = 0.694
Do đó ta có:
( ) (9,5) ( )