Tải bản đầy đủ (.pdf) (10 trang)

Tìm hiểu sơ bộ về Mô hình phân lớp dữ liệu cơ bản Naive Bayes

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (248.55 KB, 10 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC - KỸ THUẬT MÁY TÍNH

CẤU TRÚC RỜI RẠC CHO KHOA HỌC MÁY TÍNH
Bài tập lớn

Mô hình Bayes cho bài toán phân lớp

GVHD:
SV:

Lê Hồng Trang
Nguyễn Văn Biên - 1811562
Lê Ngọc Hiếu - 1812164
Nguyễn Khắc Đạo - 1811842
Nguyễn Văn Khang - 1812554
Nguyễn Duy Kiên - 1812704

TP. HỒ CHÍ MINH, THÁNG 12/2018


Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

Mục lục
1 Giới thiệu bài toán

3

2 Cơ sở lý thuyết


2.1 Định lý Bayes (Bayes’s Theorem) . . . . . . . . . . . . .
2.2 Phân loại Na¨ıve Bayes . . . . . . . . . . . . . . . . . . .

3
4
4

3 Phương pháp và kết quả tính toán
3.1 Phương pháp tính . . . . . . . . . . . . . . . . . . . . .
3.2 Thực hiện tính toán và kết quả . . . . . . . . . . . . . .
3.3 Thực hiện lời giải bằng công cụ lập trình . . . . . . . .

6
6
6
7

4 Kết luận

8

Bài tập lớn môn Cấu trúc rời rạc cho KHMT - Niên khóa 2018-2019

Trang 1/9


Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

Báo cáo này là tài liệu trình bày những gì mà nhóm chúng em tìm

hiểu được về đề tài “Mô hình Bayes cho bài toán phân lớp”. Báo cáo
thể hiện các công việc mà nhóm đã làm được bao gồm tìm hiểu về nội
dung phân lớp dữ liệu, mô hình Bayes cho bài toán phân lớp dữ liệu
và ứng dụng của nó để giải bài toán thực tế; tìm hiểu về công cụ lập
trình, công cụ tính toán để hỗ trợ cho việc thực thi và giải quyết bài
toán, mô tả kết quả đầu ra. Nhóm chúng em đã cố gắng tìm hiểu và
đúc kết lại những thông tin chính xác nhất về nội dung mô hình phân
lớp dữ liệu, giải chi tiết và chính xác bài toán thực tế trong đề tài.
Báo cáo sẽ trình bày những cơ sở lí thuyết về phân lớp dữ liệu, mô
hình Bayes cho bài toán phân lớp, giới thiệu về một bài toán thực tế
liên quan đến phân lớp dữ liệu và nêu ra phương pháp giải và kết quả
bài toán. Trong báo cáo còn trình bày các công cụ hỗ trợ giải bài toán,
công cụ lập trình mà nhóm đã tìm hiểu để mô tả cho bài toán phân
lớp dữ liệu. Những thông tin trình bày xuyên suốt trong báo cáo đã
được nhóm tìm hiểu rõ ràng, chính xác để đưa ra kết quả bài toán.
Tuy nhiên trong quá trình làm việc không thể tránh khỏi những sai
sót, rất mong nhận được đánh giá và góp ý của thầy.

Bài tập lớn môn Cấu trúc rời rạc cho KHMT - Niên khóa 2018-2019

Trang 2/9


Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

1

Giới thiệu bài toán


Hiện nay, có rất nhiều ví dụ thực tế dễ thấy về phân lớp dữ liệu như
xác định một email có phải “spam” hay không, xác định một tài liệu
thuộc loại văn bản nào, hay dự đoán tội phạm, quản lí khách hàng trên
mạng,. . . Trong số đó một bài toán về lựa chọn của khách hàng trong
các sản phẩm được quan tâm nhiều nhất trong lĩnh vực kinh doanh
cũng như nhu cầu hằng ngày. Vậy thì để hiểu rõ hơn về phân lớp dữ
liệu, chúng ta sẽ phân tích và giải quyết bài toán về xu hướng mua xe
như sau:
Một người (nam hoặc nữ) khi chọn mua một chiếc xe ô tô thường
dựa vào một số đặc điểm của chiếc xe như màu sắc, dòng xe và xuất
xứ. Bảng 1 dưới đây thống kê một số thông tin về việc mua xe như
vậy ở trong thực tế:
TT
1
2
3
4
5
6
7
8
9
10

Màu sắc
Đỏ
Đỏ
Đỏ
Vàng
Vàng

Vàng
Vàng
Vàng
Đỏ
Đỏ

Dòng xe
Thể thao
Thể thao
Thể thao
Thể thao
Thể thao
Du lịch
Du lịch
Du lịch
Du lịch
Thể thao

Xuất xứ
Trong nước
Trong nước
Trong nước
Trong nước
Nhập
Nhập
Nhập
Trong nước
Nhập
Nhập


Người mua
Nam
Nữ
Nam
Nữ
Nam
Nữ
Nam
Nữ
Nữ
Nam

Có rất nhiều bài toán được đặt ra trong việc mua xe, tuy nhiên
chúng ta sẽ phân tích một bài toán đặc trưng sau: Cho một chiếc xe
với các đặc điểm (Đỏ, Du lịch, Trong nước), chiếc xe này sẽ có xu
hướng được chọn bởi một người nam hay nữ?

2

Cơ sở lý thuyết

Bộ phân lớp Bayes là một bộ phân lớp dựa vào thống kê. Nó dùng
để dự đoán xác suất để một bộ dữ liệu rơi vào một lớp dữ liệu cụ thể
nào đó.
Mô hình phân lớp Bayes dựa vào định lí của Bayes. Những nghiên
cứu khi so sánh các thuật toán phân loại đã tìm ra một bộ phân lớp
Bài tập lớn môn Cấu trúc rời rạc cho KHMT - Niên khóa 2018-2019

Trang 3/9



Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

Bayes đơn giản được biết đến với cái tên “na¨ıve Bayes”. Với bộ phân
lớp này, ta giả định rằng ảnh hưởng của một thuộc tính lên một lớp
độc lập với các thuộc tính khác. Giả định này làm đơn giản hóa các
bước tính toán và trở nên hiệu quả hơn với một tập dữ liệu lớn.
2.1

Định lý Bayes (Bayes’s Theorem)

Định lý Bayes được đặt tên theo Thomas Bayes, một nhà thống kê,
nhà triết học người Anh. Trong định lí Bayes:
- Cho X là một bộ dữ liệu, X được xác định bởi các chỉ số được
tạo trên tập gồm n thuộc tính.
- Cho H là giả thiết mà tệp dữ liệu X thuộc về một lớp C nào đó.
Khi phân loại, ta cần xác định P(H|X ) hay còn gọi là xác suất xảy ra
H khi biết X. Nói theo cách khác, ta cần tìm xác suất để tệp dữ liệu
X rơi vào lớp C khi biết các thuộc tính của X.
- P(H|X ) là xác suất hậu nghiệm (posterior probability) của
H dựa trên X. Nó cho phép tính xác suất của sự kiện H khi biết được
X. Ví dụ, giả sử ta có một tập gồm các bộ dữ liệu là các khách hàng
được xác định bằng các thuộc tính là tuổi và thu nhập, và X là một
khách hàng 40 tuổi với thu nhập là 30 triệu đồng. Giả sử H là giả thiết
rằng một khách hàng sẽ mua một chiếc ô tô, vậy P(H|X ) là xác suất
để khách hàng X mua ô tô biết rằng X 40 tuổi và có thu nhập 30
triệu đồng.
- P(H) là xác suất tiên nghiệm (prior probabiliry) của H. Xác
suất này xảy ra không cần bất kì thông tin nào về X. Với ví dụ như

trên thì P(H) là xác suất để một khách hàng mua ô tô (không cần biết
tuổi hay thu nhập).
- Tương tự, ta có P(X |H) là xác suất hậu nghiệm của X dựa
trên H.
- P(X ) là xác suất tiên nghiệm của X, không cần thông tin về H.
Ta có định lý Bayes:
P (X|H) × P (H)
P (H|X) =
P (X)
2.2

Phân loại Na¨ıve Bayes

Bộ phân lớp Na¨ıve Bayes, hoạt động như sau:
Bài tập lớn môn Cấu trúc rời rạc cho KHMT - Niên khóa 2018-2019

Trang 4/9


Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

1. Cho D là tập dữ liệu huấn luyện gồm các bộ dữ liệu và các nhãn
của chúng. Mỗi bộ dữ liệu được miêu tả bởi một vector thuộc tính
n-chiều X = (x1 , x2 , . . . , xn ) diễn tả các phép đo (measurement) trên
tập gồm n thuộc tính lần lượt là A1 , A2 , A3 , . . . An .
2. Giả sử có m lớp C1 , C2 , C3 , . . . Cm . Cho một bộ dữ liệu X, bộ
phân lớp sẽ dự đoán rằng X sẽ thuộc vào lớp có xác suất posterior cao
nhất dựa trên các thuộc tính cho trước của X. Theo đó, bộ phân lớp
Na¨ıve Bayes sẽ dự đoán rằng X thuộc một lớp Ci nào đó nếu:


P (Ci |X) > P (Cj |X) với 1 ≤ j ≤ m, j = i.
Do đó, với bộ dữ liệu gồm m lớp C1 , C2 , C3 , . . . Cm , ta sẽ đi tìm Ci sao
cho P(Ci |X) lớn nhất. Ci được gọi là maximum posterior hypothesis.
Bằng định lý Bayes:
P (X|Ci ) × P (Ci )
P (Ci |X) =
P (X)
3. Bởi vì P(X ) không thay đổi với mọi lớp, ta chỉ cần tối đa hóa
P (X|Ci ) × P (Ci ). Nếu xác suất cho trước của lớp (P (Ci )) chưa được
biết, ta thường giả định rằng các lớp này là như nhau, nghĩa là P (C1 ) =
P (C2 ) = . . . = P (Cm ) và ta sẽ tối đa hóa P (X|Ci ). Nếu không,
ta tối đa hóa cả P (X|Ci ) × P (Ci ). P (Ci ) được tính bằng công thức
P (Ci ) = |Ci,D |/|D| với |Ci,D | là số bộ dữ liệu huấn luyện của lớp Ci
trong D.
4. Cho một tập dữ liệu với rất nhiều thuộc tính, sẽ khó khăn về mặt
tính toán khi ta tính P (X|Ci ). Để tránh điều này, một giả định “ngây
thơ” được đặt ra, đó là giá trị của một thuộc tính độc lập có điều kiện
với các thuộc tính khác, dựa trên nhãn của một lớp của bộ dữ liệu
(nghĩa là không có quan hệ phụ thuộc nào giữa các thuộc tính). Từ
đó, ta có:

P (X|Ci ) =

n
k=1 P (xk |Ci )

= P (x1 |Ci ) × P (x2 |Ci ) × ... × P (xn |Ci )

Ta có thể tính toán dễ dàng các xác suất P (x1 |Ci ), P (x2 |Ci ), . . . ,

P (xn |Ci ) từ các bộ dữ liệu huấn luyện. Với xk là giá trị của thuộc tính
Ak với bộ dữ liệu X.
5. Để dự đoán nhãn của lớp mà X thuộc về, ta cần phải tính
P (X|Ci ) × P (Ci ) với mỗi lớp Ci khác nhau. Sau đó chọn lớp có xác
suất lớn nhất.
Bài tập lớn môn Cấu trúc rời rạc cho KHMT - Niên khóa 2018-2019

Trang 5/9


Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

3

Phương pháp và kết quả tính toán

3.1

Phương pháp tính

Sử dụng định lý Bayes và bộ phân lớp Na¨ıve Bayes. Bộ phân lớp
Na¨ıve Bayes giúp xác định một đối tượng dữ liệu với các thuộc tính
độc lập (a1 , a2 , a3 , . . . , an ) có nhãn v ∗ ∈ V bằng quy tắc:

v ∗ = arg max P (vj )

n
i=1 P (ai |vj )


(1)

Tức là tìm giá trị lớn nhất của :

P (vj ) × P (D|vj ) = P (vj )

n
i=1 P (ai |vj )

= P (vj ) × P (a1 |vj ) × P (a2 |vj ) × ... × P (an |vj )
với D là bộ dữ liệu được miêu tả bởi (a1 , a2 , a3 , . . . , an )
Trong đó, V là tập nhãn của các lớp trong tập dữ liệu cho trước.
Trong (1), xác suất có điều kiện P (ai |vj ) được định nghĩa bởi:

P (ai |vj ) =





nc + mp
n+m

(2)

Trong đó:
n: số điểm dữ liệu huấn luyện có nhãn vj .
nc : số điểm dữ liệu huấn luyện có nhãn vj và thuộc tính ai.
p: ước lượng tiền định (priori estimate) cho P (ai |vj ).
m: kích thước mẫu (equilvalent sample size).


3.2

Thực hiện tính toán và kết quả

• Gọi D(màu = đỏ, dòng = du lịch, xuất xứ = trong nước) là bộ
dữ liệu cần phân loại.
• Từ bảng 1 (tập dữ liệu huấn luyện), ta có bảng số liệu sau:

Bài tập lớn môn Cấu trúc rời rạc cho KHMT - Niên khóa 2018-2019

Trang 6/9


Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

Màu sắc
Nam Nữ
Đỏ
3
2
Vàng
2
3

Dòng xe
Nam
Thể thao
4

Du lịch
1

Nữ
2
3

Xuất xứ
Nam
Trong nước
2
Nhập
3

Nữ
3
2

Người mua
Nam
Nữ
5

5

• Áp dụng công thức (2), với m = 3 và p = 0.5, ta có:
Màu sắc
Nam
Nữ
Đỏ

9/16 7/16
Vàng 7/16 9/16

Dòng xe
Nam
Thể thao 11/16
Du lịch
5/16

Nữ
7/16
9/16

Xuất xứ
Nam
Trong nước 7/16
Nhập
9/16

Nữ
9/16
7/16

Người mua
Nam
Nữ
1/2

1/2


• Áp dụng công thức (1), ta có:
P(Nam|D) = P(Màu sắc=Đỏ|Nam)×P(Dòng xe=Du lịch|Nam)×P(Xuất
xứ=Trong nước|Nam)×P(Nam)
9
5
7
1
=
×
×
× ≈ 0.038
16 16 16 2
P(Nữ|D) = P(Màu sắc=Đỏ|Nữ)×P(Dòng xe=Du lịch|Nữ)×P(Xuất
xứ=Trong nước|Nữ)×P(Nữ)
7
9
9
1
=
×
×
× ≈ 0.069
16 16 16 2
Vì 0.069 > 0.038 nên xác suất để người mua chiếc xe có bộ dữ liệu
D(màu = đỏ, dòng = du lịch, xuất xứ = trong nước) sẽ là người nữ
Kết quả: Chiếc xe với các đặc điểm (Đỏ, du lịch, trong nước) sẽ có
xu hướng được chọn bởi nữ.
3.3

Thực hiện lời giải bằng công cụ lập trình


1. Phần mềm dùng để lập trình
Code::Blocks (phiên bản 17.12).
File code: "code-BAYES.cpp" - ngôn ngữ lập trình C++.
2. Giới thiệu về Code::Blocks
Code::Blocks là IDE - Integrated Development Environment, một
môi trường phát triển tích hợp, bao gồm một trình soạn thảo, một
trình dịch (compiler), một trình soát lỗi (debugger). . . giúp đỡ các
lập trình viên trong việc phát triển phần mềm (hoặc vì mục đích học
tập). Code::Blocks phiên bản 17.12 hoạt động được trên hệ điều hành
Windows.
Bài tập lớn môn Cấu trúc rời rạc cho KHMT - Niên khóa 2018-2019

Trang 7/9


Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

3. Dữ liệu đầu vào và dữ liệu đầu ra
a. Dữ liệu đầu vào:
• Chương trình có thể chạy với số lượng bộ dữ liệu nhỏ hơn 2000.
Chương trình chạy được một tập dữ liệu huấn luyện chỉ gồm 4 thuộc
tính: Màu sắc (chỉ gồm “đỏ” và “vàng”), Dòng xe (chỉ gồm “thể thao”
và “du lịch“), Xuất xứ (chỉ gồm “trong nước” và “nhập”), người mua
(chỉ gồm “nam” và “nữ”).
• Nếu dữ liệu nhập vào không thỏa mãn (ví dụ màu xe nhập “xanh“)
thì chương trình sẽ yêu cầu nhập lại. Để thuận tiện cho việc nhập, chúng
ta nên viết sẵn dữ liệu cần nhập ra một file riêng (có thể dùng .txt ,
.docx . . . Ở đây là file "training data.txt") rồi copy vào chương trình.

b. Dữ liệu đầu ra:
• Tập dữ liệu huấn luyện (trình bày dưới dạng bảng).
• Giá trị các đại lượng xác suất cần thiết để tìm kết quả.
• Phép tính để tìm ra kết quả.
• Kết quả: xác định người mua có xu hướng là nam hay nữ.

4

Kết luận

Như đã nói từ đầu, bài toán phân loại là một bài toán quan trọng
trong thực tiễn, nó đem lại hiệu quả lớn lao trong việc tiên đoán, từ
đó có thể xây dựng nên một hệ thống tự động hóa hoạt động chính
xác. Cụ thể trong báo cáo này là Mô hình phân lớp Bayes.
Với phương pháp thống kê dựa trên định lí Bayes và bộ phân lớp
Na¨ıve Bayes ta có thể phân loại dữ liệu theo cách đơn giản mà hiệu
quả bằng việc tối đa hóa xác xuất hậu nghiệm của giả thiết.
Trong bài toán trên, dựa vào lí thuyết, ta đã dự đoán được nhãn
của lớp(Nam hay Nữ) của bộ dữ liệu (ở đây là chiếc xe) sau khi biết
được các thuộc tính (màu sắc, dòng xe, xuất xứ) Sau khi nghiên cứu
mô hình phân lớp Bayes, các kết quả đạt được là:
- Bước đầu hiểu về Machine Learning, các phương pháp phân loại,
và đặc biệt là bộ phân lớp Na¨ıve Bayes.
- Hiểu được các thuật ngữ chuyên ngành xác suất thống kê.
- Giải được bài toán phân lớp cơ bản.

Bài tập lớn môn Cấu trúc rời rạc cho KHMT - Niên khóa 2018-2019

Trang 8/9



Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

Tài liệu
[1] J.Han, M. Kamber, and J. Pei, Data Mining: Concepts and Techniques, 3rd ed., Morgan Kafmann Publishers, 2011 .
[2] Internet.

HẾT !

Bài tập lớn môn Cấu trúc rời rạc cho KHMT - Niên khóa 2018-2019

Trang 9/9



×