1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG TÌM HIỂU VÀ CÀI ĐẶT THUẬT TOÁN PHÂN LỚP NAIVE BAYES

22 524 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 898,53 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Phân lớp dữ liệu data classification là việc phân loại các mẫu dữ liệu vào một trong các nhóm đã xác định trước sao cho đặc tính của mẫu dữ liệu gần với đặc tính của nhóm đó nhất.. Bước

Trang 1

MỤC LỤC

Trang

LỜI NĨI ĐẦU 1

CHƯƠNG I PHƯƠNG PHÁP PHÂN LỚP BAYES 2

1 Phân lớp là gì? 2

2 Phương pháp phân lớp Bayes 3

2.1 Tổng quan 3

2.2 Định lý Bayes 4

2.3 Phân lớp Nạve Bayes (NBC) 6

2.4 Phương pháp sửa lỗi Laplace 7

2.5 Ưu khuyết điểm 9

2.5.1 Ưu điểm 9

2.5.2 Khuyết điểm 10

CHƯƠNG II CÀI ĐẶT THỬ NGHIỆM VÀ KẾT QUẢ 11

1 Cài đặt thử nghiệm 11

1.1 Các lớp cấu trúc cơ sở dữ liệu (gĩi dataset) 11

1.2 Các lớp mơ hình và thuật tốn phân lớp NaiveBayesian (gĩi model) 12

2 Kết quả thử nghiệm 16

CHƯƠNG III KẾT LUẬN 20

TÀI LIỆU THAM KHẢO 21

Trang 2

LỜI NĨI ĐẦU

Cùng với sự phát triển nhanh chĩng, vượt bậc của ngành cơng nghiệp máy tính, nhu cầu của người dùng đối với máy tính ngày một cao hơn, khơng chỉ giải quyết những cơng việc lưu trữ, tính tốn bình thường, người dùng cịn mong đợi máy tính cĩ khả năng thơng minh hơn, cĩ thể giải quyết vấn đề như con người Theo đĩ, bất kỳ một lĩnh vực nào cũng ứng dụng cơng nghệ tri thức vào quá trình hoạt động, từ đĩ lượng dữ liệu khơng ngừng tăng lên một cách bùng nổ Mỗi cơng ty, doanh nghiệp phải lưu trữ hệ thống cơ sở dữ liệu đa dạng, khổng lồ Tuy nhiên, vấn đề bất cập hiện nay là chúng ta đang “ngập” trong biển dữ liệu nhưng lại “đĩi” tri thức

Chính vì vậy, vấn đề đặt ra là liệu chúng ta cĩ thể khai thác được gì từ những biển

dữ liệu tưởng chừng như vơ nghĩa đĩ? Do đĩ, khai mỏ dữ liệu - Data Mining ra đời như một hướng giải quyết hữu hiệu cho vấn đề trên, giúp khai thác, rút trích ra những thơng tin, tri thức hữu ích từ các cơ sở dữ liệu đĩ Trong lĩnh vực khai phá dữ liệu, phân lớp dữ liệu giúp phân loại các mẫu dữ liệu nhằm mơ tả các lớp quan trọng hay

dự đốn khuynh hướng dữ liệu trong tương lai Qua đĩ, các nhà lãnh đạo sẽ đánh giá các tri thức để xem xét xây dựng chiến lược hoạt động phù hợp trong tương lai

Chính vì lợi ích thực tiễn trên mà phân lớp được ứng dụng rộng rãi trong nhiều lĩnh vực, đặc biệt là thương mại Cĩ nhiều phương pháp phân lớp dữ liệu, trong đĩ Nạve Bayes là phương pháp được triển khai rộng rãi vì sự đơn giản, dễ triển khai và hiệu quả khá cao Tiểu luận này là kết quả lĩnh hội được sau khi học mơn Cơng nghệ tri thức và ứng dụng, đặc biệt là phần khai mỏ dữ liệu Tiểu luận chủ yếu trình bày các

vấn đề chính về thuật tốn phân lớp dữ liệu Nạve Bayes và tiến hành cài đặt thuật tốn này bằng ngơn ngữ Java với gĩi thư viện OpenCSV

Em xin chân thành cảm ơn GS TSKH Hồng Văn Kiếm, giảng viên mơn Cơng

nghệ Tri thức và Ứng dụng, đã truyền đạt cho chúng em những kiến thứ quý báu về mơn học, giúp chúng em cĩ cái nhìn xa hơn về một thời đại cơng nghệ và sự phục vụ của các hệ tri thức

Do kiến thức cịn hạn hẹp, nên tiểu luận khơng tránh khỏi những sai sĩt nhất định Kính mong Thầy gĩp ý giúp em hồn thiện tiểu luận cũng như cũng cố vốn kiến thức của bản thân Em xin chân thành cảm ơn!

Trang 3

CHƯƠNG I PHƯƠNG PHÁP PHÂN LỚP BAYES

1 Phân lớp là gì?

Phân lớp dữ liệu (data classification) là việc phân loại các mẫu dữ liệu vào một trong các nhóm đã xác định trước sao cho đặc tính của mẫu dữ liệu gần với đặc tính của nhóm đó nhất

Phần lớp dữ liệu gồm hai bước: xây dựng mô hình và vận hành mô hình

Bước 1: Xây dựng mô hình nhằm mục tiêu mô tả một tập những lớp được định

nghĩa trước, trong đó mỗi bộ hoặc mẫu sẽ được gán về một lớp đã xác định trước bởi thuộc tính nhãn lớp Tập hợp những bộ được dùng để xây dựng mô hình được gọi là tập

dữ liệu học Mô hình được biểu diễn dưới dạng luật phân lớp, cây quyết định hoặc công thức toán học

Hình 1: Xây dựng mô hình

Bước 2: Vận hành mô hình nhằm mục đích xác định lớp của dữ liệu tương lai

hoặc phân lớp những đối tượng chưa biết Trước khi vận hành mô hình cần đánh giá

độ chính xác của mô hình trong đó các mẫu kiểu kiểm tra được đem so sánh với kết quả phân lớp của mô hình

Độ chính xác (accuracy) của bộ phân lớp trên tập kiểm tra cho trước là phần trăm của các mẫu trong tập kiểm tra được bộ phân lớp xếp lớp đúng

Lưu ý, tập kiểm tra và tập học là hai tập độc lập với nhau

sampl test of number total

sample test classified correctly

Accuracy 

Trang 4

Mục đích của Nạve Bayes: cho biết mẫu dữ liệu mới thuộc vào lớp nào với độ chính xác cao nhất cĩ thể

Dữ liệu đầu vào: tập dữ liệu huấn luyện, mẫu dữ liệu mới cần kiểm tra

Dữ liệu đầu ra: phân lớp của mẫu dữ liệu cần kiểm tra

Thơng thường, giải thuật Nạve Bayes giả định rằng tất cả các thuộc tính (biến) đều quan trọng như nhau và độc lập với nhau Tức là, nếu cĩ sự hiện diện hay vắng mặt của một thuộc tính sẽ khơng làm ảnh hưởng đến sự hiện diện hay vắng mặt của thuộc tính khác

Ví dụ như: một quả táo cĩ thể xem là một quả táo khi nĩ cĩ: màu là đỏ, hình dạng

là cầu, đường kính là khoảng 3 inch, … Nếu thiếu đi thuộc tính hình dạng là cầu thì hai thuộc tính cịn lại vẫn đĩng gĩp độc lập vào xác suất để xác định là quả táo

Mặc dù giải thuật Nạve Bayes khá đơn giản nhưng trong thực tế lại cho kết quả khá tốt Năm 2006, một thống kê so sánh tồn diện cho thấy phân lớp Nạve Bayes cho kết quả tốt hơn các giải thuật phân lớp khác, chẳng hạn như sự tăng của cây cối và rừng tự phát

Lợi thế của Nạve Bayes là cĩ thể ước tính các thơng số (trung bình và phương sai của các thuộc tính – biến ) cần thiết cho việc phân lớp chỉ cần nhờ vào một tập dữ liệu huấn luyện nhỏ Giả định các biến là độc lập với nhau nên khi một thuộc tính thay đổi

Trang 5

thì chỉ cần xác định lại các thơng số thuộc tính đĩ chứ khơng cần phải xác định lại thơng số tồn bộ thuộc tính

Ứng dụng của định lý Bayes thường dựa trên một giả thiết cĩ tính triết học Bayesian probability ngầm định rằng độ bất định và kỳ vọng cĩ thể tính tốn được giống như là xác suất Định lí Bayes được đặt theo tên của Reverend Thomas Bayes (1702—1761), người nghiên cứu cách tính một phân bố với tham số là một phân bố nhị phân Người bạn của ơng, Richard Price, chỉnh sửa và giới thiệu cơng trình năm

1763, sau khi Bayes mất, với tựa đề An Essay towards solving a Problem in the Doctrine of Chances Pierre-Simon Laplace mở rộng kết quả trong bài luận năm 1774 Bayes Thoerem được triển khai rất rộng rãi trong Data Mining vì dễ hiểu, dễ triển khai Tuy nhiên, Bayes Theorem giả thiết rằng các biến trong mơ hình là độc lập nhau Nếu các biến khơng độc lập nhau thì Bayes Theorem cho kết quả thiếu chính xác Hiện nay cĩ rất nhiều Data Mining Software triển khai Nạve Bayes Classifier như Weka, XMMiner, StatSoft,…

2.2 Định lý Bayes

Định lý Bayes cho phép tính xác suất xảy ra của một sự kiện ngẫu nhiên C khi biết

sự kiện liên quan E đã xảy ra Xác suất này được ký hiệu là P(C|E), và đọc là “xác suất của C nếu cĩ E” Đại lượng này được gọi xác suất cĩ điều kiện hay xác suất hậu nghiệm vì nĩ được rút ra từ giá trị được cho của E hoặc phụ thuộc vào giá trị đĩ

posterior t

cons g normalizin

prior likelihood

E P

C P C E P E C

tan _

) (

) ( )

| ( )

| (

Từ đĩ dẫn tới

)()

|()(

)()

|(C E P E P C E P E C P C

 P(C|E): Xác suất xảy ra C khi E đã xảy ra

 P(E|C): Xác suất xảy ra E khi C đã xảy ra Đại lượng này gọi là khả năng

(likelihood) xảy ra E khi biết C đã xảy ra

P(C): Xác suất xảy ra C, khơng quan tâm đến B Đây được gọi xác suất tiên nghiệm (prior), nĩ là "tiên nghiệm" theo nghĩa rằng nĩ khơng quan tâm đến bất kỳ thơng tin nào về B

 P(E): Xác suất xảy ra E, khơng quan tâm đến C Đại lượng này cịn gọi là

hằng số chuẩn hĩa (normalising constant), vì nĩ luơn giống nhau, khơng

Trang 6

phụ thuộc vào sự kiện A đang muốn biết

Theo định lí Bayes, xác suất xảy ra C khi biết E sẽ phụ thuộc vào 3 yếu tố:

 Xác suất xảy ra C của riêng nó (prior), không quan tâm đến E Kí hiệu là P(C) và đọc là xác suất của C Đây được gọi là xác suất biên duyên hay xác suất tiên nghiệm, nó là “tiên nghiệm” (trước khi kiểm chứng) theo nghĩa rằng nó không quan tâm đến bất kỳ thông tin nào về E

 Xác suất xảy ra E của riêng nó, không quan tâm đến C Kí hiệu là P(E) và đọc là “xác suất của E” Đại lượng này còn gọi là hằng số chuẩn hóa (normalising constant), vì nó luôn giống nhau, không phụ thuộc vào sự kiện C đang muốn biết

 Xác suất xảy ra E khi biết C xảy ra Kí hiệu là P(E|C) và đọc là "xác suất của E nếu có C" Đại lượng này gọi là khả năng (likelihood) xảy ra E khi biết C đã xảy ra Chú ý không nhầm lẫn giữa khả năng xảy ra E khi biết C

và xác suất xảy ra C khi biết E

Ví dụ minh họa

75% người mắc bệnh quai bị thì bị cúm Tỉ lệ một người bình thường mắc bệnh quai bị là 1/15000 Tỉ lệ một người bình thường mắc bệnh cúm là 1/1000 Hỏi: Nếu một người đang mắc bệnh cúm thì xác suất người đó cũng mắc bệnh quai bị là bao nhiêu?

 Xác suất một người bình thường mắc bệnh quai bị: P(C) = 1/15000

 Xác suất một người bình thường mắc bệnh cúm: P(E) = 1/1000

Như vậy:

P(E)

P(C)C)

|P(E)

|

E C P

Trang 7

1

)15000

14

3()

|(C E    

P

2.3 Phân lớp Nạve Bayes (NBC)

 Gọi F (field) là các thuộc tính của tập dữ liệu

 Gọi E (evidence) = (E1, E2, E3, …, En) là các giá trị quan sát (thu thập) ứng với từng thuộc tính E là mẫu dữ liệu điều kiện

 Gọi C (class) là thuộc tính phân lớp dữ liệu (C cĩ bao nhiêu giá trị khác nhau thì dữ liệu sẽ phân thành bấy nhiêu lớp tương ứng)

Cơng thức Nạve Bayes như sau:

)(

)

|(

)

|()

|()(

)

|

E P

C C E P C

C E P C C E P C C P E C

E C C P

C C E P C

C P E C C P

)

| ( )

( )

| (

Trong đĩ:

 K: giá trị quy định cho Ck là thuộc tính phân lớp nào

 P(E): tổng xác suất mà mẫu dữ liệu điều kiện E cĩ thể xảy ra trên tất cả các giá trị của thuộc tính phân lớp hay tổng các likelihood(C = Ck)

P

1

)

|(

)( K quy định cho Ck thay đổi lần lượt ứng với từng thuộc tính phân lớp

1

)

|(

: ứng với normalzing_contant = tổng các likelihood(C = Ck)

P(CC k |E): ứng với posterior

Nên ta cĩ thể biểu diễn:

t cons g

normalizin

prior likelihood

posterior

tan_

Trang 8

Mô tả như sau:

Các xác suất tính bằng thống kê tần suất:

 Xác suất một phân lớp xảy ra

P(Ck) = P(C = Ck) = (số mẫu thuộc lớp Ck)/(tổng số mẫu)

 Xác suất một giá trị quan sát (của một thuộc tính) xảy ra ứng với một phân lớp

Ri(ei | Ck) = P(Ei = ei | C = Ck) = (số mẫu trong lớp Ck Ei = ei)/(số mẫu của lớp Ck) trong đó:

+ Ei: thuộc tính thứ i + ei: giá trị trong thuộc tính Ei

2.4 Phương pháp sửa lỗi Laplace

Ei: thuộc tính thứ I; ei: giá trị trong thuộc tính Ei

 Tập dữ liệu huấn luyện ghi nhận các ngày đi chơi và không đi chơi với thời tiết dựa trên các thuộc tính: Ngoài trời, Nhiệt độ, Gió Thuộc tính phân lớp là: đi chơi

Trang 9

Ngày Ngoài trời Nhiệt độ Gió Đi chơi

Cho mẫu dữ liệu điều kiện (E) như sau:

Với mẫu dữ liệu điều kiện như trên, ta có nên đi chơi ?

Từ bảng thống kê tần suất: Rngoài trời(Nắng,Có ) = P(Ngoài trời = Nắng | Có) = 0/2

Vì xác suất không thể bằng 0 nên ta phải dùng kỹ thuật sửa lỗi Laplace Ta sẽ có bảng thống kê tần suất mới như sau:

Bảng thống kê tần suất sau khi sửa lỗi Laplace:

Trang 10

Thuộc tính Giá trị quan sát

302,0P(E)

prior(có)(có)

likelihood)

312,0P(E)

(không)prior

(không)likelihood

 Như vậy: P(C = “Có” | E) < P(C = “Không”|E) nên xác suất lựa chọn không

đi chơi là cao hơn

2.5 Ưu khuyết điểm

2.5.1 Ưu điểm

 Dễ hiểu, cài đặt nhanh do giả định các thuộc tính là độc lập

 Cho kết quả khá chính xác trong thực tế mặc dù chịu những giả thuyết về

Trang 11

tính độc lập thống kê của thuộc tính

 Phân lớp khơng yêu cầu phải ước lượng một cách chính xác

 Cĩ thể ước tính các thơng số (trung bình và phương sai của các thuộc tính – biến ) cần thiết cho việc phân lớp chỉ cần nhờ vào một tập dữ liệu huấn luyện nhỏ

 Chạy được cả trong trường hợp một số mẫu bị thiếu dữ liệu

2.5.2 Khuyết đ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

 Dữ liệu cĩ nhiều thuộc tính dư thừa thì Nạve Bayes khơng cịn hiệu quả

 Dữ liệu liên tục cĩ thể khơng tuân theo phân phối chuẩn

Trang 12

CHƯƠNG II CÀI ĐẶT THỬ NGHIỆM VÀ KẾT QUẢ

Mã nguồn chương trình gồm 2 gĩi: gĩi dataset chứa các cấu trúc dữ liệu cần xử lý

và gĩi model chứa mơ hình và thuật tốn phân lớp Nạve Bayesian

dataset model

Hình 1: Mơ hình 2 gĩi dataset và model

1.1 Các lớp cấu trúc cơ sở dữ liệu (gĩi dataset)

Hình 2: Các lớp cấu trúc dữ liệu – Gĩi dataset

a Lớp Attribute: biểu diễn một thuộc tính trong bộ dữ liệu

- Các thuộc tính:

o String name: tên thuộc tính

o String value: giá trị thuộc tính

Trang 13

o Boolean isPredict: thể hiện thuộc tính này có phải là thuộc tính cần tiên

đoán không (nếu thuộc tính này là thuộc tính cần tiên đoán thì gía trị sẽ được gán bằng true)

b Lớp Itemlist: biểu diễn một dòng trong bộ dữ liệu, bao gồm một tập hợp

o getItem(int i): lấy thuộc tính thứ i trong danh sách

o addItem(Attribute a): thêm thuộc tính a vào danh sách

c Lớp TrainingDataset/TestingDataset: biểu diễn bộ dữ liệu đào tạo/thử

o readFromCSVFile(String filename): đọc dữ liệu từ file csv và đưa vào

bộ dữ liệu đào tạo/thử nghiệm

o setPredictAttID(int i): gán thuộc tính tiên đoán cho bộ dữ liệu đào tạo qua chỉ số i

o setPredictAttName(String name): gán thuộc tính tiên đoán cho bộ dữ liệu qua tên thuộc tính

o getPredicAttID(): lấy chỉ số của thuộc tính tiên đoán

1.2 Các lớp mô hình và thuật toán phân lớp NaiveBayesian (gói model)

Trang 14

Hình 4: Các lớp mô hình (gói model)

a Lớp BayesianAttribute: Chứa một thuộc tính tương ứng với một lớp trong

mô hình phân lớp (ví dụ: thuộc tính Tuổi trong lớp Độ an toàn = Có)

- Các thuộc tính:

o String name: tên thuộc tính

o String className: tên lớp

o ArrayList<values>: danh sách các giá trị của thuộc tính

o HashTable<String, Integer> frequencyTable: bảng băm thống kê tần suất xuất hiện của mỗi giá trị của thuộc tính name xuất hiện trong lớp className: có key là giá trị của thuộc tính, và value là số lần xuất hiện của giá trị key tương ứng với lớp classname

Ví dụ 1: Xét bộ dữ liệu về thông tin khách hàng của một ngân hàng có các

thuộc tính Tuổi, Thu nhập, Nghề nghiệp, Tình trạng sở hữu nhà, Độ an toàn Trong

đó, Độ an toàn là thuộc tính cần tiên đoán, có 2 giá trị Có và Không Vậy thuộc tính

với thuộc tính Tuổi ta có 02 đối tượng BayesianAttribute tương ứng với 2 lớp Có và Không Dưới đây là minh họa về thuộc tính Tuổi tương ứng với lớp Có

Thuộc tính Giá trị

className Co values <Tre, Trung Nien, Gia>

Trang 15

frequencyTable Key Value

Tuoi = Tre | Co 20 Tuoi = Trung Nien |

o laplaceCorrection(): sửa lỗi Laplace cho thuộc tính tương ứng với một

lớp khi không tìm thấy một key (ví dụ: Tuoi = Thanh nien | Co), khi đó

thêm key chưa tìm thấy vào bảng tần suất xuất hiện frequencyTable, gán value bằng 1 cho key đó, và tăng tần suất xuất hiện của tất cả các key còn lại trong bảng frequencyTable lên 1

b Lớp NaiveBayesianModel: biểu diễn một mô hình phân lớp NaiveBayes

đã được đào tạo Mô hình chứa số liệu thống kê về tần suất xuất hiện của tất

cả các giá trị của các thuộc tính tương ứng với các lớp trong dữ liệu đào tạo

- Thuộc tính:

o TrainingDataset trainingData: bộ dữ liệu đào tạo

o ArrayList<String> classes: danh sách tên các lớp cần tiên đoán

o int classCount: số lượng các lớp cần tiên đoán

o ArrayList<BayesianAttribute> countTable: danh sách các đối tượng kiểu BayesianAttribute chứa tần suất xuất hiện của các giá trị thuộc tính tương ứng với các tên lớp trong toàn bộ dữ liệu đào tạo

Ví dụ 2: Với bộ dữ liệu đã nên trong bộ Ví dụ 1, countTable sẽ chứa 8 đối tượng

kiểu BayesianAttribute bao gồm:

Ngày đăng: 20/05/2015, 08:39

HÌNH ẢNH LIÊN QUAN

Hình 1: Xây dựng mô hình - Tiểu luận môn CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG TÌM HIỂU VÀ CÀI ĐẶT THUẬT TOÁN PHÂN LỚP NAIVE BAYES
Hình 1 Xây dựng mô hình (Trang 3)
Hình 2: Vận hành mô hình - Tiểu luận môn CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG TÌM HIỂU VÀ CÀI ĐẶT THUẬT TOÁN PHÂN LỚP NAIVE BAYES
Hình 2 Vận hành mô hình (Trang 4)
Bảng thống kê tần suất : - Tiểu luận môn CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG TÌM HIỂU VÀ CÀI ĐẶT THUẬT TOÁN PHÂN LỚP NAIVE BAYES
Bảng th ống kê tần suất : (Trang 9)
Hình 4: Các lớp mô hình (gói model) - Tiểu luận môn CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG TÌM HIỂU VÀ CÀI ĐẶT THUẬT TOÁN PHÂN LỚP NAIVE BAYES
Hình 4 Các lớp mô hình (gói model) (Trang 14)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w