Professional Documents
Culture Documents
KPDL N01 K61 Nhom06
KPDL N01 K61 Nhom06
KPDL N01 K61 Nhom06
1
NỘI DUNG
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
4
2. Phương phá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
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
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
9
2. Thuật toán
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
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ụ
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
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ụ
21
Thank you!