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

Phân loại website dựa trên Naive Bayes

13 1,2K 20

Đ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 13
Dung lượng 690,52 KB

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CƠNG NGHỆ THƠNG TIN VÀ TRUYỀN THƠNG  BÀI TẬP LỚN HỌC MÁY Đề tài: Phân loại trang Web dựa vào phương pháp Nạve Bayes Sinh viên thực hiện:

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CƠNG NGHỆ THƠNG TIN VÀ TRUYỀN THƠNG



BÀI TẬP LỚN HỌC MÁY

Đề tài: Phân loại trang Web dựa vào phương pháp Nạve Bayes

Sinh viên thực hiện:

Giảng viên hướng dẫn: TS Nguyễn Nhật Quang

Hà Nội 12-2013

Trang 2

MỤC LỤC

I Giới thiệu chung……… …3

II Cơ sở lý thuyết phân loại Nạve Bayes……… ….3

1 Phân loại Nạve Bayes……… … 3

2 Phân loại văn bản bằng Nạve Bayes……… ………5

III Giải quyết bài tốn……… 6

1 Datasets………6

2 Áp dụng Nạve Bayes cho giải quyết bài tốn thực tế ……… 7

IV Kết quả cài đặt thử nghiệm……… ….8

V Cài đặt và demo……….……… 9

1 Cài đặt……… 9

2.Demo……… 10

VI Kết luận và đánh giá……… 12

VII Tài liệu tham khảo……… 13

Chú dẫn ……… ……….14

Trang 3

I Giới thiệu chung

Đề tài : Phân loại nội dung Web dựa trên phương pháp Nạve Bayes

- Ngơn ngữ lập trình : Java

Thành viên trong nhĩm:

Bùi Văn Tồn 20092754 CNTT2-K54

Đồn Xuân Dũng 20090506 CNTT2-K54

Hứa Mạnh Hùng 20091292 CNTT2-K54

Mục đích:

Phân loại nội dung trang Web thuộc lĩnh vực nào ? Như là Giải trí, Xã hội, Cơng nghệ,…

Yêu cầu :

- Lĩnh vực được phân loại cho trang web phải phù hợp với nội dung của nĩ

- Độ chính xác của tồn hệ thống ở mức chấp nhận được

Kịch bản:

Đưa vào nội dung Web  Hệ thống phân tích nội dung(biểu diễn )  Đánh giá (tính tốn)  Phân loại nội dung

II Cơ sở lý thuyết phân loại Nạve Bayes

1 Phân loại Nạve Bayes

- Là một trong các phương pháp học máy được áp dụng phổ biến nhất trong thực tế

- Dựa trên định lý Bayes

Biểu diễn bài tốn phân loại:

Một tập học D_train, trong đĩ mỗi ví dụ học x được biểu diễn là một véctơ n chiều : (x1, x2, x3, ,xn)

Một tập xác định các nhãn lớp : C={c1, c2, c3,…,cm}

Với mỗi ví dụ (mới) z, thì 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

Trang 4

Giải thuật:

Giai đoạn học, sử dụng một tập học:

Đối với mỗi phân lớp cĩ thể (mỗi nhãn lớp) ci ∈ C

Tính giá trị xác xuất trước : P(ci) Đối với mỗi giá trị thuộc tính xj , tính giá trị xác suất xảy ra của giá trị thuộc tính đố với một phân lớp ci : P(xj|ci)

Giai đoạn phân lớp, đối với một tập ví dụ mới:

- Đối với mỗi phân lớp ci ∈ C , tính giá trị của biểu thức :

P(ci).∏n

j=1 P(xj|ci)

- Xác định phân lớp của z là lớp cĩ thể nhất c* :

c* = arg max P(ci).∏n

j=1 P(xj|ci) (ci ∈ C)

Ví dụ phân lớp Nạve Bayes:

Một sinh viên trẻvới thu nhập trung bình và mức đánh giá tín dụng bình thường sẽmua một cái máy tính?

http://www.cs.sunysb.edu/~cse634/lecture_notes/07classification.pdf

Biểu diễn bài tốn phân loại

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”

Trang 5

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(Income = Medium|c1) = 4/9

P(Student = Yes|c1) = 6/9

P(Credit_rating= Fiar|c1) = 6/9

P(Age = Young|c2) = 3/5

P(Income = Medium|c2) = 2/5

P(Student= Yes|c2) = 1/5

P(Credit_rating= Fair|c2) = 2/5

Tính tốn xác suất cĩ thể xảy ra của ví dụ z đối với mỗi phân lớp

Đối với phân lớp c1

P(z|c1) = P(Age = Young|c1) P(Income = Medium|c1) P(Student=Yes|c1) P(Credit_rating= Fiar|c1) = (2/9).(4/9).(6/9).(6/9) = 0.044

Đối với phân lớp c2

P(z|c2) = P(Age = Young|c2) P(Income = Medium|c2) P(Student=Yes|c2) P(Credit_rating= Fiar|c2) = (3/5).(2/5).(1/5).(2/5) = 0.019

 Kết luận : Anh ta (z) sẽ mua một máy tính

2 Phân loại văn bản bằng Nạve Bayes

Biểu diễn bài tốn phân loại văn bản

Tập học D_train, trong đĩ mỗi ví dụ học là một biểu diễn văn bản gắn với một nhãn lớp: D = {(dk, ci)}

Một tập các nhãn lớp xác định: C= {ci}

Giai đoạn học

Trang 6

Từ tập các văn bản trong D_train, trích ra tập các từ khĩa (keywords/tems): T= {tj}

Gọi D_ci (⊆D_train) là tập các văn bản trong D_train cĩ nhãn lớp ci

Đối với mỗi phân lớp ci

o Tính giá trị xác suất trước của phân lớp ci : 𝑃 𝑐𝑖) =|𝐷𝑐𝑖 |

|𝐷|

o Đối với mỗi từ khĩa tj, tính xác suất từ khĩa tj xuất hiện đối với lớp ci

n(dk, tj) : là số lần xuất hiện của từ khĩa tj trong văn bản dk

Giai đoạn phân lớp đối với một văn bản mới d

Từ văn bản d, trích ra tập T_d gồm các từ khĩa (keywords) tj đã được định nghĩa trong tập T(T_d ⊆ T)

Giả sử : Xác suất từ khĩa tj xuất hiện đối với lớp ci là độc lập đối với vị trí của

từ khĩa đĩ trong văn bản

P(tj ở vị trí k|ci) = P( tj ở vị trí m|ci) , ∀k,m Đối với mỗi phân lớp ci, tính giá trị likelihooh của văn bản d đối với ci

P(ci).∏tj∈T_d P(tj|ci) Phân lớp văn bản d thuộc vào lớp c*

c* = arg max P(ci) ∏tj∈T_d P(tj|ci)

III Giải quyết bài tốn

Bài tốn : Phân loại nội dung Web dựa trên phương pháp Nạve Bayes

1 Datasets

Nội dung web được thu thập ( được lưu vào MySQL) dựa trên bộ webcrawler(1)

Thu thập từ trang http://vietnamnet.vn/ bao gồm:

Lĩnh vực Số bản ghi

Trang 7

Mỗi bản ghi được gán nhãn từ 17 theo quy ước và nội dung của website

2 Áp dụng Nạve Bayes cho giải quyết bài tốn thực tế

Tập học: D_train lấy ra từ tập web đã thu thập được

- D_train ~ 33% tập Datasets

- Để tránh các ví học tập trung, lấy các bản ghi cĩ (id%3)=0

- Gọi D_ci là tập các web trong D_train mà cĩ nhãn lớp ci

Lĩnh vực Số văn bản trong D_train

(~33% tổng số tập web)

Số từ đơi một khác nhau

trong D_c i

Tập D= 1651

Mỗi ví dụ học học được gán nhãn lớp ci (i= 17 )

Giai đoạn học

B1 : Trích ra tập từ khĩa và tần suất xuất hiện của các từ trong từng tập D_ci

Vấn đề xảy ra trong bước này là tập các từ là rất lớn, trung bình khoảng 80.000

- 90.000 từ Nguyên nhân chủ yếu xảy ra vấn đề này là do lập bộ đếm 2 từ văn bản web Để khắc phục tình trạng này ta sẽ chỉ lấy 1.500 từ cĩ 2 kí tự cĩ tần số cao nhất Lý do lấy 1500 từ là vì từ khoảng này các từ mới cĩ ý nghĩa trong việc phân loại mà ta cĩ thể cảm quan bằng mắt thường

B2 : Tính P(ci)

Trang 8

C i P(c i )

1 238/1651~0.144155

2 228/1651~0.138098

3 252/1651~01526348

4 190/1651~0.1150817

5 244/1651~0.147789

6 250/1651~0.1514234

7 249/1651~01508177

B3: Tính P(tj | ci) theo công thức

P(tj | ci) = 𝑇ầ𝑛 𝑠ố 𝑐ủ𝑎 𝑡ừ 𝑡𝑗 𝑡𝑟𝑜𝑛𝑔 𝑡ậ𝑝 𝑤𝑒𝑏 𝑐ó 𝑛ℎã𝑛 𝑙ớ𝑝 𝑐𝑖

𝑇ổ𝑛𝑔 𝑠ố 𝑡ừ đô𝑖 𝑚ộ𝑡 𝑘ℎá𝑐 𝑛ℎ𝑎𝑢 𝑡𝑟𝑜𝑛𝑔 𝑡ậ𝑝 𝐷_𝑐𝑖

Để tránh trường hợp hàm Naive Bayes hội tụ về 0 ta tính theo công thức :

Giai đoạn phân lớp với một văn bản d

B1 : Từ văn bản d, trích ra các từ khóa tj và tần xuất của nó trong d

B2 : Phân lớp văn bản d thuộc vào lớp c*

Do chỉ xét 1.500 từ có tần xuất cao nhất trong tập D_train nên sẽ xảy ra trường hợp :

Có từ trong d mà không được tính xác suất Để giải quyết vấn đề này, trong những trường hợp như thế ta coi P(tj | ci) =1 Nói cách khác, ta bỏ qua từ này

IV Kết quả cài đặt thử nghiệm

Lĩnh vực Gán nhãn sai

(tập huấn luyện 1/3)

Độ chính xác từng lĩnh vực

Độ chính xác toàn hệ thống

99.88 %

Trang 9

Độ chính xác lĩnh vực Xã hội đạt : 99.16 % , những lĩnh vực khác 100%

Xét trên toàn hệ thống : 4/(4961-1651) ~ 99.88 %

Xác định nguyên nhân : Trong 4 văn bản web được gán nhãn là “chính trị” trong khi đúng phải là “xã hội”, nguyên nhân chủ yếu gây ra bởi sự tương đồng giữa hai lĩnh vực này Việc phân tách rõ ràng là tương đối khó, do đó với mức chính xác như trên hoàn toàn có thể chấp nhận được

Một vài kết quả cài đặt khác khi thay đồi kích thước tập huấn luyện

Lĩnh vực Gán nhãn sai

(tập huấn luyện 1/20)

Gán nhãn sai (tập huấn luyện 1/2)

Độ chính xác toàn hệ thống

Nhận xét : Ta có thể thấy để đạt được độ chính xác 0.01% ta phải bỏ ra chi phí khá lớn D_train= 50% Datasets Ngược lại với trường hợp tập huấn luyện nhỏ D_train= 1/20 Datasets lại cho kết quả khá tốt

V Cài đặt và demo

1 Cài đặt

Các lớp được cài đặt

DemTu.java : Trích rút tất cả các từ và tấn suất xuất hiện trong tập học

TapTuVung.java : Trong tập đầu ra ở lớp DemTu.java lấy 1500 kết quả có tần suất cao

nhất và tính tần suất theo phương pháp Naive Bayes

Classify.java : Lớp này sử dụng trong giai đoạn phân lớp

MainUI.java : Lớp này dùng để demo< Phân loại 1 văn bản web cụ thể  đưa ra nhãn

lớp )

Trang 10

2.Demo

Giao diện chính( sử dụng JformDesigner )

Chạy thử nghiệm phân loại thể loại nội dung 1 web đã thu thập trong database

Cách sử dụng : Nhập nội dung web vào “Noi dung Web đã thu thập được”  Click

“Check”  hệ thống sẽ đưa ra nhãn lĩnh vực phù hợp với nội dung vừa đưa vào

Trang 11

Giải thích kết quả

Sau khi đưa vào nội dung web thu thập được hệ thống sẽ tính hàm Nạve Bayes trên mỗi lĩnh vực, sau đĩ chọn giá trị lớn nhất và gán nhãn tương ứng

Ở ví dụ trên : Nội dung Web thuộc lĩnh vực “Cơng nghệ” cĩ c* = 2.099 x 10^59 là giá trị lớn nhất

Trang 12

VI Kết luận và đánh giá

Khĩ khăn gặp phải:

Khĩ khăn:

- Việc thu thập tập thử nghiệm lớn là tương đối khĩ khăn Giải quyết :

- Làm việc vơi tập thử nghiệm nhỏ tuy cĩ thể gây ảnh hưởng tới độ chính xác của hệ thống

Kết quả đạt được:

- Cài đặt thành cơng giải thuật học Nạve Bayes

- Hệ thống cĩ độ chính xác chấp nhân được

Phân chia cơng việc

- Dũng : Tìm hiểu Web Crawler và thu thập dữ liệu

- Hùng : Code phần tính tần suất các từ trong tập học

- Tồn : Các việc cịn lại

Hướng phát triển :

- Cài đặt thêm một số giải thuật học khác để so sánh độ chính xác của hệ thống

- Thử nghiệm trên tập dữ liệu lớn hơn

Kết luận :

Cài đặt của chúng em vẫn là thử nghiệm khơng tránh khỏi những thiếu sĩt Chúng em rất mong nhận được sự gĩp ý của thầy để bản cài đặt của chúng em hồn thiện hơn Chúng em xin gửi lời cảm ơn chân thành tới thầy Nguyễn Nhật Quang vì đã cung cấp rất nhiều điều kiện thuận lợi cho chúng em hồn thành bài tập lớn này !

Trang 13

VII Tài liệu tham khảo

Bài giảng L3_Học dựa trên xác suất - TS Nguyễn Nhật Quang – ĐH Bách Khoa HN

Chú giải

(1) webcrawler : Trong bài tập lớn này đã sử dụng bộ Crawler4j , đây là dự án mã

nguồn mở bằng java , tham khảo thêm tại:http://code.google.com/p/crawler4j/

Ngày đăng: 21/06/2014, 16:17

TỪ KHÓA LIÊN QUAN

w