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

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

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 (690.52 KB, 13 trang )

Học Máy - 2013 Page 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 Naïve Bayes


Sinh viên thực hiện:
Bùi Văn Toàn 20092754 CNTT2-K54
Đoàn Xuân Dũng 20090506 CNTT2-K54
Hứa Mạnh Hùng 20091292 CNTT2-K54
Giảng viên hướng dẫn: TS. Nguyễn Nhật Quang


Hà Nội 12-2013

Học Máy - 2013 Page 2

MỤC LỤC
I. Giới thiệu chung……………………………………………………………… …3


II. Cơ sở lý thuyết phân loại Naïve Bayes……………………………………… ….3
1. Phân loại Naïve Bayes………………………………………………… … 3
2. Phân loại văn bản bằng Naïve Bayes……………………………… ………5
III. Giải quyết bài toán…………………………………………………………… 6
1. Datasets………………………………………………………………………6
2. Áp dụng Naïve Bayes cho giải quyết bài toá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









Học Máy - 2013 Page 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 Naïve Bayes
- Ngôn ngữ lập trình : Java

Thành viên trong nhóm:
Họ tên

SHSV
Lớp
Bùi Văn Toàn
20092754
CNTT2-K54
Đoà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 toà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 toán)  Phân loại nội dung

II. Cơ sở lý thuyết phân loại Naïve Bayes
1. Phân loại Naï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 toá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
Học Máy - 2013 Page 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) c
i

Tính giá trị xác xuất trước : P(c
i)

Đối với mỗi giá trị thuộc tính x
j
, 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 c
i
: P(x
j
|c
i
)
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 c
i
tính giá trị của biểu thức :
P(c
i)

. ∏
n
j=1
. P(x
j
|c
i
)
- Xác định phân lớp của z là lớp có thể nhất c
*
:
c
*
= arg max P(c
i)
. ∏
n
j=1
. P(x
j
|c
i
) (c
i

Ví dụ phân lớp Naï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?



Biểu diễn bài toán phân loại
z = (Age = Young, Income = Medium, Student=Yes, Credit_rating = Fair)
Có 2 phân lớp có thể c
1
(“Mua máy tính”) và c
2
(“không mua máy tính”
Học Máy - 2013 Page 5

Tính giá trị xác suất trước cho mỗi phân lớp
P(c
1
) = 9/14
P(c
2
) =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|c
1
) = 2/9
P(Income = Medium|c
1
) = 4/9
P(Student = Yes|c
1
) = 6/9
P(Credit_rating= Fiar|c
1
) = 6/9


P(Age = Young|c
2
) = 3/5
P(Income = Medium|c
2
) = 2/5
P(Student= Yes|c
2
) = 1/5
P(Credit_rating= Fair|c
2
) = 2/5
Tính toá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 c
1

P(z|c
1
) = P(Age = Young|c
1
). P(Income = Medium|c
1
). P(Student=Yes|c
1
).
P(Credit_rating= Fiar|c
1
) = (2/9).(4/9).(6/9).(6/9) = 0.044
Đối với phân lớp c
2

P(z|c
2
) = P(Age = Young|c
2
). P(Income = Medium|c
2
). P(Student=Yes|c
2
).
P(Credit_rating= Fiar|c
2
) = (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 Naïve Bayes
Biểu diễn bài toá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 = {(d
k
, c
i
)}
Một tập các nhãn lớp xác định: C= {c
i
}
Giai đoạn học
Học Máy - 2013 Page 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=
{t

j
}
Gọi D_c
i
(là tập các văn bản trong D_train có nhãn lớp c
i

Đối với mỗi phân lớp c
i
o Tính giá trị xác suất trước của phân lớp c
i
: 



=
|

|
||

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


n(d

k
, t
j
) : là số lần xuất hiện của từ khóa t
j
trong văn bản d
k

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) t
j
đã được định
nghĩa trong tập T(T_d 
Giả sử : Xác suất từ khóa t
j
xuất hiện đối với lớp c
i
là độc lập đối với vị trí của
từ khóa đó trong văn bản
P(t
j
ở vị trí k|c
i
) = P( t
j
ở vị trí m|c
i
) , k,m
Đối với mỗi phân lớp c
i

, tính giá trị likelihooh của văn bản d đối với c
i
P(c
i
). ∏
tj

P(t
j
|c
i
)
Phân lớp văn bản d thuộc vào lớp c
*

c
*

= arg max P(c
i
). ∏
tj

P(t
j
|c
i
)
III. Giải quyết bài toán
Bài toán : Phân loại nội dung Web dựa trên phương pháp Naï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 bao gồm:
Lĩnh vực
Số bản ghi
Kinh tế
758
Xã hội
716
Chính trị
734
Công nghệ
747
Giáo dục
749
Khoa học
571
Thể thao
686
Tổng
4961
Học Máy - 2013 Page 7


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

3
Xã hội
1
Chính trị
5
Công nghệ
7
Giáo dục
6
Khoa học
4
Thể thao
2

2. Áp dụng Naïve Bayes cho giải quyết bài toá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_c
i
là tập các web trong D_train mà có nhãn lớp c
i

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
Kinh tế

252
398499
Xã hội
238
342393
Chính trị
244
374066
Công nghệ
249
338250
Giáo dục
250
403408
Khoa học
190
241999
Thể thao
228
238120
Tập D=
1651

Mỗi ví dụ học học được gán nhãn lớp c
i
(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_c
i


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(c
i
)
Học Máy - 2013 Page 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(t
j
| c
i
) theo công thức
P(t
j
| c
i
) =
           
         _

Để tránh trường hợp hàm Naive Bayes hội tụ về 0 ta tính theo công thức :
P(t
j
| c
i
) =
           
            _
*100 +1
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 t
j
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(t
j
| c
i
) =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
Kinh tế
0
100%
Xã hội
4 / 478
99.16 %
Chính trị
0
100%
Công nghệ
0
100%
Giáo dục
0
100%
Khoa học
0
100%

Thể thao
0
100%
Độ chính xác
toàn hệ thống

99.88 %
Học Máy - 2013 Page 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)
Kinh tế
0/721
0/379
Xã hội
4 / 681
2/358
Chính trị
0/698
0/367

Công nghệ
0/710
0/374
Giáo dục
0/712
0/375
Khoa học
0/543
0/286
Thể thao
0/652
0/343
Độ chính xác
toàn hệ thống
99.91%
99.92%
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 )



Học Máy - 2013 Page 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.
Học Máy - 2013 Page 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 Naï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











Học Máy - 2013 Page 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 Naï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
- Toà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 hoà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 hoàn thành bài tập lớn này !








Học Máy - 2013 Page 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:


×