Tải bản đầy đủ (.docx) (24 trang)

Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu

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 (322.79 KB, 24 trang )

S dng thut toỏn Cõy quyt nh v Naùve Bayes trong phõn lp d liu
I HC QUC GIA TP. H CH MINH
TRNG I HC CễNG NGH THễNG TIN
BI THU HOCH MễN
MY HC V NG DNG
TI:
S DNG THUT TON
CY QUYT NH V NAẽVE BAYES TRONG
PHN LP D LIU
GVHD : PGS.TS. V Thanh Nguyờn
SVTH : Bựi Lờ Thun
MSSV : CH1301062
Lp : Cao hc khúa 8
Thỏng 03/2014
CH1301062 Trang 1
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
NHẬN XÉT CỦA GIẢNG VIÊN


















CH1301062 Trang 2
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
MỤC LỤC
CH1301062 Trang 3
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
LỜI MỞ ĐẦU
Trong cuộc sống hiện nay, máy tính đã trở thành công cụ đắc lực hỗ trợ con
người giải quyết nhiều vấn đề thực tế. Tuy nhiên, việc giải quyết những vấn đề vẫn
còn đòi hỏi những can thiệp của con người: ta cần phát biểu những bài toán về dạng
tìm kiếm hoặc dưới dạng logic trước khi sử dụng máy tính làm công cụ giải quyết.
Việc phát biểu tri thức cho vấn đề thông thường đòi hỏi chi phí lớn hoặc không thể
thực hiện đầy đủ. Điểm khó khăn này xuất phát từ ngay trong bản chất tri thức của con
người: con người vốn vẫn chưa hiểu biết đầy đủ về các lĩnh vực liên quan đến mình.
Máy học là hướng tiếp cận trong đó thay vì con người phải chỉ ra những tri
thức cần thiết để giải quyết bài toán, máy tính sẽ tự động rút trích tri thức này một
cách từ những dữ liệu được cung cấp. Máy học mô phỏng quá trình học của con người
qua các mức từ đơn giản đến phức tạp: đầu tiên máy tính ghi nhớ những trường hợp
đã xuất hiện và cuối cùng học những trường hợp tổng quát chưa từng xuất hiện.
Trong một bài toán máy học, đầu vào là một tập dữ liệu huấn luyện bao gồm
các mẫu dữ liệu. Mỗi mẫu dữ liệu bao gồm một tập giá trị ứng với các thuộc tính. Tập
thuộc tính được chia làm hai phần: thuộc tính quan sát và thuộc tính kết quả. Mục tiêu
của máy học là tìm một ánh xạ từ thuộc tính quan sát vào thuộc tính kết quả (tìm mối
quan hệ giữa thuộc tính quan sát và thuộc tính kết quả) ứng với tập dữ liệu huấn
luyện. Ánh xạ này sẽ được áp dụng lên những mẫu quan sát mới để rút ra kết quả
tương ứng.
Công nghệMáy học là một trong những phương pháp chính trong khai phá dữ
liệu. Nó được sử dụng trong tiến trình khám phá tri thức.

Một số lợi ích của máy học:
- Các thông tin ngày càng nhiều, hàng ngày ta phải xử lý rất nhiều thông tin
đến từ nhiều nguồn khác nhau. Máy học có thể giúp xứ lý và dự báo các thông tin đó
bằng cách tạo ra các luất sản xuất từ dữ liệu thu thập.
- Ở những nơi không có chuyên gia, máy học có thể giúp tạo ra được các quyết
định từ các dữ liệu có được.
- Các thuật toán máy học có thể giúp xử lý khi dữ liệu không đầy đủ, không
chính xác.
- Máy học giúp thiết kế hệ thống huấn luyện tự động (mạng nơrôn nhân tạo) và
giải mã mối liên hệ giữa các tri thức được lưu trữ trong mạng từ dữ liệu.
Hiện nay, khối lượng thông tin ở các cơ sở dữ liệu, Internet … đã vượt giới hạn
rất nhiều, xét về khả năng nhận thức của con người, do vậy, giải quyết vấn đề tách rút
CH1301062 Trang 4
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
từ khối lượng khổng lồ đó lượng thông tin thực sự cần thiết cho ứng dụng cụ thể, đã
trở nên tuyệt đối cần thiết. Trong số các nhiệm vụ phân tích thông tin có nhiệm vụ
nhận biết mẫu, dự báo, phân tích trí tuệ đối với các dữ liệu (khai thác dữ liệu - Data
Mining) hỗ trợ việc đề ra quyết định, tạo dựng và bổ sung tri thức.
Với những yếu tố trên, ứng dụng máy học trong khai thác dữ liệu thực sự đã trở
thành một ngành nghiên cứu mang lại rất nhiều lợi ích thực tiễn. Nội dung của bài tiểu
luận này tập trung vào việc tìm hiểu phân lớp dữ liệu với các thuật toán phổ biến hiện
nay là cây quyết định và Naïve Bayes.
Em xin gửi lời cám ơn sâu sắc đến PGS.TS. Vũ Thanh Nguyên đã tận tình
giảng dạy, truyền đạt kiến thức, giúp em hiểu hơn về các ứng dụng của máy học, từ đó
tạo cho em định hướng để thực hiện bài thu hoạch này. Tuy nhiên do thời gian nghiên
cứu có hạn nên bài thu hoạch này không thể tránh khỏi những thiếu sót nhất định, em
rất mong nhận được sự góp ý của thầy để có thể hoàn thiện bài thu hoạch một cách tốt
nhất.
CH1301062 Trang 5
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu

CHƯƠNG I : MÁY HỌC
1.1 Khái niệm
Máy học là một cụm từ dùng để chỉ khả năng một chương trình máy tính để
tăng tính thực thi dựa trên những kinh nghiêm đã trải qua hoặc máy học là để chỉ khả
năng một chương trình có thể phát sinh ra một cấu trúc dữ liệu mới khác với các cấu
trúc dữ liệu cũ.
Lợi điểm của các phương pháp máy học là nó phát sinh ra các luật tường minh,
có thể được sửa đổi, hoặc được huấn luyện trong một giới hạn nhất định.
Máy học là sự tự động của quy trình học và việc học thì tương đương với việc
xây dựng những luật dựa trên việc quan sát trạng thái trên cơ sở dữ liệu và những sự
chuyển hoá của chúng.Đây là lĩnh vực rộng lớn không chỉ bao gồm việc học từ mẫu,
mà còn học tăng cường, học với “thầy”,
Các thuật toán học lấy bộ dữ liệu và những thông tin quen thuộc của nó khi
nhập và trả về một kết quả câu nói hay một câu ví dụ, một khái niệm để diễn tả những
kết quả học.
Máy học kiểm tra những ví dụ trước đó và kiểm tra luôn cả những kết quả của
chúng khi xuất và học làm cách nào để tái tạo lại những kết quả này và tạo nên những
sự tổng quát hóa cho những trường hợp mới.
Nói chung, máy học sử dụng một tập hữu hạn dữ liệu được gọi là tập huấn
luyện. Tập này chứa những mẫu dữ liệu mà nó được viết bằng mã theo một cách nào
đó để máy có thể đọc và hiểu được. Tuy nhiên, tập huấn luyện bao giờ cũng hữu hạn
do đó không phải toàn bộ dữ liệu sẽ được học một cách chính xác.
Một tiến trình máy học gồm 2 giai đoạn:
- Giai đoạn học (learning): hệ thống phân tích dữ liệu và nhận ra sự mối quan
hệ (có thể là phi tuyến hoặc tuyến tính) giữa các đối tượng dữ liệu. Kết quả của việc
học có thể là: nhóm các đối tượng vào trong các lớp, tạo ra các luật, tiên đoán lớp cho
các đối tượng mới.
- Giai đoạn thử nghiệm (testing): Mối quan hệ (các luật, lớp ) được tạo ra phải
được kiểm nghiệm lại bằng một số hàm tính toán thực thi trên một phần của tập dữ
liệu huấn luyện hoặc trên một tập dữ liệu lớn.

CH1301062 Trang 6
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
1.2Phân loại
Các thuật toán máy học được chia làm 3 loại: học giám sát, học không giám sát
và học nửa giám sát
1.2.1Học có giám sát(Supervised Learning)
Đây là cách học từ những mẫu dữ liệu mà ở đó các kỹ thuật máy học giúp hệ
thống xây dựng cách xác định những lớp dữ liệu. Hệ thống phải tìm một sự mô tả cho
từng lớp (đặc tính của mẫu dữ liệu).
Người ta có thể sử dụng các luật phân loại hình thành trong quá trình học và
phân lớp để có thể sử dụng dự báo các lớp dữ liệu sau này.
Thuật toán học có giám sát gồm tập dữ liệu huấn luyện M cặp:
S = {(x
i
, c
j
)| i=1,…,M; j=1,…,C}
Các cặp huấn luyện này được gọi là mẫu, với
x
i
là vector n-chiều còn gọi là vector đặc trưng,
c
j
là lớp thứ j đã biết trước.
Thuật toán máy học giám sát tìm kiếm không gian của những giả thuyết có thể,
gọi là H. Đối với một hay nhiều giả thuyết, mà ước lượng tốt nhất hàm không được
biết chính xác f : x

c.
Tùy thuộc vào mức độ của thuật toán học giám sát, người ta có những mô hình

học giám sát như sau:
- Học vẹt (rote): hệ thống luôn luôn được “dạy” những luật đúng, rồi có học hội
tụ.
- Học bằng phép loại suy (analogy): hệ thống được dạy phản hồi đúng cho một
công việc tương tự, nhưng không xác định. Vì thế hệ thống phải hiệu chỉnh phản hồi
trước đó bằng cách tạo ra một luật mới có thể áp dụng cho trường hợp mới.
- Học dựa trên trường hợp (case-based learning): trong trường hợp này hệ
thống học lưu trữ tất cả các trường hợp, cùng với kết quả đầu ra của chúng. Khi bắt
gặp một trường hợp mới, nó sẽ cố gắng hiệu chỉnh đến trường hợp mới này cách xử lý
trước đó của nó đã được lưu trữ.
- Học dựa trên sự giải thích (explanation-based learning), hệ thống sẽ phân
tích tập hợp những giải pháp nhằm chỉ ra tại sao mỗi phương pháp là thành công hay
không thành công. Sau khi những giải thích này được tạo ra, chúng sẽ được dùng để
giải quyết những vấn đề mới.
CH1301062 Trang 7
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
1.2.2Học Không giám sát (Unsupervised Learning)
Đây là việc học từ quan sát và khám phá. Hệ thống khai thác dữ liệu được ứng
dụng với những đối tượng nhưng không có lớp được định nghĩa trước, mà để nó phải
tự hệ thống quan sát những mẫu và nhận ra mẫu. Hệ thống này dẫn đến một tập lớp,
mỗi lớp có một tập mẫu được khám phá trong tập dữ liệu.
Học không giám sát còn gọi là học từ quan sát và khám phá.
Trong trường hợp chỉ có ít, hay gần như không có tri thức về dữ liệu đầu vào,
khi đó một hệ thống học không giám sát sẽ khám phá ra những phân lớp của dữ liệu,
bằng cách tìm ra những thuộc tính, đặc trưng chung của những mẫu hình thành nên
tập dữ liệu.
Một thuật toán máy học giám sát luôn có thể biến đổi thành một thuật toán máy
học không giám sát (Langley 1996).
Đối với một bài toán mà những mẫu dữ liệu được mô tả bởi n đặc trưng, người
ta có thể chạy thuật toán học giám sát n-lần, mỗi lần với một đặc trưng khác nhau

đóng vai trò thuộc tính lớp, mà chúng ta đang tiên đoán.
Kết quả sẽ là n tiêu chí phân lớp (n bộ phân lớp), với hy vọng là ít nhất một
trong n bộ phân lớp đó là đúng.
1.2.3Học nửa giám sát.
Học nửa giám sát là các thuật toán học tích hợp từ học giám sát và học không
giám sát. Việc học nửa giám sát tận dụng những ưu điểm của việc học giám sát và học
không giám sát và loại bỏ những khuyết điểm thường gặp trên hai kiểu học này.
CH1301062 Trang 8
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
CHƯƠNG II : PHÂN LỚP DỮ LIỆU
2.1Giới thiệu
Phân lớp dữ liệu (classification) là một trong những hướng nghiên cứu chính
của khai phá dữ liệu. Thực tế đặt ra nhu cầu là từ một cơ sở dữ liệu với nhiều thông tin
ẩn con người có thể trích rút ra các quyết định nghiệp vụ thông minh. Phân lớp dự
đoángiátrịcủanhữngnhãnxácđịnh(categoricallabel)haynhữnggiátrịrờirạc (discrete
value), có nghĩa là phân lớp thao tác với những đối tượng dữ liệu mà có bộgiá trị là
biết trước.
Trong những năm qua, phân lớp dữ liệu đã thu hút sự quan tâm các nhà nghiên
cứu trong nhiều lĩnh vực khác nhau như học máy (machine learning), hệ chuyên gia
(expert system), thống kê (statistics) Công nghệ này cũng ứng dụng trong nhiều lĩnh
vực khác nhau như: thương mại, nhà băng, maketing, nghiên cứu thị trường, bảo
hiểm, y tế, giáo dục Phần lớn các thuật toán ra đời trước đều sử dụng cơ chế dữ liệu
cư trú trong bộ nhớ (memory resident), thường thao tác với lượng dữ liệu nhỏ. Một số
thuật toán ra đời sau này đã sử dụng kỹ thuật cư trú trên đĩa cải thiện đáng kể khả
năng mở rộng của thuật toán với những tập dữ liệu lớn lên tới hàng tỉ bản ghi.
2.2 Quy trình phân lớp
Quá trình phân lớp dữ liệu gồm hai bước
2.2.1 Bước thứ nhất (Learning)
+ Quá trình học nhằm xây dựng một mô hình mô tả một tập các lớp dữ liệu hay
các khái niệm định trước. Đầu vào của quá trình này là một tập dữ liệu có cấu trúc

được mô tả bằng các thuộc tính và được tạo ra từ tập các bộ giá trị của các thuộc tính
đó. Mỗi bộ giá trị được gọi chung là một phần tử dữ liệu (data tuple), có thể là các
mẫu (sample), ví dụ (example), đối tượng (object), bản ghi (record) hay trường hợp
(case).
+ Trong tập dữ liệu này, mỗi phần tử dữ liệu được giả sử thuộc về một lớp định
trước, lớp ở đây là giá trị của một thuộc tính được chọn làm thuộc tính gán nhãn lớp
hay thuộc tính phân lớp (class label attribute). Đầu ra của bước này thường là các quy
tắc phân lớp dưới dạng luậtdạngif-then,câyquyếtđịnh,côngthứclogic,haymạngnơron.
CH1301062 Trang 9
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
2.2.2Bước thứ hai (Classification)
+ Bước thứ hai dùng mô hình đã xây dựng ở bước trước để phân lớp dữ liệu
mới. Trước tiên độ chính xác mang tính chất dự đoán của mô hình phân lớp vừa tạo ra
được ước lượng. Holdout là một kỹ thuật đơn giản để ước lượng độ chính xác đó. Kỹ
thuật này sử dụng một tập dữ liệu kiểm tra với các mẫu đã được gán nhãn lớp. Các
mẫu này được chọn ngẫu nhiên và độc lập với các mẫu trong tập dữ liệu đào tạo.
+ Độ chính xác của mô hình trên tập dữ liệu kiểm tra đã đưa là tỉ lệ phần trăm
các các mẫu trong tập dữ liệu kiểm tra được mô hình phân lớp đúng (so với thực tế).
Nếu độ chính xác của mô hình được ước lượng dựa trên tập dữ liệu đào tạo thì kết quả
thu được là rất khả quan vì mô hình luôn có xu hướng “quá vừa” dữ liệu. Quá vừa dữ
liệu là hiện tượng kết quả phân lớp trùng khít với dữ liệu thực tế vì quá trình xây dựng
mô hình phân lớp từ tập dữ liệu đào tạo có thể đã kết hợp những đặc điểm riêng biệt
của tập dữ liệu đó.
+ Do vậy cần sử dụng một tập dữ liệu kiểm tra độc lập với tập dữ liệu đào tạo.
Nếu độ chính xác của mô hình là chấp nhận được, thì mô hình được sử dụng để phân
lớp những dữ liệu tương lai, hoặc những dữ liệu mà giá trị của thuộc tính phân lớp là
chưa biết.
2.3 Các kỹ thuật phân lớp
Trong mô hình phân lớp, thuật toán phân lớp giữ vai trò trung tâm, quyết định
tới sự thành công của mô hình phân lớp. Do vậy chìa khóa của vấn đề phân lớp dữ

liệu là tìm ra được một thuật toán phân lớp nhanh, hiệu quả, có độ chính xác cao và có
khả năng mở rộng được. Trong đó khả năng mở rộng được của thuật toán được đặc
biệt trú trọng và phát triển
Có thể liệt kê ra đây các kỹ thuật phân lớp :
- Phương pháp dựa trên cây quyết định
- Phương pháp dựa trên luật
- Phương pháp Naïve Bayes
- Mạng Neural.
- SVM (hỗ trợ các máy tính vector).
- Tập thô
CH1301062 Trang 10
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
CHƯƠNG III : PHƯƠNG PHÁP PHÂN LỚP DỰA TRÊN CÂY
QUYẾT ĐỊNH
3.1 Định nghĩa
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. Có 3 loại
nút trên cây:
+ Nút gốc.
+ Nút nội bộ: mang tên thuộc tính của Cơ sở dữ liệu.
+ Nút lá: mang tên lớp C
i
.
Ngoài ra, ta có nhánh: mang giá trị thuộc tính.
3.2 Các bước xây dựng cây quyết định
Gồm 2 bước để thực hiện xây dựng cây quyết định
- Bước 1: Thiết lập cây quyết định, bắt đầu từ gốc, kiểm tra các giá trị của
thuộc tính và phân chia các mẫu đệ qui
- Bước 2: Tỉa bớt cây, xác định và loại bỏ bớt các nhánh không ổn định hoặc cá
biệt.
CH1301062 Trang 11

Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
3.3 Thuật toán xây dựng cây quyết định
Ý tưởng chính
- Phương pháp “tham lam” (greedy).
- Phân chia tập mẫu dựa trên thuộc tính cho kết quả tối ưu hóa tiêu chuẩn.
Vấn đề
- Xác định cách phân chia các mẫu dựa trên độ đo sự đồng nhất của dữ liệu.
- Tiêu chuẩn phân chia: tạo ra các nhóm sao cho một lớp chiếm ưu thế trong
từng nhóm.
- Thuộc tính được chọn là thuộc tính cho độ đo tốt nhất, có lợi nhất cho quá
trình phân lớp
- Độ đo để đánh giá chất lượng phân chia là độ đo sự đồng nhất : Entropy
(Information Gain), Information Gain Ratio, Gini Index.
Điều kiện dừng
- Tất cả các mẫu rơi vào một nút thuộc về cùng một lớp.
- Không còn thuộc tính nào có thể dùng để phân chia mẫu nữa.
- Không còn lại mẫu nào tại nút.
3.4 Các độ đo sự đồng nhất
3.4.1 Entropy (Information Gain): ID3 / C4.5
- Chọn thuộc tính có độ lợi thông tin cao nhất.
- Giả sử
+ D: tập huấn luyện
+ C
i,D
: tập các mẫu của D thuộc lớp C
i
với I = {1, …, m}
+ |Ci,D|, |D|: lực lượng của tập C
i,D
và D tương ứng

+ p
i
là xác suất để một mẫu bất kỳ của D thuộc về lớp C
i
- Thông tin kỳ vọng để phân lớp một mẫu trong D là
Info (D) =
- Thuộc tính A có các giá trị : {a
1
, a
2
, …, a
v
}
CH1301062 Trang 12
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
- Dùng thuộc tính A để phân chia tập huấn luyện D thành v tập con {D
1
, D
2
, …,
D
V
}
- Thông tin cần thiết để phân chia D theo thuộc tính A
Info
A
(D) =
- Độ lợi thông tin (information gain) dựa trên phân chia theo thuộc tính A
Gain (A) = Info(D) – Info
A

(D)
3.4.2 Information Gain Ratio
Độ đo Gain có xu hướng thiên vị cho các thuộc tính có nhiều giá trị nên cần
chuẩn hóa độ đo Gain.
Chọn thuộc tính có độ đo Gain Ratio lớn nhất
GainRatio (A) = Gain(A)/SplitInfo
A
(D)
SplitInfo
A
(D) =
3.4.3 Chỉ mục Gini (Gini Index)
- Gồm CART, SLIQ, SPRINT
- Tập huấn luyện D chứa các mẫu của m lớp.
- Chỉ mục Gini của tập D – gini(D) là
gini(D) = với pi là tần suất của lớp C
i
trong D
- Thuộc tính A có các giá trị :{a
1
, a
2
, …,a
v
}
- Dùng thuộc tính A để phân chia tập huấn luyện D thành v tập con {D
1
, D
2
,

…,D
v
}
gini
A
(D) =
- Tại mỗi cấp, chúng ta chọn thuộc tính có chỉ mục Gini nhỏ nhất để phân chia
tập dữ liệu.
3.5Bài toán ứng dụng
Cho tập dữ liệu huấn luyện
ID Bood Type Give birth Can fly Live in water Class
1 Warm Yes No No Mammals
2 Cold No No No Reptiles
CH1301062 Trang 13
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
3 Cold No No Yes Fishes
4 Warm Yes No Yes Mammals
5 Cold No No Some Amphibians
6 Cold No No No Reptiles
7 Warm Yes Yes No Mammals
8 Warm No Yes No Birds
9 Warm Yes No No Mammals
10 Cold Yes No Yes Fishes
11 Cold No No Some Reptiles
12 Warm No No Some Birds
13 Warm Yes No No Mammals
14 Cold No No Yes Fishes
15 Cold No No Some Amphibians
16 Cold No No No Reptiles
17 Warm No No No Mammals

18 Warm No Yes No Birds
19 Warm Yes No Yes Mammals
20 Warm No Yes No Birds
Với tập dữ liệu nêu trên, chúng ta sẽ sử dụng độ đo Gain để tiến hành xây dựng
cây quyết định và rút luật.
3.5.1 Tính độ lợi thông tin lần 1
|D| = 20, C
1
= “mammal”, C
2
= “reptile”, C
3
= “fishes”, C
4
= “amphibians”, C
5
= “birds”
|C
1
,D|=7, |C
2
,D|=4, |C
3
,D|=3, |C
4
,D|=2, |C
5
,D|=4.
Info(D) = -(7/20)log
2

(7/20) – (4/20)log
2
(4/20) – (3/20)log
2
(3/20) –
(4/20)log
2
(4/20)
= 2.201
Tính độ lợi thông tin cho các thuộc tính:
 Info
Boot Type
= (11/20)I
(7,0,0,0,4)
+ (9/20)I
(0,4,3,2,0)
= 1.208
 Gain (bood Type) = 2.201 – 1.208 = 0.993
 Info
give birth
= (7/20)I
(6,0,1,0,0)
+ (13/20)I
(0,4,3,2,0)
= 1.612
 Gain (give birth) = 2.201 – 1.612= 0.589
 Info
can fly
= (4/20)I
(1,0,0,0,3)

+ (16/20)I
(6,4,3,2,1)
= 1.849
 Gain (can fly) = 2.201 – 1.849 = 0.353
CH1301062 Trang 14
Warm Cold
Bood type
Warm
Cold
Bood type
(bảng 2)
Give birth
Yes No
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
 Info
live in water
= (5/20)I
(2,0,3,0,0)
+ (4/20)I
S(0,1,0,2,1)
+ (11/20)I
(5,3,0,0,3)
= 1.389
 Gain (live in water) = 2.201 – 1.389 = 0.812
Chọn “Boodtype” làm thuộc tính phân loại lần 1.
3.5.2 Tính độ lợi thông tin lần 2
Tính độ lợi thông tin bảng Warm của thuộc tính Boodtype
|D| = 11, C
1
= “mammal”, C

2
= “birds”, |D
1
| = 7, |D
2
| = 4
Info (D) = (-7/11) log
2
(7/11) – (4/11)log
2
(4/11) = 0.946
 Info
give birth
= (6/11)I
(6,0)
+ (5/11)I
(1,4)
= 0.328
 Gain (bood Type) = 0.946 – 0.328 = 0.618
 Info
can fly
= (4/11)I
(1,3)
+ (7/11)I
(6,1)
= 0.672
 Gain (can fly) = 0.946 – 0.6727 = 0.274
 Info
live in water
= (2/1)I

(2,0)
+ (1/11)I
(0,1)
+ (8/11)I
(5,3)
= 0.694
 Gain (live in water) = 0.946 – 0.694 = 0.252
Chọn “Give birth” làm thuộc tính phân loại cho bảng Warm của thuộc tính
Bood type
CH1301062 Trang 15
Warm
Cold
Bood type
Give birth
Yes
No
Live in water
Yes
Some No
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
 Tính độ lợi thông tin bảng Cold của thuộc tính Bood type
|D| = 9, C
1
= “Reptiles”, C
2
= “Fishes”, C
3
= “Amphibians”, |D
1
| = 4, |D

2
| = 3, |
D
3
| = 2
Info (D) = (-4/9) ) log
2
(4/9) – (3/9)log
2
(3/9) – (2/9)log
2
(2/9)= 1.530
 Info
give birth
(D)= (1/9)I
(0, 1, 0)
+ (8/9)I
(4, 2, 2)
= 1.333
 Gain (bood Type) = 1.530 – 1.333 = 0.197
 Info
can fly
(D)= 0 + (9/9)I
(4,3,2)
= 1.530
 Gain (can fly) = 0
 Info
live in water
(D)= (3/9)I
(0,3,0)

+ (3/9)I
(1,0,2)
+ (3/9)I
(3,,0,0)
= 0.306
 Gain (live in water) = 1.530 – 0.306 = 1.224
Chọn “Live in Water” làm thuộc tính phân loại cho bảng Cold của thuộc tính
Bood type.
CH1301062 Trang 16
Warm
Cold
Bood type
Give birth
Yes No
Live in water
Yes
Some
No
Fishes Fishes
Amphibians
Class
Rep$les
(Bảng 1.2)
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
Như vậy ta có cây như sau:
 Tính độ lợi thông tin cho bảng 1.2
C
1
= “mammal”, C
2

= “birds”
|D| = 5, |D
1
| = 1, |D
2
| = 4
Info(D) = -(1/5)log
2
(1/5) – (4/5) log
2
(4/5) = 0.722
 Info
can fly
= (3/5)I
Yes(0,3)
+ (2/5)I
No(1,1)
= 0.4
 Gain (can fly) = 0.722 – 0.4 = 0.322
 Info
live in water
= (1/5)I
Some(0,1)
+ (4/5)I
No(1,3)
= 0.649
 Gain (live in water) = 0.722 – 0.649 = 0.073
Chọn “Can Fly” làm thuộc tính phân loại cho bảng 1.2
CH1301062 Trang 17
Warm

Cold
Bood type
Give birth
Yes No
Live in water
Yes
Some
No
Fishes Rep$le
Amphibians
Class
Rep$les
Can 'y
No
Birds
Warm
Cold
Bood type
Give birth
Yes No
Live in water
Yes
Some
No
Fishes Rep$le
Amphibians
Class
Rep$les
Can 'y
Yes

No
Birds
Live in water
Birds
Some No
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
 Cây quyết định thu được
3.5.3 Tập luật
Có 6 luật
+ R1: If bood type = “warm” , give birth = “Yes”, Then Class = “mammals”
+ R2: If bood type = “warm” , give birth = “No”, can fly = “Yes” Then Class
= “Birds”
CH1301062 Trang 18
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
+ R3: If bood type = “warm” , give birth = “No”, can fly = “No”, live in water
= “Some” Then Class = “Birds”
+ R4: If bood type = “warm” give birth = “No”, can fly = “No”, live in water =
“No” Then Class = “Mammals”
+ R5: If bood type = “cold” , live in water = “Yes” Then Class = “Fishes”
+ R6: If bood type = “cold” , live in water = “No” Then Class = “Reptile”
3.6. Nhận xét
4.6.1. Ưu điểm
- Dễ dàng xây dựng cây
- Phân lớp mẫu mới nhanh
- Dễ dàng diển giải cho các cây có kích thước nhỏ
- Độ chính xác chấp nhận được so với các kỹ thuật phân lớp khác trên nhiều tập
DL đơn
4.6.2. Nhược điểm
- Khó giải quyết được những vấn đề có dữ liệu phụ thuộc thời gian liên tục - dễ
xảy ra lỗi khi có quá nhiều lớp chi phí tính toán để xây dựng mô hình cây quyết định

CAO.
CH1301062 Trang 19
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
CHƯƠNG IV : PHƯƠNG PHÁP NAÏVE BAYES
4.1 Sơ lược
Naïve Bayes (NB) là phương pháp phân loại dựa vào xác suất được sử dụng
rộng rãi trong lĩnh vực máy học [Mitchell, 1996] [Joachims, 1997] [Jason, 2001],
được sử dụng lần đầu tiên trong lĩnh vực phân loại bởi Maron vào năm 1961 [Maron,
1961] sau đó trở nên phổ biến dùng trong nhiều lĩnh vực như trong các công cụ tìm
kiếm [Rijsbergen et al, 1970], các bộ lọc email [Sahami et al, 1998]…
4.2 Thuật toán
Thuật toán Naïve Bayes dựa trên định lý Bayes được phát biểu như sau:
Áp dụng trong bài toán phân loại, các dữ kiện gồm có:
 D: tập dữ liệu huấn luyện đã được vector hóa dưới dạng
 C
i
: phân lớp i, với i = {1,2,…,m}.
 Các thuộc tính độc lập điều kiện đôi một với nhau.
Theo định lý Bayes:
Theo tính chất độc lập điều kiện:
Trong đó:
 là xác suất thuộc phân lớp i khi biết trước mẫu X.
 xác suất là phân lớp i.
 xác suất thuộc tính thứ k mang giá trị x
k
khi đã biết X thuộc phân lớp i.
Các bước thực hiện thuật toán Naïve Bayes:
Bước 1: Huấn luyện Naïve Bayes (dựa vào tập dữ liệu), tính và
Bước 2: Phân lớp , ta cần tính xác suất thuộc từng phân lớp khi đã biết trước
X

new
. X
new
được gán vào lớp có xác suất lớn nhất theo công thức
CH1301062 Trang 20
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
4.3 Làm trơn Laplace
Để tránh trường hợp giá trị P(X
k
|C
i
) = 0 do không có mẫu nào trong DL huấn kuyện
thỏa mãn tử số, ta làm trơn bằng cách thêm một số mẫu ảo.
Khi đó:
Làm trơn theo Laplace
Với m – số lớp và r là số giá trị rời rạc của thuộc tính
4.4 Bài toán ứng dụng
Cho tập dữ liệu huấn luyện
ID Outlook Temerature Humidity Windy Play
1 Sunny Hot High Weak No
2 Sunny Hot High Strong No
3 Overcase Hot High Weak Yes
4 Rain Mild High Weak Yes
5 Rain Cool Normal Weak Yes
6 Rain Cool Normal Strong No
7 Overcase Cool Normal Strong Yes
8 Sunny Mild High Weak No
9 Sunny Cool Normal Weak Yes
10 Rain Mild Normal Weak Yes
11 Sunny Mild Normal Strong Yes

12 Overcast Mild High Strong Yes
13 Overcast Hot Normal Weak Yes
14 Rain Mild High Strong No
CH1301062 Trang 21
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
4.4.1 Bước 1
Ước lượng P(C
i
) với C
1
= “yes”, C
2
= “no” và P(x
k
|C
i
). Ta thu được P(C
i
):
P(C1) = 9/14=0.643 P(C2) = 5/14 = 0.357
Với thuộc tính Outlook, ta có các giá trị: sunny, overcast, rain. Trong đó
P(sunny|C
i
) là:
Outlook
P(sunny|yes) = 2/9 P(sunny|no) = 3/5
Tương tự ta có thể tính cho các thuộc tính còn lại.
4.4.2 Bước 2
Ta thực hiện việc phân lớp phân lớp
X

new
= <Outlook = sunny, Temp = cool, Humidity = high, Windy = strong>
Các giá trị cần tính
P(C1)*P(X|C1) = P (C1) * P(Sunny|y) * P (Cool|y)*P(High|y)*P(Strong|y) = 0.005
P(C2)*P(X|C2) = P (C2) * P(Sunny|y) * P (Cool|y)*P(High|y)*P(Strong|y) = 0.021
Vậy X
new
thuộc lớp C2 (“No”)
CH1301062 Trang 22
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
4.4.3 Làm trơn Laplace
Bước 1: Ước lượng P(C
i
) với C
1
= “Yes”, C
2
= “No” và P(x
k
|C
i
) theo công thức
Laplace.
Outlook
P(Sunny|y) = 3/12 P(Sunny|n) = 4/8
P(Overcast|y) = 5/12 P(Overcase|n) = 1/8
P(Rain|y) = 4/12 P(Rain|n) = 3/8
Temperature
P(Hot|y) = 3/12 P(Hot|n) = 3/8
P(Mild|y) = 5/12 P(Mild|n) = 3/8

P(Cool|y) = 4/12 P(Cool|n) = 2/8
Humidity
P(High|y) = 4/11 P(High|n) = 5/7
P(Normal|y) = 7/11 P(Normal|n) = 2/7
Windy
P(Strong|y) = 4/11 P(Strong|n) = 4/7
P(Weak|y) = 7/11 P(Weak|n) = 3/7
Bước 2: Phân loại
Xnew = <Outlook = Overcase, Temp = Cool, Humidity = High, Windy = Strong>.
Ta tính theo công thức làm trơn Laplace
P(C1)*P(X|C1) = P(C1) *P(Overcast|y)*P(Cool|y)*P(High|y)*P(Strong|y) = 0.011
P(C2)*P(X|C2) = P(C2) *P(Overcast|y)*P(Cool|y)*P(High|y)*P(Strong|y) = 0.005
Vậy X
new
thuộc lớp C1 (“Yes”).
4.5 Nhận xét
4.5.1 Ưu điểm
 Dễ dàng cài đặt.
 Thời gian thi hành tương tự như cây quyết định.
 Đạt kết quả tốt trong phần lớn các trường hợp.
4.5.2 Nhược điểm
 Giả thiết về tính độc lập điều kiện của các thuộc tính làm giảm độ chính xác.
CH1301062 Trang 23
Sử dụng thuật toán Cây quyết định và Naïve Bayes trong phân lớp dữ liệu
TÀI LIỆU THAM KHẢO
1. Bài giảng môn Máy học và ứng dụng- PGS.TS. Vũ Thanh Nguyên
2. Giáo trình Thống kê máy tính, Khoa Công nghệ thông tin, Trường ĐHKHTN
Tp.HCM – Lý thuyết ra quyết định Bayes.
3. Bài giảng của Khai thác dữ liệu và ứng dụng - Giảng viên Th.S Nguyễn Hoàng Tú
Anh, ĐH Khoa học Tự nhiên TP.HCM.

4. />5. Naïve Bayes Classifier Slide - Ke Chen, Extended by Longin Jan Latecki
5. C. Apte and S. Weiss. Data mining with decision treesand decision rules. Future
Generation ComputerSystems, 13, 1997.
CH1301062 Trang 24

×