Giới thiệu về phân lớp Phân lớp dữ liệu là kĩ thuật dựa trên tập huấn luyện và những giá trị hay hay là nhãn của lớp trong một thuộc tính phân lớp và sử dụng nó trong việc phân lớp dữ l
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Bài thu hoạch môn
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Đề tài:
ỨNG DỤNG PHÂN LỚP DỮ LIỆU NAIVEBAYES TRONG KHAI PHÁ DỮ LIỆU
GVHD: GS.TSKH Hoàng Kiếm HVTH: Vũ Thị Hường
MSHV: CH1301089
Trang 2TP HCM, Tháng 10 năm 2014
Mục Lục
Mục Lục 1
Đặt vấn đề 2
Phần I: TỔNG QUAN VỀ DATAMING 3
1 Data ming là gì ? 3
2 Nhiệm vụ của Data Mining 3
3 Ứng dụng của khai phá dữliệu 4
Phần II: KỸ THUẬT PHÂN LỚP 6
1 Giới thiệu về phân lớp 6
2 Phân lớp Bayes 6
2.1 Giới thiệu thuật tốn Nạve Bayes 7
2.2 Áp dụng cho bài tốn phân loại văn bản 8
a Huấn luyện: tính P(Ci) và P(xk ∨Ci) 8
b Phân lớp: 9
c Ví dụ : 9
Phần III: Demo thuật tốn 12
1.Xét bài tốn 12
2 Mơ tả ứng dụng 13
3 Hướng dẫn sử dụng 14
4 Kết luận – hướng phát triển 16
Tài liệu tham khảo 17
Trang 3Đặt vấn đề
Ngày nay với sự phát triển của nền kinh tế, sự phát triển của các doanh nghiệp cộng với sựbùngnổtronglĩnhvựctruyềnthôngvà côngnghệ - Nguồncungcấpthôngtinđa dạng và rộng lớn; tínhcạnhtranhgiữacácdoanhnghiệpngày càng cao.Dữ liệu được lưu trữ và thu thậpngày càng nhiều nhưng người ra quyết định trong quản lý, kinh doanh lại cầnnhững thông tin dưới dạng “tri thức” rút ra từ những nguồn dữ liệu đó hơn làchính những dữ liệu đó cho việc ra quyết định Do đó, trong doanh nghiệp vấn đề quản lý được xem như là một nghệ thuật trong việc ra quyết định Việc ứng dụng các hệ hỗ trợ ra quyết định giúp các doanh nghiệp xây dựng chiến lược phát triển sản xuất kinh doanh đúng đắn của mình trong tương lai, mang lại hiệu quả to lớn cho doanh nghiệp, tổ chức, v.v
Một trong những khía cạnh của Hệ hỗ trợ ra quyết định đó chính là phân lớp dữ liệu trong Data mining (khai phá dữ liệu) Trong phạm vi bài thu hoạch này, em xin trình bày một phần nhỏ trong chủ đề Data mining đó là phân lớp dữ liệu, dự đoán sự kiện dựa vào lý thuyết Bayes Lý thuyết này nói về việc tính xác suất của sự kiện dựa vào các kết quả thống
kê các sự kiện trong quá khứ
Em xin gửi lời cảm ơn chân thành đến GS.TSKH Hoàng Kiếm, là người đã trực tiếp giảng dạy, truyền đạt những kiến thức liên quan tới môn học, cung cấp thông tin, tư liệu cho chúng em Tuy có nhiều cố gằng, nhưng với lượng kiến thức còn hạn hẹp không tránh khỏi thiếu sót trong quá trình thực hiện, mong nhận được ý kiến đóng góp của thầy để em có thể hoàn thiện hơn
Em xin chân thành cảm ơn!
Học viên
Vũ Thị Hường
Trang 4Phần I: TỔNG QUAN VỀ DATAMING
1 Data ming là gì ?
Khái niệm về khai phá dữ liệu (Data Mining) hay phát hiện tri thức (Knowledge Discovery) có rất nhiều cách diễn đạt khác nhau nhưng về bản chất đó là quá trìnhtự động trích xuất thông tin có giá trị (thông tin dự đoán – Predictive Information) ẩn chứa trong khối lượng dữ liệu khổng lồ trong thực tế
Data mining nhấn mạnh 2 khía cạnh chính đó là khả năng trích xuất thông tin có íchTự
động (Automated) vàthông tin mang tính dự đoán (Predictive).
Data Mining liên quan chặt chẽ đến các lĩnh vực sau:
Statistics : Thống kê
Machine Learning : Máy học
Databases: Cơ sở dữ liệu
Visualization: Trực quan hóa (giúp dữ liệu dễ hiểu, dễ sử dụng)
Các lĩnh vực của Data ming
2.Nhiệm vụ của Data Mining
Nhiệm vụ của data mining có thể phân thành 2 loại chính đó làdự đoán
(Predictive) và mô tả (Descriptive).
Các chức năng chính của khai phá dữ liệu
Mô tả khái niệm (concept description): thiên về mô tả, tổng hợp và tóm tắt khái niệm Ví dụ: tóm tắt văn bản
Luật kết hợp (association rules): là dạng luật biểu diễn tri thứ ởdạng khá đơn giản Ví dụ: “60 % nam giới vào siêu thịnếu mua bia thì có tới 80% trong số họ
Trang 5sẽ mua thêm thịt bò khô” Luật kết hợp được ứng dụng nhiều trong lĩnh vực kính doanh, y học, tin-sinh, tài chính & thịtrường chứng khoán, v.v
Phân lớp và dự đoán (classification & prediction): xếp một đối tượng vào một trong những lớp đã biết trước Ví dụ: phân lớp vùng địa lý theo dữliệu thời tiết Hướng tiếp cận này thường sửdụng một sốkỹthuật của machine learningnhư cây quyết định (decision tree), mạng nơron nhân tạo (neural network), v.v Người tacòn gọi phân lớplà học có giám sát (học có thầy)
Phân cụm (clustering): xếp các đối tượng theo từng cụm (số lượng cũng như tên của cụm chưa được biết trước Người ta còn gọi phân cụmlà học không giám sát)
Khai phá chuỗi (sequential/temporal patterns): tương tựnhưkhai phá luật kết hợp nhưng có thêm tính thứtựvà tính thời gian Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thịtrường chứng khoán vì nó có tính dự báo Dưới đây là một số thuật toán phổ biến được dùng trong Data Mining
Decision tree: Cây quyết định (Classification Task)
Nearest Neighbor: Láng giềng gần nhất (Classification Task)
Neural Network: Mạng Neural (Classification and Clustering Task)
Rule Induction: Luật qui nạp (Classification Task)
K-Means: Thuật toán K-Means (Clustering Task)
Các thuật toán phổ biến trong Data ming
3 Ứng dụng của khai phá dữliệu
Data Mining tuy là một hướng tiếp cận mới nhưng thu hút được rất nhiều sựquan tâm của các nhà nghiên cứu và phát triển nhờvào những ứng dụng thực tiễn của nó Chúng ta có thểliệt kê ra đây một số ứng dụng điển hình:
Phân tích dữliệu và hỗtrợra quyết định (data analysis & decision support)
Trang 6 Điều trịy học (medical treatment)
Text mining & Web mining
Tin-sinh (bio-informatics)
Tài chính và thịtrường chứng khoán (finance & stock market)
Bảo hiểm (insurance)
Nhận dạng (pattern recognition)
…
Trang 7Phần II: KỸ THUẬT PHÂN LỚP
1 Giới thiệu về phân lớp
Phân lớp dữ liệu là kĩ thuật dựa trên tập huấn luyện và những giá trị hay hay là nhãn
của lớp trong một thuộc tính phân lớp và sử dụng nó trong việc phân lớp dữ liệu mới Phân lớp cũng là tiên đoán loại lớp của nhãn Bên cạnh kĩ thuật phân lớp có một hình thức tương
tự là kĩ thuật tiên đoán, kĩ thuật tiên đoán khác với phân lớp ở chỗ phân lớp chỉ liên quan đến
tiên đoán loại lớp của nhãn còn kĩ thuật tiên đoán mô hình những hàm đánh giá liên tục Kĩ
thuật phân lớp được tiến hành bao gồm 2 bước : Xây dựng mô hình và sử dụng mô hình
Xây dựng mô hình : là mô tả một tập những lớp được định nghĩa trước trong đó :
mỗi bộ hoặc mẫu được gán thuộc về một lớp được định nghĩa trước như là được xát định bởi thuộc tính nhãn lớp, tập hợp của những bộ được sử dụng trong việc sử dụng
mô hình được gọi là tập huấn luyện Mô hình được biểu diễn là những luật phân lớp, cây quyết định và những công thức toán học
Sử dụng mô hình : Việc sử dụng mô hình phục vụ cho mục đích phân lớp dữ liệu
trong tương lai hoặc phân lớp cho những đối tượng chưa biết đến Trước khi sử dụng
mô hình người ta thường phải đánh giá tính chính xát của mô hình trong đó : nhãn được biết của mẫu kiểm tra được so sánh với kết quả phân lớp của mô hình, độ chính xác là phần trăm của tập hợp mẫu kiểm tra mà phân loại đúng bởi mô hình, tập kiểm tra là độc lập với tập huấn luyện
Phân lớp là một hình thức học được giám sát tức là : tập dữ liệu huấn luyện (quan sát, thẩm định ) đi đôi với những nhãn chỉ định lớp quan sát, những dữ liệu mới được phân lớp dựa trên tập huấn luyện
Ngược lại với hình thức học được giám sát là hình thức học không được giám sát lúc đó nhãn lớp của tập dữ liệu huấn luyện là không được biết đến
Các giải thuật phân loại dữ liệu:
Phân loại với cây quyết định (decision tree)
Phân loại với mạng Bayesian
Phân loại với mạng neural
Phân loại với k phần tử cận gần nhất (k-nearest neighbor)
Phân loại với suy diễn dựa trên tình huống (case-based reasoning)
Phân loại dựa trên tiến hoá gen (genetic algorithms)
Phân loại với lý thuyết tập thô (rough sets)
Phân loại với lý thuyết tập mờ (fuzzy sets) …
2 Phân lớp Bayes
Trang 82.1 Giới thiệu thuật tốnNạve Bayes
Trong lĩnh vực Data Mining, Bayes Theorem (hay Bayes’ Rule) là kỹ thuật phân lớp dựa vàoviệc tính xác suất cĩ điều kiện Bayes’ Ruleđược ứng dụng rất rộng rãi bởi tính dễ hiểu và dễ triển khai
Nạve Bayes 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]…
Thuật tốn Nạve Bayes dựa trên định lý Bayes được phát biểu như sau:
P (Y|X )= P( XY )
P (X ∨Y ) P(Y ) P( X)
Áp dụng trong bài tố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 ⃗x=(x1, x2, … , x n)
Ci: 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:
P(C i|X)=P(X ∨C i)P(C i)
P(X )
Theo tính chất độc lập điều kiện:
P(X|C i)=∏
k=1
n
P(x k|C i)
Trong đĩ:
P(C i∨X ) là xác suất thuộc phân lớp i khi biết trước mẫu X
P(C i) xác suất là phân lớp i
P(x k∨C i) xác suất thuộc tính thứ k mang giá trị xk khi đã biết X thuộc phân lớp i Các bước thực hiện thuật tốn Nạve Bayes:
Bước 1 : Huấn luyện Nạve Bayes (dựa vào tập dữ liệu), tính P(C i) và P(x k∨C i)
Bước 2 : Phân lớp X new=(x1, x2, … , x n), ta cần tính xác suất thuộc từng phân lớp khi đã biết trước Xnew Xnew được gán vào lớp cĩ xác suất lớn nhất theo cơng thức:
Trang 9 max
C i ∈C(P(C i)∏
k=1
n
P(x k|C i) )
2.2 Áp dụng cho bài tốn phân loại văn bản
Ý tưởng: Ý tưởng cơ bản của cách tiếp cận Nạve Bayes là sử dụng xác suất cĩ điều
kiện giữa từ và chủ đề để dự đốn xác suất chủ đề của một văn bản cần phân loại Điểm quan trọng của phương pháp này chính là ở chỗ giả định rằng sự xuất hiện của tất cả các từ trong văn bản đều độc lập với nhau Giả định đĩ làm cho việc tính tốn NB hiệu quả và nhanh chĩng hơn các phương pháp khác vì khơng sử dụng việc kết hợp các từ để đưa ra phán đốn chủ đề Kết quả dự đốn bị ảnh hưởng bởi kích thước tập dữ liệu, chất lượng của khơng gian đặc trưng…
Hướng dẫn cài đặt: Mơ tả vector đặc trưng của văn bản: Là vector cĩ số chiều là số đặc
trưng trong tồn tập dữ liệu, các đặc trưng này đơi một khác nhau Nếu văn bản cĩ chứa đặc trưng đĩ sẽ cĩ giá trị 1, ngược lại là 0
Thuật tốn gồm 2 giai đoạn huấn luyện và phân lớp:
a Huấn luyện: tính P(C i) và P(x k∨C i)
Đầu vào:
Các vector đặc trưng của văn bản trong tập huấn luyện (Ma trận MxN, với M là
số vector đặc trưng trong tập huấn luyện, N là số đặc trưng của vector)
Tập nhãn/lớp cho từng vector đặc trưng của tập huấn luyện
Đầu ra:
Các giá trị xác suất P(C i) và P(x k∨C i)
Cơng thức tính P(C i) đã làm trơn Laplace
P(C i)= |docs i|+1
|totaldocs|+m
Trong đĩ:
|docsi|: số văn bản của tập huấn luyện thuộc phân lớp i
|total docs|: số văn bản trong tập huấn luyện
m số phân lớp
Cài đặt:
Khởi tạo mảng A, B cĩ kích thước m
Duyệt qua các văn bản trong tập dữ liệu, đếm số văn bản trong mỗi phân lớp lưu vào A
Tính xác suất cho từng phân lớp theo cơng thức trên và lưu vào mảng B
Trang 10Công thức tính P(x k∨C i) đã làm trơn Laplace:
P(x k|C i)=|docs x k i|+1
|docs i|+d k
Trong đó:
|docs x k i|: Số văn bản trong trong phân lớp i có đặc trưng thứ k mang giá trị xk (hay số văn bản trong lớp i, có xuất hiện/không xuất hiện đặc trưng k)
|docs i|: Số văn bản của tập huấn luyện thuộc phân lớp i
d k: Số giá trị có thể có của đặc trưng thứ k
Cài đặt:
Với vector đặc trưng như mô tả bên trên, dk ở đây mang giá trị là 2, tương ứng với xuất hiện và không xuất hiện Do chỉ có 2 giá trị, ta có thể tính nhanh xác suất không xuất hiện theo công thức P ( ´x )=1−P(x )
Khởi tạo mảng 3 chiều C, chiều 1 có kích thước là m (số phân lớp), chiều 2 có kích thước là N (số đặc trưng), chiều 3 có kích là 2 (dk) để lưu các giá trị
P(x k∨C i)
Duyệt qua các văn bản trong tập dữ liệu, tiến hành thống kê các chỉ số cần thiết
để tính xác suất P(x k|C i) theo công thức trên và lưu vào mảng C
b Phân lớp:
Đầu vào:
Vector đặc trưng của văn bản cần phân lớp
Các giá trị xác suất P(C i) và P(x k∨C i)
Đầu ra:
Nhãn/lớp của văn bản cần phân loại
Công thức tính xác suất thuộc phân lớp i khi biết trước mẫu X
P(C i|X)=P(C i)∏
k =1
n
P(x k|C i)
Dựa vào vector đặc trưng của văn bản cần phân lớp, áp dụng công thức trên tính xác suất thuộc từng phân lớp cho văn bản, và chọn ra lớp có xác suất cao nhất
c Ví dụ :
Trang 11Ví dụ sau đây minh họa việc sử dụngNạve Bayes trong việc phân lớp dữ liệu Ví dụ 1:
Cĩ training data về thời tiết như sau:
Sử dụng Nạve Bayes Classifier để xác định khả năng đến chới thể thao (Play = “yes”
hay “no”) với thời tiết của ngày quan sát được như sau:
Từ Training data ta cĩ dữ liệu như sau:
Vì thuộc tính phân lớp Play chỉ cĩ 2 giá trị là “yes” (nghĩa là cĩ đến chơi thể thao) và
“no”(khơng đến chơi thể thao) nên ta phải tính Pr(yes|E) và Pr(no|E) như sau Trong đĩ E là
dữ liệu cần phân lớp (dự đốn):
Trang 12Vì P(“no”) > P(“yes”) nên kết quả dự đoán Play =“no”
Trang 13Phần III: Demo thuật toán
1.Xét bài toán.
Biểu diễn bài toán phân loại (classification problem)
Một tập học D_train, trong đó mỗi ví dụ học x ược biểu diễn là một vectơ n chiều: (x1, x2, , xn)
Một tập xác định các nhăn lớp: C={c1, c2, , cm }
Với một ví dụ (mới) z, z sẽ được phân vào lớp nào?
Mục tiêu: Xác định phân lớp có thể (phù hợp) nhất đối với z
Cmap = argmax P(ci | z) với c∈C
Cmap = argmax P(ci |z1,z2, ,zn)
Cmap = argmax [ P(z1,z2, , zn | ci ).P(ci) ] / P(z1,z2, , zn) (bởi định lý Bayes)
Bài toán: Một sinh viên trẻ với mức thu nhập trung bình và mức đánh giá tín dụng b́ình
thường sẽ mua một máy tính hay không?
Cho tập dữ liệu mẫu (Traning data) như sau:
Biểu diễn bài toán phân loại:
Trang 14 Ví dụ tập z= (Age=Young, Income = Medium, Student = Yes, Credit_Rating = Fair)
Có 2 phân lớp có thể: c1 (“Mua máy tính”) và c2 (“Không mua máy tính”)
Tính giá trị xác suất trước cho mỗi phân lớp:
P(c1 ) = 9/14
P(c2 ) = 5/14
Tính giá trị xác suất của mỗi giá trị thuộc tính đối với mỗi phân lớp:
P(Age = Young|c1 ) = 2/9; P(Age = Young|c2 ) = 3/5
P(Income = Medidium|c1 ) = 4/9; P(Income = Medium|c2 ) = 2/5
P(Student=Yes|c1 ) = 6/9; P(Student=Yes|c2 ) = 1/5
P(Credit_Rating=Fair|c1 ) = 6/9; P(Credit_Rating=Fair|c2 ) = 2/5
Tính toán xác suất có thể xảy ra (likelihood) của ví dụ đối với mỗi phân lớp:
Đối với phân lớp c1
P(z|c1) = P(Age=Young|c1 ) x P(Income=Medium|c1 ) x P(Student=Yes|c1 ) x
P(Credit_Rating=Fair|c1 )= (2/9)x (4/9) x (6/9)x (6/9) = 0.044
Đối với phân lớp c2
P(z|c2) = P(Age=Young|c2) x P(Income=Medium|c2) x P(Student=Yes|c2 ) x
P(Credit_Rating=Fair|c2 ) = (3/5) x (2/5)x (1/5)x (2/5) = 0.019
Xác định phân lớp có thể nhất (the most probable class)
Đối với phân lớp c1: P(c1) x P(z|c1 ) = (9/14) x (0,044) = 0.028
Đối với phân lớp c2: P(c2) x P(z|c2) = (5/14) x (0.019) = 0.007
0.028 > 0.007→Kết luận: Anh ta (z) sẽ mua một máy tính.
2 Mô tả ứng dụng
Thuật toán được cài đặt trên ngôn ngữ lập trình C#
Dữ liệu đầu vào tập dữ liệu huấn luyện:
Trang 15Tập dữ liệu huấn huyến
3 Hướng dẫn sử dụng
Chạy file bayes.exe
Click chọn Nhập dữ liệu mẫu
Trang 16Chọn mẫu đánh giá đánh giá.
Trang 174 Kết luận – hướng phát triển
Kết quả demo mới chỉ phản ảnh được ví dụ nhỏ trong đời sống, chưa áp dụng được vào thực tế Trong thời gian tới em sẽ cố gắng tìm hiểu và phát triển hơn nữa để ứng dụng có thể được triển khai trong thực tế
1