KPDL N01 K61 Nhom06

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 23

Kh ai p há dữ liệu

PHÂN LOẠI DỮ LIỆU VỚI


CÂY QUYẾT ĐỊNH ID3
NHÓM 06
Phạm Ngọc Huê 201206959
Đào Thị Diễm 201200051
Nguyễn Thị Mây 201200235
Nguyễn Duy Hoàng 201200136
Ngô Trọng Khôi 201200185

1
NỘI DUNG

1. Tổng quan về phân lớp dữ liệu

2. Phân loại dữ liệu với cây quyết định ID3

2
I. Tổng quan về phân lớp dữ liệu
1. Khái niệm
 Phân lớp dữ liệu là quá trình xây dựng mô hình để dự đoán các nhãn lớp cụ thể
cho dữ liệu
 Ví dụ:
• Ngân hàng: quyết định vay tiền dựa trên đánh giá là “an toàn” hay
“rủi ro”
• Y tế: dự đoán loại điều trị cho bệnh nhân dựa trên dữ liệu về bệnh

3
2. Phương pháp

 Quá trình 2 bước: Bước học và Bước phân loại

• Bước học: Xây dựng bộ phân loại


Thông qua giám sát từ tập huấn
dữ liệu và nhãn lớp tương ứng

4
2. Phương pháp

• Bước phân loại: Sử dụng mô hình đã học để


dự đoán nhãn lớp cho dữ liệu mới,
đánh giá độ chính xác thông qua
tập kiểm tra độc lập

5
3. Ứng dụng

 Y tế
• Phân loại bệnh nhân dựa trên hồ sơ y tế
• Dự đoán các loại bệnh dựa trên các đặc trưng lâm sàng
 Tài chính
• Phân loại giao dịch tài chính để phát hiện gian lận
• Dự đoán xu hướng thị trường và đầu tư
 Ngôn ngữ
• Phân loại văn bản dựa trên nội dung
• Phân loại tin tức, bình luận trên mạng xã hội

6
II. Phân loại dữ liệu với cây quyết định (Decision
Tree – ID3)
1. Giới thiệu chung

Cây quyết định là một cấu


trúc cây mà mỗi 1 nút trong
biểu thị 1 thử nghiệm trên 1 Các nút bên trong được
thuộc tính, mỗi nhánh đại biểu thị bằng hình chữ
diện cho 1 kết quả kiểm tra nhật, các nút lá được biểu
và mỗi nút lá giữ 1 nhãn lớp thị bằng hình bầu dục

7
2. Thuật toán

 Thuật toán áp dụng giải thuật tham lam trong đó cây quyết định được xây dựng theo thuật
toán chia để trị

 Thuật toán bắt đầu với tập dữ liệu chứa các bản ghi và các nhãn lớp tương ứng. Trong quá
trình xây dựng, tập dữ liệu được chia nhỏ thành các tập con và được xây dựng dưới dạng cây
đệ quy

 Thuật toán xây dựng với 3 tham số: D, attribute_list, attribute_selection_method

8
2. Thuật toán

Input:
• D: Tập dữ liệu gồm các bản ghi và
các nhãn lớp tương ứng của chúng
• Attribute_list: danh sách các thuộc
tính ứng cử
• Attribute_selection_method: hàm
dùng để xác định tiêu chí chia dữ
liệu “tốt nhất” thành các lớp riêng
lẻ.

9
2. Thuật toán

Tiêu chí splitting_criterion bao gồm:


splitting_attribute: thuộc tính được
dùng để chia tập dữ liệu thành các
phân đoạn con
splitting_point(điểm chia): giá trị
cụ thể sử dụng để chia dữ liệu thành
các nhánh
splitting_subset(tập con chia): một
tập hợp các giá trị được sử dụng để
phân chia tập dữ liệu thành các nhánh
Output:
• Một cây quyết định

9
2. Thuật toán

(1)Tạo một nút N.


(2) Nếu các bản ghi trong D thuộc cùng một lớp C, thì:
(3) Trả về N là một nút lá được gắn nhãn bằng lớp C.
(4) Nếu danh sách thuộc tính rỗng, thì:
(5) Trả về N là một nút lá được gắn nhãn bằng lớp phổ biến nhất trong D; // đa số bầu
cử
(6) Gọi Atrribute_selection_method(D, attribute_list) để tìm splitting_criterion "tốt
nhất".
(7) Gắn nhãn nút N bằng splitting_criterion.

10
2. Thuật toán
(8) Nếu splitting_attribute là giá trị rời rạc và cho phép chia đa hướng // có thể có nhiều
hơn hai nhánh từ một nút
(9) attribute_list <- attribute_list-splitting_attribute; // loại bỏ thuộc tính chia ra khỏi danh
sách ban đầu
(10) For mỗi j của splitting_criterion:
(11) Đặt Dj là tập hợp các bản ghi dữ liệu trong D thoả mãn kết quả j;
(12) Nếu Dj rỗng thì:
(13) Đính kèm một nút lá được gắn nhãn bằng lớp phổ biến nhất trong D vào nút N;
(14) Ngược lại, đính kèm nút được trả về Generate_decision_tree(Dj,attribute_list) vào nút
N;
(15) Trả về N
11
2. Thuật toán

 Cách vẽ: Sau bước 7, nút N được gán bằng tiêu chí chọn tốt nhất thì sẽ có 3 cách vẽ khác
nhau
Đặt A là thuộc tính chia (splitting_attribute)
• Nếu A là thuộc tính với giá trị rời rạc, thì sẽ tạo ra 1 nhánh cho mỗi giá trị đã biết
của A. Mỗi giá trị của A sẽ dẫn đến 1 nhánh con trong cây quyết định

12
2. Thuật toán
• Nếu A là thuộc tính với giá trị liên tục,
thì sẽ tạo ra 2 nhánh con: một nhánh có
giá trị nhỏ hơn hoặc bằng điểm chia, và
nhánh kia có giá trị lớn hơn điểm chia

• Nếu A là thuộc tính với giá trị rời rạc và


cây quyết định phải là cây nhị phân, thì
kiểm tra thực hiện dưới dạng A ∈ SA,
trong đó SA là tập con chia của thuộc tính
A

13
2. Thuật toán

 Cách lựa chọn thuộc tính tốt nhất: Dùng Information Gain là tiêu chí để lựa chọn (dựa
trên entropy của tập dữ liệu)
• Entropy: đo lường độ không chắc chắn hoặc hỗn loạn trong tập dữ liệu
• Entropy cao thể hiện mức độ không thuần khiết cao (các tập dữ liệu có xu hướng
không thuộc về cùng 1 lớp) và ngược lại
•Công thức
Trong đó:
 m: số lượng nhãn
 pi: % tập dữ liệu của D thuộc nhãn i (= số
lượng bản ghi có nhãn i / tổng số lượng
bản ghi)

14
2. Thuật toán

•Tính độ tăng entropy sau chia phân vùng các bộ dữ liệu trong D trên thuộc tính A

Trong đó:
 D: tập hợp ban đầu với thuộc tính A
 Dj: tập con của D mà có thuộc tính A
mang giá trị v
 |D|: số phần tử của tập D
 |Dj|: số phần tử của tập con Dj

15
3. Ví dụ

D: tập dữ liệu gồm:


• 14 bản ghi
• Số lượng nhãn: 2 (yes/no)
• 9 bản ghi yes, 5 bản ghi no
• Thuộc tính: age, income, student,
credit_rating

16
3. Ví dụ
Tính InfoAge(D): • “youth”: 2 yes, 3 no
• “middle”: 4 yes
• “senior”: 3 yes, 2 no

CT

17
3. Ví dụ

Tương tự:
 Gain(income) = 0.029 bits
 Gain(student) = 1.151 bits
 Gain(credit_rating) = 0.048
bits

Nhận thấy Gain(age) là cao nhất


nên chọn thuộc tính age là thuộc
tính chia

18
3. Ví dụ
Tương tự:
• Age_youth:

Gain(income) = 0,571

Gain(student) = 0,971

Gain(credit_rating) = 0,02
 Chọn student là thuộc tính chia cho tập
age_youth

19
3. Ví dụ
Tương tự ta được:
• Age_senior:

Gain(income) = 0,02

Gain(student) = 0,02

Gain(credit_rating) = 0,971
 Chọn credit_rating là thuộc tính chia
cho tập age_senior

20
3. Ví dụ

• Nhận thấy các bộ trong phân vùng

age = middle_aged đều thuộc về cùng 1 lớp


“yes” -> một chiếc lá sẽ được tạo ở nhánh
này và được gán nhãn là yes

 Cây quyết định cuối cùng


yes no

21
Thank you!

You might also like