You are on page 1of 42

Khoa học dữ liệu

Phân lớp dữ liệu


Trịnh Thành
Faculty of computer science
thanh.trinh@phenikaa-uni.edu.vn
Nội dung
• Tổng quan
• Thuật toán phân lớp
Nhóm
biết bay

Nhóm
biết bơi

Nhóm
biết bò

Nhóm….?
Y = aX+ b
y = aX +b
Thuật toán phân lớp
Phân lớp là gì?
• Là một quá trình của việc chia các lớp dữ liệu thành các nhóm hay loại
khác nhau bằng việc gắn nhãn.
• Là kỹ thuật của việc phân loại các quan sát (mẫu) thành các loại khác
nhau. Vậy về cơ bản, chúng ta xử lý dữ liệu, phân tích dữ liệu dựa trên
một số điều kiện và cuối cùng chúng ta phân chia dữ liệu đấy thành
các loại hay nhóm đã được gắn nhãn trước.
Name Egg- Scales Poisonous Cold- #legs Reptile
laying Blooded
Rắn mang True True True True 0 YES
bành
Rắn đuôi True True True True 0 YES
chuông
Trăn nhiệt đới False True False True 0 YES
Gà True True False False 2 NO
Cá chép False True False False 0 No
Ếch độc True False True False 4 No
Ngựa vằn False False False False 4 No
Trăn True True False True 0 Yes
Cá sấu True True False True 4 Yes

Mô hình máy: Có vẩy, máu lạnh, không có chân


Name Egg- Scales Poisonous Cold- #legs Reptile
laying Blooded
Rắn mang True True True True 0 YES
bành
Rắn đuôi True True True True 0 YES
chuông
Gà True True False False 2 NO
Chọn là Máu
lạnh Cá chép False True False False 0 No
Ếch độc True False True False 4 No
Ngựa vằn False False False False 4 No
Chọn Máu
lạnh+ Bò sát Trăn True True False True 0 Yes
Cá sấu True True False True 4 Yes
Máu lạnh Con rùa True True False True 4 ?
+ Chân Cá hồi True True False True 0 ?

Máu lạnh+
Trên cạn, có
vẩy
• Phân lớp dữ liệu: Là xếp các đối tượng dữ liệu vào trong một lớp đã
được xác định trước.

• Phân lớp gồm 2 bước:


Bước 1: Xây dựng mô hình
• Bước 2: Vận hành mô hình.

Xây dựng mô Kiểm định/ dự


Dữ liệu
hình báo
• Bước 1: Xây dựng mô hình
• Mô tả dữ liệu đã biết
• Mỗi một mẫu thuộc về một lớp cụ thể
• Tìm luật phân lớp, cây quyết định để xây dựng mô hình
• Bước 2: Vận hành
• Phân lớp đối tượng chưa biết
• Kiểm thử độ chính xác của mô hình
• Cho 3 nhóm người: Miền Nam, Miền Bắc và Miền Trung.
• Yêu cầu, làm sao phân biết được nhóm người này.
• - Các bạn đưa ra hết những đặc trưng vùng miền của 3 vùng.
Giọng nói Đồ ăn Quần áo mặc Nghệ thuật nổi bật
Nhẹ nhàng Ngọt Mát mẻ/-áo bà Cải lương Miền Nam
ba
Nặng nề Mặn Mát mẻ Tuồng/ví dặm/Ca Miền Trung
huế
Trong trẻo Vừa đủ Tùy theo mùa Chèo Miền Bắc
Xây dựng mô hình
Với dữ liệu mới (Trong, Thấp, Nam), trời sẽ mưa hay không mưa?

Gió

Bắc nam

Áp suất Áp suất
Cao
Thấp
Không Cao
mưa Mưa Mưa

Không
Trời Trời mưa
mây

Mưa
• Với dữ liệu mới (Trong, Thấp, Nam), trời sẽ mưa hay không mưa?
• Chúng ta có một bảng dữ liệu về
thời tiết và việc thi đấu của một đối
bóng trong 14 ngày qua.

• Xây dựng một Cây quyết định, có


thể dự đoán được liệu đội bóng có
thi đấu hay không vào ngày 15.
• Thời tiết = {rainy, hot, high, false}
• Play = YES or NO ???
• Mục tiêu cần phần lớp (Target class) : Play (9 yes, 5 no)
• Các đặc trưng (thuộc tính): outlook, temperature, humidity
windy
Outlook: sunny, overcast, rainy
Temperature: hot, mild, cool
Humidity: high, normal
Windy: false, true
• Chọn đặc trưng Outlook là nốt chia đầu tiên:
Outlook
• Bảng dữ liệu tương ứng sẽ chia làm 3 phần:
Sunny overcast rainy
Outlook

Sunny rainy
overcast

Temp.

hot mild cool

no humidity yes
high normal

no yes
Outlook

Sunny rainy
overcast

Temp. yes

hot mild cool

no humidity yes
high normal

no yes
Outlook

Sunny rainy
overcast

Temp. yes Temp.

hot mild cool mild cool

no humidity yes humidity windy


high normal high normal true false

no yes windy yes no yes


true false
no yes
Outlook

Sunny rainy
overcast

Temp. yes Temp.

hot mild cool mild cool

no humidity yes humidity windy


high normal high normal true false

no yes windy yes no yes


true false
no yes
Thời tiết = {rainy, hot, high, false}
Play = YES or NO ???
Outlook

Sunny overcast rainy

Humidity yes windy

high true false


normal

no yes no yes

Thời tiết = {rainy, hot, high, false}


Play = YES or NO ???
Entropy

• Entropy(S) = ∑(i=1 to C)-|Si|/|S| * log2(|Si|/|S|)


• S =tập mẫu
• Si = Tập con Si
• C = Số lượng các lớp;
Information gain

Entropy (S): Thông tin entropy trước khi chia.

A: là một đặc trưng


v: là một giá trị của đặc trưng A
|Sv|: là số mẫu khi đặc trưng A mang giá trị v;
|S|: là số tổng số mẫu trước khi chia
Entropy (Av) là thông tin Entropy của đặc trưng A mang giá trị v
• Tính Entropy (S): trước khi chia nhánh.
• Entropy(S) = - (5/14)*log2 (5/14)- (9/14)*log2 (9/14)
• = 0.940
• Chọn đặc trưng Outlook để chia:
• E (outlook = sunny) = -3/5*log2 (3/5) -2/5*log2 (2/5) =0.971
• E (outlook = overcast) = -0/4*log2 (0/4) – 4/4*log2 (4/4) = 0
• E (outlook = rainy) = -2/5*log2 (2/5) -3/5*log2 (3/5) = 0.971
• Thông tin trung bình Entropy(Outlook) =
= 5/14* E(outlook = sunny) +4/14* E (outlook = overcast) +5/14* E (outlook = rainy)
=0.693
• Entropy(S) = ∑(i=1 to C)-|Si|/|S| * log2(|Si|/|S|)
• S =tập mẫu
• Si = Tập con Si
• C = Số lượng các lớp;
• IG (S, outlook) = Entropy(S) - Entropy (outlook) = 0.940- 0.693= 0.247
• Chọn đặc trưng Temp. để chia
• E (temp.= hot) = -2/4*log(2/4) -2/4*log(2/4) =1
• E (temp. = mild) = -2/6 *log(2/6) – 4/6 *log(4/6) = 0.918
• E (temp. = cool) = -1/4*log(1/4) – 3/4 *log(3/4) = 0.811
• E(temp.) = 4/14 * E (temp.= hot) +6/14 * E (temp. = mild) +4/14 * E (temp. = cool) = 0.911
• IG(S, temp.) = 0.940 - 0.911 = 0.029
• Chọn đặc trưng humidity để chia
• E(humidity) = 7/14 *( 4/7 *log(4/7) + 3/7 *log(3/7) ) + 7/14 *(1/7*log(1/7)+6/7 *log(6/7))
=0.788
• IG (S, humidity) = 0.940- 0.788 = 0. 152
• Chọn đặc trưng Windy để chia
• E(windy) = 8/14 *(2/8 *log(2/8) + 6/8 *log(6/8)) + 6/14* (3/6 *log(3/6) +3/6*log(3/6)) = 0.892
• IG(S, windy) = 0.940- 0.892 = 0.048

• IG (S, outlook) = 0.247; IG(S, temp.) = 0.029 ; IG(S,humidity) = 0.152; IG(S,windy) = 0.048;
• Vậy chon đặc trưng outlook là nốt chia đầu tiên (nốt gốc)
Outlook

Sunny rainy
overcast

• E(S) = E(outlook = sunny) = 0.971

• E(humidity = high) = -3/3*log(3/3) =0


• E(humidity = normal) = -2/2*log(2/2) = 0
• IG(outlook = sunny, humidity) = 0.971-0 = 0.971

• E(temp. =hot) = -2/2*log(2/2) = 0


• E(temp. = mild) = -1/2*log(1/2) – ½*log(1/2) = 1
• E(temp. = cool) = -1/1*log(1/1) = 0;
• E(temp.) = 2/5 * 0 + 2/5*1+1/5 * 0 = 0.4
• IG(outlook = sunny, temp.) = E(outlook = sunny) - E(temp.) = 0.971-0.4 = 0.571
• Cây quyết định: Có thể diễn tả bằng một tập hợp các luật
• Gồm 3 thành phần: Các node, các nhánh và các lá (lớp/nhãn)
Một số thuật toán phân lớp.
• Decision tree, SVM, Naïve bayes, KNN, random forest…
Y = aX+ b;
a = tập hợp các tham số (a1, a2,a3,..an}
X là tập hợp các thuộc tính
b : tập các hệ số (nhiễu, sai số)
Y: là một tập nhãn cụ thể (ví dụ, Yes, No; hoặc 1 -2)

Sẽ ko Y : phân nhóm/cụm
Có Y: Phân lớp

X = {x1, x2, x3,…Xn}


y = aX +b
y = a1X +b1

Mối quan
hệ
3
• SVM – Support vector machines
3
• SVM – Support vector machines
Support vector machines
SVM

• Xác định được 2 lề (2


đường song song với
nhau)
• Khoảng cách của 2
đường này là lớn
nhất.
• Một số ứng dụng của thuật toán phân lớp
• - Xác định bệnh tật trong y tế
• - Xác định kẻ lừa đảo trong ngân hàng….
•…
Mô hình hồi quy!
Name Egg- Scales Poisonous Cold- #legs Reptile
laying Blooded
Rắn mang True True True True 0 YES
bành
Rắn đuôi True True True True 0 YES
chuông
Gà True True False False 2 NO
Cá chép False True False False 0 No
Ếch độc True False True False 4 No
Trăn True True False True 0 Yes
Cá sấu True True False True 4 Yes
Con rùa True True False True 4 ?
Ngựa vằn False False False False 4 ?

You might also like