Chương 4: Phân lớp và dự báo

Tổng quan

• Phân lớp là gì? • Dự báo là gì? • Giới thiệu cây quyết định • Phân lớp kiểu Bayes • Những phương pháp phân lớp khác • Độ chính xác trong phân lớp

Chương 4: Phân lớp và dự báo

Phân lớp là gì?

• Mục đích: dự đoán những nhãn phân lớp cho các bộ dữ

liệu/mẫu mới

• Đầu vào: một tập các mẫu dữ liệu huấn luyện, với một

nhãn phân lớp cho mỗi mẫu dữ liệu

• Đầu ra: mô hình (bộ phân lớp) dựa trên tập huấn luyện

và những nhãn phân lớp

Chương 4: Phân lớp và dự báo

Ứng dụng phân lớp

• Tín dụng

• Tiếp thị

• Chẩn đoán y khoa

• Phân tích hiệu quả điều trị

....

Chương 4: Phân lớp và dự báo

Dự đoán là gì?

- Xây dựng một mô hình - Sử dụng mô hình để dự đoán cho những giá trị

• Tương tự với phân lớp: chưa biết • Phương thức chủ đạo:

- Hồi quy tuyến tính và nhiều cấp - Hồi quy không tuyến tính

Chương 4: Phân lớp và dự báo

Quy trình phân lớp

- Mô tả các lớp xác định trước - Tìm luật phân lớp

• Bước 1: Xây dựng mô hình • Bước 2: Sử dụng mô hình

- Phân lớp các đối tượng chưa biết - Xác định độ chính xác của mô hình

Chương 4: Phân lớp và dự báo

Các kỹ thuật phân lớp

• Phương pháp sử dụng cây quyết định • Phương pháp phân lớp xác suất Bayes • Mạng Nơron • Tập thô • ......

Chương 4: Phân lớp và dự báo

Phân lớp dựa trên cây quyết định

Cây quyết định: là một cấu trúc phân cấp của các nút và các nhánh biểu diễn dưới dạng cây.

1. Dữ liệu dạng các bản ghi: (x,y)=(x1,x2,x3,..,xk,y) - y: là biến phụ thuộc cần phân loại Trong đó: - xi: là các biến độc lập giúp phân loại 2. Có 3 loại nút: - Nút gốc: đỉnh trên cùng của cây - Nút trong: biểu diễn một thuộc tính - Nút lá: lớp quyết định 3. Nhánh: biểu diễn giá trị có thể có của thuộc tính

Chương 4: Phân lớp và dự báo

Các kiểu cây quyết định

Uớc lượng các hàm có giá trị là số thực Ví dụ: ước tính giá một ngôi nhà, khoảng thời gian

 Cây hồi quy (Regression tree): một bệnh nhân nằm viện

 Cây phân loại (Classification tree):

Phân loại theo các thuộc tính quyết định Ví dụ: kết quả của một trận đấu (thắng hay thua).

Chương 4: Phân lớp và dự báo

Ví dụ cây quyết định

Tập dữ liệu huấn luyện

Dữ liệu chơi golf

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

Không

Nhẹ

Nắng

Nóng

Cao

Không

Mạnh

Âm u

Nóng

Cao

Nhẹ

Mưa

Ấm áp

Cao

Nhẹ

Mưa

Mát

Trung bình Nhẹ

Mưa

Mát

Trung bình Mạnh

Không

Âm u

Mát

Trung bình Mạnh

Nắng

Ấm áp

Cao

Nhẹ

Không

Nắng

Mát

Trung bình Nhẹ

Mưa

Ấm áp

Trung bình Nhẹ

Nắng

Ấm áp

Trung bình Mạnh

Âm u

Ấm áp

Mạnh

Cao

Âm u

Nóng

Trung bình Nhẹ

Mưa

Ấm áp

Cao

Mạnh

Không

Chương 4: Phân lớp và dự báo

Ví dụ cây quyết định

Chương 4: Phân lớp và dự báo

Giải thuật quy nạp cây ID3

Ví dụ: - Thuộc tính mô tả (Quang cảnh, Gió,..)

- Thuộc tính phân loại (Chơi Tennis?)

- Có khả năng phân loại đúng đắn các ví dụ trong

- Phân loại đúng cho cả các ví dụ chưa gặp trong

 Đầu vào: Một tập hợp các tập huấn luyện. Mỗi tập huấn luyện bao gồm các thuộc tính mô tả một tình huống, hay một đối tượng nào đó, và một giá trị phân loại của nó.  Đầu ra: Cây quyết định tập dữ liệu rèn luyện tương lai.

Chương 4: Phân lớp và dự báo

Giải thuật quy nạp cây ID3

tính P;

nhánh V

- tạo một nhánh của cây gán nhãn V; - Đặt vào phân_vùngV các ví dụ trong tập_ví_dụ có giá trị V tại thuộc - Gọi Induce_tree(phân_vùngV, tập_thuộc_tính), gắn kết quả vào End For

Function Induce_tree(tập_ví_dụ, tập_thuộc_tính) if mọi ví dụ trong tập_ví_dụ đều nằm trong cùng một lớp then return một nút lá được gán nhãn bởi lớp đó else if tập_thuộc_tính là rỗng then return nút lá được gán nhãn bởi tuyển của tất cả các lớp trong tập_ví_dụ else - chọn một thuộc tính P, lấy nó làm gốc cho cây hiện tại; - xóa P ra khỏi tập_thuộc_tính; For mỗi giá trị V của P End If End Function

Chương 4: Phân lớp và dự báo

Thuộc tính dùng để phân loại tốt nhất?

Độ đo độ hỗn loạn Entropy: Gọi S là tập ví dụ  Thành viên của S là một ví dụ Trong đó: mỗi ví dụ thuộc một lớp quyết định hay có một giá trị phân loại. • 0

Chương 4: Phân lớp và dự báo

Thuộc tính dùng để phân loại tốt nhất?

Entropy(S) = -pYlog2pY – pNlog2pN

Entropy(S) =

Độ đo độ hỗn loạn Entropy: Tập S là tập dữ liệu rèn luyện. Giả sử thuộc tính phân loại có hai giá trị (Y/N) Ta gọi: - pY là phần các ví dụ có thuộc tính Y trong tập S. - pN là phần các ví dụ có thuộc tính N trong tập S. Khi đó: Tổng quát cho tập S có nhiều hơn n thuộc tính phân loại (n>2):

Chương 4: Phân lớp và dự báo

Thuộc tính dùng để phân loại tốt nhất?

Độ đo độ lợi thông tin Information Gain: - Phép đo này gọi là lượng thông tin thu được - Lượng giảm entropy bị gây ra bởi việc phân chia các ví dụ theo

thuộc tính này.

- SV là tập con của S chứa các ví dụ có thuộc tính A mang giá

Tập S là tập dữ liệu rèn luyện Độ lợi thông tin Gain(S,A) của thuộc tính A trên tập S, được định nghĩa như sau: Trong đó: - Values(A) là tập hợp có thể có các giá trị của thuộc tính A trị v.

Chương 4: Phân lớp và dự báo

Xây dựng cây quyết định

1. Độ hỗn loạn của tập dữ liệu:

Entropy(S) = - (

) - (

) = 0.940

) log2 (

) log2(

𝟗 𝟏𝟒

𝟗 𝟏𝟒

𝟓 𝟏𝟒

𝟓 𝟏𝟒

Tập dữ liệu huấn luyện

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Nắng Cao Nhẹ Không Nóng Nắng Cao Mạnh Không Nóng Âm u Cao Nhẹ Có Nóng Mưa Cao Nhẹ Có Ấm áp Mưa Có Trung bình Nhẹ Mát Mưa Trung bình Mạnh Không Mát Âm u Trung bình Mạnh Có Mát Nắng Ấm áp Cao Nhẹ Không Nắng Trung bình Nhẹ Có Mát Mưa Trung bình Nhẹ Có Ấm áp Nắng Trung bình Mạnh Có Ấm áp Âm u Cao Mạnh Có Ấm áp Âm u Trung bình Nhẹ Có Nóng Mưa Ấm áp Cao Mạnh Không

Chương 4: Phân lớp và dự báo

Xây dựng cây quyết định

2. Tính Gain cho từng thuộc tính: Thuộc tính “Quang cảnh” Gain(S, Quang cảnh)

= Entropy(S) – (

𝟒 𝟏𝟒

= 0.940 – (

)(- (

) – (

)(0) - (

)(- (

) – (

))

)) - (

)log2(

)log2(

)log2(

)log2(

𝟓 𝟏𝟒

𝟓 𝟏𝟒 𝟐 𝟓

)Entropy(SNắng) – ( 𝟑 𝟓

𝟐 𝟓

𝟑 𝟓

)Entropy(SÂm u) – ( 𝟓 𝟒 𝟏𝟒 𝟏𝟒

𝟑 𝟓

𝟓 ) Entropy(SMưa) 𝟏𝟒 𝟑 𝟓

𝟐 𝟓

𝟐 𝟓

Quang cảnh

= 0.246

Tập dữ liệu huấn luyện

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Nắng Cao Nhẹ Không Nóng Nắng Cao Mạnh Không Nóng

Âm u

Nắng

Mưa

Âm u Cao Nhẹ Có Nóng Mưa Cao Nhẹ Có Ấm áp Mưa Có Trung bình Nhẹ Mát Mưa Trung bình Mạnh Không Mát Âm u Trung bình Mạnh Có Mát Nắng Ấm áp Cao Nhẹ Không Nắng Trung bình Nhẹ Có Mát

Chơi: 4 Không: 0

Chơi: 2 Không: 3

Chơi: 3 Không: 2

Mưa Trung bình Nhẹ Có Ấm áp Nắng Trung bình Mạnh Có Ấm áp Âm u Cao Mạnh Có Ấm áp Âm u Trung bình Nhẹ Có Nóng Mưa Ấm áp Cao Mạnh Không

Chương 4: Phân lớp và dự báo

Xây dựng cây quyết định

2. Tính Gain cho từng thuộc tính: Thuộc tính “Nhiệt độ” Gain(S, Nhiệt độ)

= Entropy(S) – (

𝟒 𝟏𝟒

𝟔 𝟏𝟒

= 0.940 – (

)(1) - (

) – (

)(- (

)) - (

)(- (

) – (

))

)log2(

)log2(

)log2(

)log2(

𝟒 𝟏𝟒

)Entropy(SNóng) – ( 𝟐 𝟔 𝟔 𝟏𝟒

𝟒 𝟔

𝟒 𝟔

)Entropy(SẤm áp) – ( 𝟒 𝟏𝟒

𝟐 𝟔

𝟑 𝟒

𝟒 ) Entropy(SMát) 𝟏𝟒 𝟑 𝟒

𝟏 𝟒

𝟏 𝟒

Nhiệt độ

= 0.029

Tập dữ liệu huấn luyện

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Nắng Cao Nhẹ Không Nóng Nắng Cao Mạnh Không Nóng

Ấm áp

Nóng

Mát

Âm u Cao Nhẹ Có Nóng Mưa Cao Nhẹ Có Ấm áp Mưa Có Trung bình Nhẹ Mát Mưa Trung bình Mạnh Không Mát Âm u Trung bình Mạnh Có Mát Nắng Ấm áp Cao Nhẹ Không Nắng Trung bình Nhẹ Có Mát

Chơi: 4 Không: 2

Chơi: 2 Không: 2

Chơi: 3 Không: 1

Mưa Trung bình Nhẹ Có Ấm áp Nắng Trung bình Mạnh Có Ấm áp Âm u Cao Mạnh Có Ấm áp Âm u Trung bình Nhẹ Có Nóng Mưa Ấm áp Cao Mạnh Không

Chương 4: Phân lớp và dự báo

Xây dựng cây quyết định

2. Tính Gain cho từng thuộc tính: Thuộc tính “Gió” Gain(S, Gió)

= Entropy(S) – (

)Entropy(SNhẹ)

𝟔 𝟏𝟒

𝟖 𝟏𝟒

= 0.940 – (

)(1) - (

) – (

)(- (

))

)log2(

)log2(

𝟔 𝟏𝟒

)Entropy(SMạnh) – ( 𝟐 𝟖 𝟖 𝟏𝟒

𝟔 𝟖

𝟔 𝟖

𝟐 𝟖

Gió

= 0.048

Tập dữ liệu huấn luyện

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Nắng Cao Nhẹ Không Nóng Nắng Cao Mạnh Không Nóng

Mạnh

Nhẹ

Âm u Cao Nhẹ Có Nóng Mưa Cao Nhẹ Có Ấm áp Mưa Có Trung bình Nhẹ Mát Mưa Trung bình Mạnh Không Mát Âm u Trung bình Mạnh Có Mát Nắng Ấm áp Cao Nhẹ Không Nắng Trung bình Nhẹ Có Mát

Chơi: 3 Không: 3

Chơi: 6 Không: 2

Mưa Trung bình Nhẹ Có Ấm áp Nắng Trung bình Mạnh Có Ấm áp Âm u Cao Mạnh Có Ấm áp Âm u Trung bình Nhẹ Có Nóng Mưa Ấm áp Cao Mạnh Không

Chương 4: Phân lớp và dự báo

Xây dựng cây quyết định

= Entropy(S) – (

𝟕 𝟏𝟒

= 0.940 – (

) – (

)(- (

)) - (

)(- (

) – (

))

)log2(

)log2(

)log2(

)log2(

2. Tính Gain cho từng thuộc tính: Thuộc tính “Độ ẩm” Gain(S, Độ ẩm) 𝟕 𝟏𝟒 𝟑 𝟕

)Entropy(SCao) – ( 𝟒 𝟒 𝟕 𝟕

𝟕 𝟏𝟒

𝟑 𝟕

)Entropy(ST.Bình) 𝟔 𝟕

𝟕 𝟏𝟒

𝟔 𝟕

𝟏 𝟕

𝟏 𝟕

Độ ẩm

= 0.151

Tập dữ liệu huấn luyện

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Nắng Cao Nhẹ Không Nóng Nắng Cao Mạnh Không Nóng

Cao

T.bình

Âm u Cao Nhẹ Có Nóng Mưa Cao Nhẹ Có Ấm áp Mưa Có Trung bình Nhẹ Mát Mưa Trung bình Mạnh Không Mát Âm u Trung bình Mạnh Có Mát Nắng Ấm áp Cao Nhẹ Không Nắng Trung bình Nhẹ Có Mát

Chơi: 3 Không: 4

Chơi: 6 Không: 1

Mưa Trung bình Nhẹ Có Ấm áp Nắng Trung bình Mạnh Có Ấm áp Âm u Cao Mạnh Có Ấm áp Âm u Trung bình Nhẹ Có Nóng Mưa Ấm áp Cao Mạnh Không

Chương 4: Phân lớp và dự báo

Xây dựng cây quyết định

3. Xác định thuộc tính làm nút gốc: Thuộc tính “Quang cảnh” có độ lợi thông tin cao nhất nên được chọn làm nút gốc.

Quang cảnh

Mưa

Âm u

Nắng

Tập dữ liệu huấn luyện

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Nắng Cao Nhẹ Không Nóng

Chơi

Nắng Cao Mạnh Không Nóng

Chơi - Không chơi

Chơi - Không chơi

Âm u Cao Nhẹ Có Nóng Mưa Cao Nhẹ Có Ấm áp Mưa Có Trung bình Nhẹ Mát Mưa Trung bình Mạnh Không Mát Âm u Trung bình Mạnh Có Mát Nắng Ấm áp Cao Nhẹ Không Nắng Trung bình Nhẹ Có Mát Mưa Trung bình Nhẹ Có Ấm áp Nắng Trung bình Mạnh Có Ấm áp Âm u Cao Mạnh Có Ấm áp Âm u Trung bình Nhẹ Có Nóng Mưa Ấm áp Cao Mạnh Không

Chương 4: Phân lớp và dự báo

Xây dựng cây quyết định

3. Sau khi lập được cấp đầu tiên của cây quyết định ta lại xét nhánh Nắng: Độ hỗn loạn của tập SNắng:

) - (

) = 0.971

) log2 (

) log2(

𝟑 𝟓

𝟑 𝟓

𝟐 𝟓

𝟐 𝟓

Entropy(SNắng) = - (

Tập dữ liệu huấn luyện

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Nắng Cao Nhẹ Không Nóng Nắng Cao Mạnh Không Nóng Âm u Cao Nhẹ Có Nóng Mưa Cao Nhẹ Có Ấm áp Mưa Có Trung bình Nhẹ Mát Mưa Trung bình Mạnh Không Mát Âm u Trung bình Mạnh Có Mát Nắng Ấm áp Cao Nhẹ Không Nắng Trung bình Nhẹ Có Mát Mưa Trung bình Nhẹ Có Ấm áp Nắng Trung bình Mạnh Có Ấm áp Âm u Cao Mạnh Có Ấm áp Âm u Trung bình Nhẹ Có Nóng Mưa Ấm áp Cao Mạnh Không

Chương 4: Phân lớp và dự báo

Xây dựng cây quyết định

) Entropy(SMát)

𝟐 )Entropy(SNóng) – ( 𝟓

𝟐 𝟓

𝟏 )Entropy(SẤm áp) – ( 𝟓

)(0) = 0.571

= 0.971 – (

)(1) - (

)(0) - (

4. Tính Gain cho từng thuộc tính: Thuộc tính “Nhiệt độ” Gain(SNắng, Nhiệt độ) = Entropy(SNắng) – ( 𝟐 𝟐 𝟓 𝟓

𝟏 𝟓

Quang cảnh

Nắng

Tập dữ liệu huấn luyện

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Nắng Cao Nhẹ Không Nóng

Nhiệt độ

Nắng Cao Mạnh Không Nóng Âm u Cao Nhẹ Có Nóng Mưa Cao Nhẹ Có Ấm áp Mưa Có Trung bình Nhẹ Mát Mưa Trung bình Mạnh Không Mát Âm u Trung bình Mạnh Có Mát

Ấm áp

Nóng

Mát

Nắng Ấm áp Cao Nhẹ Không Nắng Trung bình Nhẹ Có Mát Mưa Trung bình Nhẹ Có Ấm áp Nắng Trung bình Mạnh Có Ấm áp Âm u Cao Mạnh Có Ấm áp Âm u Trung bình Nhẹ Có Nóng Mưa Ấm áp Cao Mạnh Không

Chơi: 1 Không: 1

Chơi: 0 Không: 2

Chơi: 1 Không: 0

Chương 4: Phân lớp và dự báo

Xây dựng cây quyết định

𝟐 𝟓

= 0.971 – (

)(1) - (

)(-(

)) = 0.020

)-(

)log2(

)log2((

4. Tính Gain cho từng thuộc tính: Thuộc tính “Gió” Gain(SNắng, Gió) = Entropy(SNắng) – ( 𝟑 𝟐 𝟓 𝟓

𝟑 )Entropy(SMạnh) )Entropy(SNhẹ) – ( 𝟓 𝟐 𝟏 𝟏 𝟑 𝟑 𝟑

𝟐 𝟑

Quang cảnh

Nắng

Tập dữ liệu huấn luyện

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Nắng Cao Nhẹ Không Nóng

Gió

Nắng Cao Mạnh Không Nóng Âm u Cao Nhẹ Có Nóng Mưa Cao Nhẹ Có Ấm áp Mưa Có Trung bình Nhẹ Mát Mưa Trung bình Mạnh Không Mát Âm u Trung bình Mạnh Có Mát

Nhẹ

Mạnh

Nắng Ấm áp Cao Nhẹ Không Nắng Trung bình Nhẹ Có Mát Mưa Trung bình Nhẹ Có Ấm áp Nắng Trung bình Mạnh Có Ấm áp Âm u Cao Mạnh Có Ấm áp Âm u Trung bình Nhẹ Có Nóng Mưa Ấm áp Cao Mạnh Không

Chơi: 1 Không: 1

Chơi: 1 Không: 2

Chương 4: Phân lớp và dự báo

Xây dựng cây quyết định

)Entropy(ST.Bình)

𝟐 )Entropy(SCao) – ( 𝟓

𝟑 𝟓

)(0) = 0.971

= 0.971 – (

)(0) - (

4. Tính Gain cho từng thuộc tính: Thuộc tính “Độ ẩm” Gain(SNắng, Độ ẩm) = Entropy(SNắng) – ( 𝟐 𝟑 𝟓 𝟓

Quang cảnh

Nắng

Tập dữ liệu huấn luyện

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Nắng Cao Nhẹ Không Nóng

Độ ẩm

Nắng Cao Mạnh Không Nóng Âm u Cao Nhẹ Có Nóng Mưa Cao Nhẹ Có Ấm áp Mưa Có Trung bình Nhẹ Mát Mưa Trung bình Mạnh Không Mát Âm u Trung bình Mạnh Có Mát

Cao

T.Bình

Nắng Ấm áp Cao Nhẹ Không Nắng Trung bình Nhẹ Có Mát Mưa Trung bình Nhẹ Có Ấm áp Nắng Trung bình Mạnh Có Ấm áp Âm u Cao Mạnh Có Ấm áp Âm u Trung bình Nhẹ Có Nóng Mưa Ấm áp Cao Mạnh Không

Chơi: 0 Không: 3

Chơi: 2 Không: 0

Chương 4: Phân lớp và dự báo

Xây dựng cây quyết định

5. Xác định thuộc tính làm nút gốc: Thuộc tính “Độ ẩm” có độ lợi thông tin cao nhất trong nhánh Nắng nên được chọn làm nút gốc.

Quang cảnh

Mưa

Âm u

Nắng

Chơi

Tập dữ liệu huấn luyện

Độ ẩm

Chơi - Không chơi

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Nắng Cao Nhẹ Không Nóng Nắng Cao Mạnh Không Nóng

T.Bình

Cao

Âm u Cao Nhẹ Có Nóng Mưa Cao Nhẹ Có Ấm áp Mưa Có Trung bình Nhẹ Mát Mưa Trung bình Mạnh Không Mát

Không

Chơi

Âm u Trung bình Mạnh Có Mát Nắng Ấm áp Cao Nhẹ Không Nắng Trung bình Nhẹ Có Mát Mưa Trung bình Nhẹ Có Ấm áp Nắng Trung bình Mạnh Có Ấm áp Âm u Cao Mạnh Có Ấm áp Âm u Trung bình Nhẹ Có Nóng Mưa Ấm áp Cao Mạnh Không

Chương 4: Phân lớp và dự báo

Xây dựng cây quyết định

6. Xét nhánh Mưa: Độ hỗn loạn của tập SMưa:

) - (

) = 0.971

) log2 (

) log2(

𝟑 𝟓

𝟑 𝟓

𝟐 𝟓

𝟐 𝟓

Entropy(SMưa) = - (

Tập dữ liệu huấn luyện

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Nắng Cao Nhẹ Không Nóng Nắng Cao Mạnh Không Nóng Âm u Cao Nhẹ Có Nóng Mưa Cao Nhẹ Có Ấm áp Mưa Có Trung bình Nhẹ Mát Mưa Trung bình Mạnh Không Mát Âm u Trung bình Mạnh Có Mát Nắng Ấm áp Cao Nhẹ Không Nắng Trung bình Nhẹ Có Mát Mưa Trung bình Nhẹ Có Ấm áp Nắng Trung bình Mạnh Có Ấm áp Âm u Cao Mạnh Có Ấm áp Âm u Trung bình Nhẹ Có Nóng Mưa Ấm áp Cao Mạnh Không

Chương 4: Phân lớp và dự báo

Xây dựng cây quyết định

)Entropy(SMát)

𝟑 𝟓

= 0.971 – (

)) - (

)(-(

)-(

)(1) = 0.020

)log2(

)log2(

7. Tính Gain cho từng thuộc tính: Thuộc tính “Nhiệt độ” Gain(SMưa, Nhiệt độ) = Entropy(SMưa) – ( 𝟑 𝟓

𝟐 )Entropy(SẤm áp) – ( 𝟓 𝟏 𝟐 𝟑 𝟑

𝟐 𝟑

𝟐 𝟓

𝟏 𝟑

Quang cảnh

Mưa

Tập dữ liệu huấn luyện

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Nắng Cao Nhẹ Không Nóng

Nhiệt độ

Nắng Cao Mạnh Không Nóng Âm u Cao Nhẹ Có Nóng Mưa Cao Nhẹ Có Ấm áp Mưa Có Trung bình Nhẹ Mát Mưa Trung bình Mạnh Không Mát Âm u Trung bình Mạnh Có Mát

Ấm áp

Nóng

Mát

Nắng Ấm áp Cao Nhẹ Không Nắng Trung bình Nhẹ Có Mát Mưa Trung bình Nhẹ Có Ấm áp Nắng Trung bình Mạnh Có Ấm áp Âm u Cao Mạnh Có Ấm áp Âm u Trung bình Nhẹ Có Nóng Mưa Ấm áp Cao Mạnh Không

Chơi: 2 Không: 1

Chơi: 0 Không: 0

Chơi: 1 Không: 1

Chương 4: Phân lớp và dự báo

Xây dựng cây quyết định

)Entropy(SMạnh)

𝟐 )Entropy(SNhẹ) – ( 𝟓

𝟑 𝟓

)(0) = 0.971

= 0.971 – (

)(0) - (

7. Tính Gain cho từng thuộc tính: Thuộc tính “Gió” Gain(SMưa, Gió) = Entropy(SMưa) – ( 𝟐 𝟑 𝟓 𝟓

Quang cảnh

Mưa

Tập dữ liệu huấn luyện

Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Nắng Cao Nhẹ Không Nóng

Gió

Nắng Cao Mạnh Không Nóng Âm u Cao Nhẹ Có Nóng Mưa Cao Nhẹ Có Ấm áp Mưa Có Trung bình Nhẹ Mát Mưa Trung bình Mạnh Không Mát Âm u Trung bình Mạnh Có Mát

Nhẹ

Mạnh

Nắng Ấm áp Cao Nhẹ Không Nắng Trung bình Nhẹ Có Mát Mưa Trung bình Nhẹ Có Ấm áp Nắng Trung bình Mạnh Có Ấm áp Âm u Cao Mạnh Có Ấm áp Âm u Trung bình Nhẹ Có Nóng Mưa Ấm áp Cao Mạnh Không

Chơi: 3 Không: 0

Chơi: 0 Không: 2

Chương 4: Phân lớp và dự báo

Xây dựng cây quyết định

8. Xác định thuộc tính làm nút gốc: Thuộc tính “Gió” có độ lợi thông tin cao nhất trong nhánh Mưa nên được chọn làm nút gốc.

Quang cảnh

Mưa

Âm u

Nắng

Chơi

Gió

Độ ẩm

Mạnh

Nhẹ

T.Bình

Cao

Không

Không

Chơi

Chương 4: Phân lớp và dự báo

Luật rút ra từ cây quyết định

Quang cảnh

Mưa

Âm u

Nắng

Chơi

Gió

Độ ẩm

Mạnh

Nhẹ

T.Bình

Cao

Không

Không

Chơi

• if (Quang cảnh = Nắng) and (Độ ẩm = cao) then Chơi tennis = Không • if (Quang cảnh = Nắng) and (Độ ẩm = Trung bình) then Chơi tennis= Có • if (Quang cảnh = Âm u) then Chơi tennis = Có • if (Quang cảnh = Mưa) and (Gió = Nhẹ) then Chơi tennis = Có • if (Quang cảnh = Mưa) and (Gió = Mạnh) then Chơi tennis = Không

Chương 4: Phân lớp và dự báo

Bài tập

Xây dựng cây quyết định và rút ra các luật từ dữ liệu huấn luyện sau:

Tuổi

Thu nhập Sinh viên

Mua máy tính

Đánh giá độ tín nhiệm (trong tín dụng mua chịu)

Cao Cao Cao

Không Không Không Trung bình Không

Thấp Thấp Thấp

Có Có Có

Thanh niên Thanh niên Trung niên Già Già Già Trung niên Thanh niên Trung bình Không Thanh niên Già

Có Có Có

Thấp Trung bình Thanh niên Trung bình Trung niên Trung bình Không Trung niên Già

Cao Trung bình

Có không

Trung bình Tốt Trung bình Trung bình Trung bình Tốt Tốt Trung bình Trung bình Trung bình Tốt Tốt Trung bình Tốt

Không Không Có Có Có Không Có Không Có Có Có Có Có Không

Chương 4: Phân lớp và dự báo

Thuật toán ILA (Inductive Learning Algorithm) Thuật toán phân lớp sinh luật trực tiếp

- Bước 1: Chia bảng có chứa m mẫu thành n bảng con. Một bảng ứng với một giá trị có thể có của thuộc tính lớp. (Từ bước 2 đến bước 8 sẽ đuợc lặp lại cho mỗi bảng)

- Bước 2: Khởi tạo số lượng thuộc tính kết hợp j với j = 1.

- Bước 3: Với mỗi bảng con đang xét, phân chia các thuộc tính của nó thành một danh sách các thuộc tính kết hợp, mỗi thành phần của danh sách có j thuộc tính phân biệt.

- Bước 4: Với mỗi kết hợp các thuộc tính trong danh sách trên, đếm số lần xuất hiện các giá trị cho các thuộc tính trong kết hợp đó ở các dòng chưa bị khóa của bảng đang xét nhưng nó không được xuất hiện cùng giá trị ở những bảng con khác. Chọn ra một kết hợp trong danh sách sao cho nó có giá trị tương ứng xuất hiện nhiều nhất và được gọi là Max_combination.

Chương 4: Phân lớp và dự báo

Thuật toán ILA (Inductive Learning Algorithm)

+ Nếu còn bảng con thì qua bảng con tiếp theo và quay lại bước 2. + Ngược lại chấm dứt thuật toán + Ngược lại (nghĩa là vẫn còn dòng chưa khóa trong bảng con

- Bước 5: If max_combination = 0 thì j = j + 1 quay lại bước 3. - Bước 6: Khóa các dòng ở bảng con đang xét mà tại đó nó có giá trị bằng với giá trị tạo ra max_combination. - Bước 7: Thêm vào R luật mới với giả thiết là max_combination các thuộc tính và giá trị tương ứng phân biệt và kết nối các bộ này bằng AND, kết luận của luật là giá trị của thuộc tính quyết định tương ứng với bảng con này. - Bước 8: Nếu tất cả các dòng đều khóa đang xét) thì quay lại bước 4.

Chương 4: Phân lớp và dự báo

Thuật toán ILA (Inductive Learning Algorithm)

Quang cảnh

Nhiệt độ

Độ ẩm

Gió

Chơi

Ấm áp

Cao

Mưa

Nhẹ

Mưa

Mát

Trung bình

Nhẹ

Nắng

Mát

Trung bình

Nhẹ

Mưa

Ấm áp

Trung bình

Nhẹ

Nắng

Ấm áp

Trung bình

Mạnh

Âm u

Ấm áp

Cao

Mạnh

Âm u

Nóng

Trung bình

Nhẹ

Âm u

Nóng

Cao

Nhẹ

Số lượng thuộc tính kết hợp j = 1

Âm u

Mát

Trung bình

Mạnh

Quang cảnh

Nhiệt độ

Độ ẩm

Gió

Chơi

Nắng

Nóng

Nhẹ

Không

Cao

Nắng

Nóng

Mạnh

Không

Cao

Mưa

Mát

Trung bình

Mạnh

Không

Nắng

Ấm áp

Nhẹ

Không

Cao

Mưa

Ấm áp

Mạnh

Không

Cao

Chương 4: Phân lớp và dự báo

Thuật toán ILA (Inductive Learning Algorithm)

IF Quang cảnh=“Âm u” then Chơi Tennis=“Có”

Quang cảnh

Nhiệt độ

Độ ẩm

Gió

Chơi

Ấm áp

Cao

Nhẹ

Mưa

Trung bình

Nhẹ

Mưa

Mát

Trung bình

Nhẹ

Mưa

Ấm áp

Trung bình

Mạnh

Nắng

Ấm áp

Trung bình

Nhẹ

Nắng

Mát

Số lượng thuộc tính kết hợp j = 2

Quang cảnh

Nhiệt độ

Độ ẩm

Gió

Chơi

Nắng

Nóng

Cao

Nhẹ

Không

Nắng

Nóng

Cao

Mạnh

Không

Mưa

Mát

Trung bình

Mạnh

Không

Nắng

Ấm áp

Cao

Nhẹ

Không

Mưa

Ấm áp

Cao

Mạnh

Không

Chương 4: Phân lớp và dự báo

Thuật toán ILA (Inductive Learning Algorithm)

IF Quang cảnh=“Âm u” then Chơi Tennis=“Có” IF Quang cảnh=“Mưa” and Gió=“Nhẹ” then Chơi Tennis=“Có” IF Quang cảnh=“Nắng” and Độ ẩm=“Trung bình” then Chơi Tennis=“Có”

Quang cảnh

Nhiệt độ

Độ ẩm

Gió

Chơi

Nắng

Nóng

Cao

Nhẹ

Không

Nắng

Nóng

Cao

Mạnh

Không

Mưa

Mát

Trung bình

Mạnh

Không

Số lượng thuộc tính kết hợp j = 3  Không còn bảng con

Nắng

Ấm áp

Cao

Nhẹ

Không

Mưa

Ấm áp

Cao

Mạnh

Không

Chương 4: Phân lớp và dự báo

Thuật toán ILA (Inductive Learning Algorithm)

Quang cảnh

Nhiệt độ

Độ ẩm

Gió

Chơi

Nắng

Nóng

Cao

Nhẹ

Không

Nắng

Nóng

Cao

Mạnh

Không

Mưa

Mát

Trung bình

Mạnh

Không

Nắng

Ấm áp

Cao

Nhẹ

Không

Mưa

Ấm áp

Cao

Mạnh

Không

Quang cảnh

Nhiệt độ

Độ ẩm

Gió

Chơi

Mưa

Ấm áp

Cao

Nhẹ

Mưa

Mát

Trung bình

Nhẹ

Nắng

Mát

Trung bình

Nhẹ

Mưa

Ấm áp

Trung bình

Nhẹ

Nắng

Ấm áp

Trung bình

Mạnh

Số lượng thuộc tính kết hợp j = 1  max_combin ation =0

Âm u

Ấm áp

Cao

Mạnh

Âm u

Nóng

Trung bình

Nhẹ

Âm u

Nóng

Cao

Nhẹ

Âm u

Mát

Trung bình

Mạnh

Chương 4: Phân lớp và dự báo

Thuật toán ILA (Inductive Learning Algorithm)

Quang cảnh

Nhiệt độ

Độ ẩm

Gió

Chơi

Nắng

Nóng

Cao

Nhẹ

Không

Nắng

Nóng

Cao

Mạnh

Không

Mưa

Mát

Trung bình

Mạnh

Không

Nắng

Ấm áp

Cao

Nhẹ

Không

Mưa

Ấm áp

Cao

Mạnh

Không

Quang cảnh

Nhiệt độ

Độ ẩm

Gió

Chơi

Ấm áp

Cao

Mưa

Nhẹ

Số lượng thuộc tính kết hợp j = 2

Mưa

Mát

Trung bình

Nhẹ

Nắng

Mát

Trung bình

Nhẹ

Mưa

Ấm áp

Trung bình

Nhẹ

Nắng

Ấm áp

Trung bình

Mạnh

Âm u

Ấm áp

Cao

Mạnh

Âm u

Nóng

Trung bình

Nhẹ

Âm u

Nóng

Cao

Nhẹ

Âm u

Mát

Trung bình

Mạnh

Chương 4: Phân lớp và dự báo

Thuật toán ILA (Inductive Learning Algorithm)

IF Quang cảnh=“Âm u” then Chơi Tennis=“Có” IF Quang cảnh=“Mưa” and Gió=“Nhẹ” then Chơi Tennis=“Có” IF Quang cảnh=“Nắng” and Độ ẩm=“Trung bình” then Chơi Tennis=“Có” IF Quang cảnh=“Nắng” and Độ ẩm=“Cao” then Chơi Tennis=“Không” IF Quang cảnh=“Mưa” and Gió=“Mạnh” then Chơi Tennis=“Không”

Quang cảnh

Nhiệt độ

Độ ẩm

Gió

Chơi

Ấm áp

Cao

Mưa

Nhẹ

Mưa

Mát

Trung bình

Nhẹ

Nắng

Mát

Trung bình

Nhẹ

Số lượng thuộc tính kết hợp j = 3  Không

Mưa

Ấm áp

Trung bình

Nhẹ

còn bảng

Nắng

Ấm áp

Trung bình

Mạnh

Âm u

Ấm áp

Cao

Mạnh

Âm u

Nóng

Trung bình

Nhẹ

Âm u

Nóng

Cao

Nhẹ

Âm u

Mát

Trung bình

Mạnh

Chương 4: Phân lớp và dự báo

Phương pháp Naϊve Bayes

Phân lớp theo mô hình xác suất

- Dự đoán xác suất là thành viên của một lớp - Nền tảng: Dựa trên Định lý Bayes:

* Cho X, Y là các biến bất kỳ (rời rạc, số,...). * Dự đoán Y từ X.

* Định lý Bayes:

P(y|x) =

𝑷 𝒙 𝒚 ∗𝑷(𝒚) 𝑷(𝒙)

Cụ thể hơn:

P(Y=yi|X=xj) =

𝑷 𝑿=𝒙𝒋 𝒀=𝒚𝒊 ∗𝑷(𝒀=𝒚𝒊) 𝑷(𝑿=𝒙𝒋)

(∀𝒊, 𝒋)P(Y=yi|X=xj) =

𝑷 𝑿=𝒙𝒋 𝒀=𝒚𝒊 ∗𝑷(𝒀=𝒚𝒊) 𝑷 𝑿=𝒙𝒋 𝒀=𝒚𝒌 ∗𝑷(𝒀=𝒚𝒌)

𝒌

Chương 4: Phân lớp và dự báo

Phương pháp Naϊve Bayes

Giả sử: - D: Tập huấn luyện gồm các mẫu biểu diễn dạng X= - Ci,D: Tập các mẫu của D thuộc lớp Ci với: i={1,2,...,m} - Các thuộc tính x1,x2,... độc lập điều kiện đôi một với nhau khi cho lớp C

P(x1,x2,...,xn|C)=P(x1|C)*P(x2|C)*...*P(xn|C)

- Định lý Bayes:

P(Ci|X) =

𝑷 𝑿 𝑪𝒊 ∗𝑷(𝑪𝒊) 𝑷(𝑿)

 Ý tưởng: Cần xác định xác suất P(Ci|X) lớn nhất

hay: Luật phân lớp cho Xnew = {x1,x2,...,xn} là:

𝒏 argmax P(Ci) 𝑷(𝒙𝒌|𝑪𝒊) 𝒌=𝟏 Ck

Chương 4: Phân lớp và dự báo

Phương pháp Naϊve Bayes

Tính lượng giá P(Ci) Tính lượng giá P(Xk|Ci)

𝒏 𝒌=𝟏

argmax P(Ci) 𝑷(𝒙𝒌|𝑪𝒊) Ck

Thuật toán: Bước 1: Huấn luyện Naive Bayes trên tập dữ liệu huấn luyện: Bước 2: Xnew được gán vào lớp cho giá trị công thức lớn nhất:

Chương 4: Phân lớp và dự báo

Quang

Phương pháp Naϊve Bayes

Nhiệt độ

Độ ẩm

Gió

Chơi

cảnh

Nắng

Nóng

Cao

Nhẹ

Không

Nắng

Nóng

Cao

Mạnh Không

Mưa

Mát

Trung bình Mạnh Không

Nắng

Ấm áp

Cao

Nhẹ

Không

Mưa

Ấm áp

Cao

Mạnh Không

Quang

Nhiệt độ

Độ ẩm

Gió

Chơi

cảnh

Mưa

Ấm áp

Cao

Nhẹ

Mưa

Mát

Trung bình Nhẹ

b. Ước lượng P(xk|Ci)

Nắng

Mát

Trung bình Nhẹ

Mưa

Ấm áp

Trung bình Nhẹ

Nắng

Ấm áp

Trung bình Mạnh Có

Âm u

Ấm áp

Mạnh Có

Cao

Ví dụ: Cho Xnew =

Âm u

Nóng

Trung bình Nhẹ

Nắng, Mưa, Âm u

Âm u

Nóng

Cao

Nhẹ

Âm u

Mát

Trung bình Mạnh Có

P(“Nắng”|”Chơi”)=2/9 P(“Nắng”|”Không”)=3/5 P(“Mưa”|”Chơi”)=3/9 P(“Mưa”|”Không”)=2/5 P(“Âm u”|”Chơi”)=4/9 P(“Âm u”|”Không”)=0/5

Chương 4: Phân lớp và dự báo

Quang

Phương pháp Naϊve Bayes

Nhiệt độ

Độ ẩm

Gió

Chơi

cảnh

Nắng

Nóng

Cao

Nhẹ

Không

Nắng

Nóng

Cao

Mạnh Không

Mưa

Mát

Trung bình Mạnh Không

* Với thuộc tính Nhiệt độ, có các giá trị: Nóng, Mát, Ấm áp •

Nắng

Ấm áp

Cao

Nhẹ

Không

Mưa

Ấm áp

Cao

Mạnh Không

Quang

Nhiệt độ

Độ ẩm

Gió

Chơi

cảnh

Mưa

Ấm áp

Cao

Nhẹ

Mưa

Mát

Trung bình Nhẹ

Nắng

Mát

Trung bình Nhẹ

P(“Nóng”|”Chơi”)=2/9 P(“Nóng”|”Không”)=2/5 P(“Mát”|”Chơi”)=3/9 P(“Mát”|”Không”)=1/5 P(“Ấm áp”|”Chơi”)=4/9 P(“Ấm áp”|”Không”)=2/5

Mưa

Ấm áp

Trung bình Nhẹ

Nắng

Ấm áp

Trung bình Mạnh Có

Âm u

Ấm áp

Mạnh Có

Cao

Âm u

Nóng

Trung bình Nhẹ

• * Với thuộc tính Độ ẩm, có các giá trị: Cao, T.Bình •

Âm u

Nóng

Cao

Nhẹ

Âm u

Mát

Trung bình Mạnh Có

P(“Cao”|”Chơi”)=3/9 P(“Cao”|”Không”)=4/5 P(“T.Bình”|”Chơi”)=6/9 P(“T.Bình”|”Không”)=1/5

Chương 4: Phân lớp và dự báo

Quang

Phương pháp Naϊve Bayes

Nhiệt độ

Độ ẩm

Gió

Chơi

cảnh

Nắng

Nóng

Cao

Nhẹ

Không

Nắng

Nóng

Cao

Mạnh Không

* Với thuộc tính Gió, có các giá trị: Nhẹ,Mạnh •

Mưa

Mát

Trung bình Mạnh Không

Nắng

Ấm áp

Cao

Nhẹ

Không

Mưa

Ấm áp

Cao

Mạnh Không

P(“Nhẹ”|”Chơi”)=6/9 P(“Nhẹ”|”Không”)=1/5 P(“Mạnh”|”Chơi”)=3/9 P(“Mạnh”|”Không”)=3/5

Quang

Nhiệt độ

Độ ẩm

Gió

Chơi

cảnh

Mưa

Ấm áp

Cao

Nhẹ

Mưa

Mát

Trung bình Nhẹ

Nắng

Mát

Trung bình Nhẹ

Bước 2: Phân lớp: Xnew =

Mưa

Ấm áp

Trung bình Nhẹ

Nắng

Ấm áp

Trung bình Mạnh Có

Âm u

Ấm áp

Mạnh Có

Cao

Âm u

Nóng

Trung bình Nhẹ

Âm u

Nóng

Cao

Nhẹ

Âm u

Mát

Trung bình Mạnh Có

Xnew thuộc lớp C2 (“Không”)

P(C1)*P(X,C1) = P(C1)*P(“Nắng”|”Chơi”)*P(“Mát”|”Chơi”)* P(“Cao”|”Chơi”)*P(“Mạnh”|”Chơi”) =(9/14)*(2/9)*(3/9)*(3/9)*(3/9)=0.005 P(C2)*P(X,C2) = P(C2)*P(“Nắng”|”Không”)*P(“Mát”|”Không”)* P(“Cao”|”Không”)*P(“Mạnh”|”Không”) =(5/14)*(3/5)*(1/5)*(4/5)*(3/5)=0.021

Chương 4: Phân lớp và dự báo

Đánh giá mô hình

Phương pháp Holdout

Phân chia ngẫu nhiên tập dữ liệu thành 2 tập độc lập:

- Tập huấn luyện: - Tập thử nghiệm:

2/3 1/3

Phương pháp Cross-Validation

Phân chia tập dữ liệu thành k tập con có cùng kích thước:

- Tại mỗi vòng lặp: * Sử dụng một tập con làm tập thử nghiệm * k-1 tập còn lại làm tập huấn luyện - Giá trị của k thường là 10