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

Giới thiệu thuật tốn Nạve Bayes cơ bản

Một phần của tài liệu ĐỒ ÁN: MÔ HÌNH MAPREDUCE VÀ ỨNG DỤNG CỦA BIGDATA (Trang 32 -41 )

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 học máy, đƣợ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 1960, sau đĩ trở nên phổ biến trong nhiều lĩnh vực nhƣ các cơng cụ tìm kiếm, các bộ lọc mail nĩi riêng và phân loại văn bản nĩi chung[11]

.

Ý 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. Nhƣ thế Nạve bayes khơng khai thác sự phụ thuộc của nhiều từ vào trong một chủ đề cụ thể.

Đây là thuật tốn đƣợc xem là đơn giản nhất trong các phƣơng pháp. Bộ phân lớp Bayes cĩ thể dự báo các xác suất là thành viên của lớp, chẳng hạn xác suất mẫu

cho trƣớc thuộc về một lớp xác định. Chúng giả định các thuộc tính là độc lập nhau (độc lập điều kiện lớp).

Thuật tốn Nạve Bayes dựa trên định lý Bayes đƣợc phát biểu nhƣ sau:

| |

Trong đĩ:

Y đại diện một giả thuyết, giả thuyết này đƣợc suy luận khi cĩ đƣợc chứng cứ mới X.

P(X): xác xuất X xảy ra (Xác suất biên duyên của X).  P(Y): xác xuất Y xảy ra (Điều kiện tiên nghiệm của Y).

P(X|Y): xác xuất X xảy ra khi Y xảy ra (xác suất cĩ điều kiện, khả năng của X khi Y đúng).

P(Y|X) : xác suất hậu nghiệm của Y nếu biết X. Áp dụng trong bài tốn phân loại, các dữ kiện cần cĩ :

D: tập dữ liệu huấn luyện đã đƣợc vector hố dƣới dạng ⃗ (x1,x2,…xn)  Ci : tập các tài liệu của D thuộc lớp Ci với i={1,2,3,…}

 Các thuộc tính x1,x2,…xn độc lập xác suất đơi một với nhau.

Thuật tốn Nạve Bayes cơ bản:

Các bƣớc thực hiện thuật tốn Nạve Bayes:

Bƣớc 1 : Huấn luyện Nạve Nayes (dựa vào tập dữ liệu)  Tính xác suất P(Ci)

 Tính xác suất P(xk|Ci)

Bƣớc 2 : Xnewđƣợc gán vào lớp cĩ giá trị lớn nhất theo cơng thức

|

Ví dụ:

Xét một ví dụ kinh điển là ví dụ dự đốn xem quyết định của ngƣời chơi cĩ đi chơi Tennis hay khơng với các điều kiện về thời tiết đã đƣợc biết trƣớc. Trong ví dụ này, ta cĩ một bảng dữ liệu huấn luyện nhƣ sau :

Day Outlook Temp. Humidity Wind Play Tennis

D1 Sunny Hot High Weak No

D2 Sunny Hot High Strong No

D3 Overcast Hot High Weak Yes

D4 Rain Mild High Weak Yes

D6 Rain Cool Normal Strong No

D7 Overcast Cool Normal Weak Yes

D8 Sunny Mild High Weak No

D9 Sunny Cold Normal Weak Yes

D10 Rain Mild Normal Strong Yes

D11 Sunny Mild Normal Strong Yes

D12 Overcast Mild High Strong Yes

D13 Overcast Hot Normal Weak Yes

D14 Rain Mild High Strong No

Bước 1 : Tính các xác suất P(Ci) - Với C1 = “yes” P(C1) = P(“yes”) = 9/14 - Với C2 = “no” P(C2) = P(“no”) = 5/14 Tính xác suất P(xk|Ci)

- Với thuộc tính Outlook : cĩ các giá trị sunny, overcast, rain

P(sunny|yes) = 2/9 P(sunny|no) = 3/5 P(overcast|yes) = 4/9 P(overcast|no) = 0/5 P(rain|yes) = 3/9 P(rain|no) = 2/5

- Với thuộc tính Temp : cĩ các giá trị Hot, Cold, Mild

P(hot|yes) = 2/9 P(hot|no) = 2/5 P(cold|yes) = 3/9 P(cold|no) = 1/5 P(mild|yes) = 4/9 P(mild|no) = 2/5

- Với thuộc tính Humidity : cĩ các giá trị Normal,High

P(normal|yes) = 6/9 P(normal|no) = 1/5

P(high|yes) = 3/9 P(high|no) = 4/5

- Với thuộc tính Wind : cĩ các giá trị Weak, Strong

P(weak|yes) = 6/9 P(weak|no) = 2/5 P(strong|yes) = 3/9 P(strong|no) = 3/5

Bƣớc 2 : Phân lớp Xnew = {sunny, cool, high, strong}

Tính các xác suất

P(yes)*P(Xnew|yes) = 0.005 P(no)* P(Xnew|no) = 0.021 Xnewthuộc vào lớp No

Thuật tốn Nạve Bayes áp dụng trong phân loại văn bản

Để áp dụng thuật tốn Nạve Bayes vào phân loại văn bản, ta cần thực hiện các bƣớc tiền xử lý và vector hố các văn bản trong tập huấn luyện. Các phƣơng pháp tiền xử lý và vector hố đã đƣợc trình bày ở những phần trƣớc. Tuy nhiên, do thuật tốn Nạve Bayes dựa trên xác suất văn bản và xác suất đặc trƣng, do đĩ ở phƣơng pháp này, chúng ta sẽ sử dụng phƣơng pháp vector hố bằng cách đếm tần suất từ (Word frequency weighting).

Sau khi đã vector hố các văn bản, ta cần thực hiện rút chọn các đặc trƣng cho các văn bản huấn luyện. Ta cũng cĩ rất nhiều cách để thực hiện rút chọn đặc trƣng nhƣ sử dụng các độ đo, sử dụng Heuristic, sử dụng từ điển…

Sau khi đã rút chọn đặc trƣng, ta sẽ thực hiện thuật tốn huấn luyện. Ta cĩ thể tĩm tắt các bƣớc nhƣ sau :

Bước 1: Huấn luyện

- Từ tập huấn luyện, ta rút trích tập từ vựng (các đặc trƣng)

- Tính xác suất P(Ci)P(xk|Ci)

| |

docsi : số tài liệu của tập huấn luyện thuộc lớp ci.  total#documents: số tài liệu cĩ trong tập huấn luyện.

|

| | hoặc

|

| |

(làm mịn với luật Laplace)

nk : tổng số từ xk trong tập từ vựng trong lớp Ci.

 |Texti|: tổng số từ vựng (khơng phân biệt đơi một) trong lớp Ci.

Bước 2: Phân lớp

| |( ∏ | | |

)

 positions : tập từ vựng trong bộ huấn luyện.

Ví dụ:

Cĩ tập tài liệu để huấn luyện sau khi đã vector hố (sử dụng phƣơng pháp đơn giản đếm sơ lần xuất hiện) và rút trích đặc trƣng nhƣ sau :

Bộ từ vựng (đặc trƣng) : var, bit, chip, log

Docs Var Bit Chip Log Class

Doc1 42 25 7 56 Math Doc2 10 28 45 2 Comp Doc3 11 25 22 4 Comp Doc4 33 40 8 48 Math Doc5 28 32 9 60 Math Doc6 8 22 30 1 Comp

Bước 1: Huấn luyện

Tính xác xuất các lớp Ci trong tập huấn luyện

Tính xác xuất P(xk|Ci)  Lớp C1= “Comp”. Tổng = 208 | | | |  Lớp C2 = “Math”. Tổng = 388

| | | |

Bước 2: Bƣớc phân lớp với vecto đặc trƣng sau:

Docnew=(23, 40, 15, 50). Xác định cho văn bản mới? Tính các xác xuất:

P(Math )* [P (var |Math )*23*P (bit |Math )*40*P(chip|Math)*15* P(log | Math)*50] = 598.62

P(Comp )* [P (var |Comp )*23*P (bit |Comp )*40*P(chip|Comp)*15* P(log | Comp)*50] = 272.22

Kết quả :

Văn bản Docnew thuộc về lớp Math do max(Pnew )= 598,62

3.2.2. MapReduce hĩa

Phân tích đặc trƣng của Nạve bayes

Cũng tƣơng tự nhƣ thuật tốn k-means, Nạve bayes cũng cĩ vấn đề khi xử lý lƣợng dữ liệu lớn. Trong quá trình học (trainning) mà số lƣợng dữ liệu quá lớn, dẫn đến các vấn đề về thiếu bộ nhớ, tốc độ xử lý. Với lƣợng dữ liệu lớn (khoảng vài triệu bản ghi) thì hầu hết thời gian của Nạve bayes hầu hết là để đếm số lần xuất hiện của các biến, thơng qua đĩ tính các xác suất cần thiết để xây dựng mơ hình.

Cơng việc mất thời gian chủ yếu, khi huấn luyện Nạve Bayes, là tính ba xác suất sau:

 P(Ci)

 P(xk|Ci)

Trong đĩ, đề tính xác xuất P(xk|Ci) ta cần tính thêm tổng số từ thuộc kiểu Ci. Do đĩ, chúng ta phải đếm ba lần.

Chiến lƣợc MapReduce hố

Cĩ nhiều cách khác nhau để áp dụng mơ hình tốn MapReduce vào trong thuật tốn Nạve Bayes. Đầu tiên, chúng ta cĩ thể dùng ba lần MapReduce để đến ba xác

suất tƣơng ứng. Nhƣng việc này tốt ở chỗ cĩ thể chạy song song cả ba job MapReduce một lúc. Tuy vậy chúng cĩ thể dẫn đến xung đột tài nguyên vì nĩ cùng truy cập vào cùng một file.

Cách thứ hai, sử dụng cả ba biến đếm một lúc, để đếm cho ba xác suất. Tuy vậy, đầu vào và đầu ra của hàm mapreduce chỉ cĩ 1 kiểu key/value, do đĩ chúng ta phải tuỳ biến kiểu dữ liệu của key/value khác với các kiểu cơ bản nhƣ đã nhắc ở thuật tốn k-means.

Dễ thấy, việc tính các xác xuất là độc lập, nên chúng ta chia dữ liệu thành nhiều phần nhỏ, sau đĩ các đếm các số lần xuất hiện của từng biến trong hàm map, sau đĩ tập hợp kết quả và tính các xác xuất trong hàm reduce.

Lƣu đồ biểu diễn

Hình 10. Lưu đồ thuật tốn Naive Bayes

Khởi tạo các biến đếm

Lấy một văn bản từ tập tất cả văn bản. Tăng các biến đếm tƣơng ứng cho văn

bản.

Tính lại các xác suất, và tạo mơ hình Xét hết tồn bộ

văn bản? No

Yes

Kết thúc thuật tốn, lƣu trọng tâm

Hình 11. Lưu đồ MapReduce hố Naive Bayes

Khởi tạo các biến đếm Lấy một văn bản từ tập văn bản thứ 1. Tăng các biến đếm tƣơng ứng cho văn bản. Tập hợp các biến đếm thànhh phần Tính các xác suất Hết tập văn bản thứ 1 No

Lƣu lại mơ hình No Yes Lấy một văn bản từ tập văn bản thứ 2. Tăng các biến đếm tƣơng ứng cho văn bản. Hết tập văn bản thứ 2 Lấy một văn bản từ tập văn bản thứ 3. Tăng các biến đếm tƣơng ứng cho văn bản. Hết tập văn bản thứ 3 Yes Yes No No

Cụ thể

Để phân loại văn bản, dữ liệu là các file văn bản đƣợc vector hố, và lƣu dƣới dạng bản. Với số chiều của vector là số từ trong bộ từ vựng. Số lƣợng vector là số lƣợng file văn bản cần trainning.

map (k1, v1) -> list (k2, v2) reduce (k2, list (v2)) -> list (v3)

Các bƣớc Mapreduce, từng bƣớc nhƣ sau:

 Trong hàm Map:

 Đầu vào: cặp k1/v1 biểu diễn các vector văn bản o k1 đƣợc đặt là null

o v1 là vector văn bản  Thực hiện:

o Tạo ra kiểu dữ liệu mới cho khố k2 để phân biệt đƣợc ba kiểu xác suất (sẽ đƣợc nĩi rõ hơn trong Chƣơng 4. Cài đặt trên Hadoop)

o Đếm số lần xuất hiện của từng biến tƣơng ứng  Đầu ra:

o k2 là đặc trƣng cho từng xác xuất

o v2 là số lƣợng lần xuất hiện trong văn bản cho từng xác suất ở k2

 Trong hàm Reduce: Sau khi dữ liệu nhận từ hàm map, chúng sẽ đƣợc sắp xếp lại và những cái nào cùng khố k2 sẽ đƣợc nhĩm lại. Do đĩ, ta tính đƣợc tổng số lần xuất hiện trong tồn bộ dữ liệu đem trainning.

 Đầu vào: k2, list(v2)

o k2, là đặc trƣng cho các xác suất tƣơng ứng

o list(v2) là danh sách các lần mà k2 xuất hiện trên mỗi phần dữ liệu nhỏ khác nhau.

 Thực hiện: Phần này, cơng việc của Reduce đơn giản chỉ là cộng tổng các giá trị trong list(v2)

 Đầu ra:

Một phần của tài liệu ĐỒ ÁN: MÔ HÌNH MAPREDUCE VÀ ỨNG DỤNG CỦA BIGDATA (Trang 32 -41 )

×