thuật toán bayes và ứng dụng

50 4.4K 19
thuật toán bayes và ứng dụng

Đ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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ <> Nguyễn Văn Huy THUẬT TOÁN BAYES ỨNG DỤNG KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành : Công Nghệ Thông Tin HÀ NỘI – 2009 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ <> Nguyễn Văn Huy THUẬT TOÁN BAYES ỨNG DỤNG KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành : Công Nghệ Thông Tin Cán bộ hướng dẫn: ThS. Nguyễn Nam Hải Cán bộ đồng hướng dẫn: ThS. Đỗ Hoàng Kiên HÀ NỘI – 2009 Thuật toán Bayes ứng dụng ii Lời cảm ơn Viết khóa luận khoa học là một trong những việc khó khăn nhất mà em phải hoàn thành từ trước đến nay. Trong quá trình thực hiện đề tài em đã gặp rất nhiều khó khăn bỡ ngỡ. Nếu không có những sự giúp đỡ lời động viên chân thành của nhiều thầy cô bạn bè gia gia đình có lẽ em khó có thể hoàn thành luận văn này. Đầu tiên em xin gửi lời cảm ơn chân thành đến thày Nguyễn Nam Hải thày Đỗ Hoàng Kiên đã trực tiếp hướng dẫn em hoàn thành luận văn này. Nhờ có thày mà em được tiếp cận với nguồn tài liệu giá trị cũng như những góp ý quý giá sau này. Bên cạnh sự giúp đỡ đó, em còn được các thày bên Trung tâm máy tính tạo mọi điều kiện tốt nhất về cơ sở vật chất cũng như hướng dẫn chỉ bảo ân cần để em được tiếp cận với hệ thống. Em biết ơn những ngày tháng được làm việc bên các thày, em không thể nào quên những ngày tháng tuyệt vời đó. Trong quá trình góp nhặt những kiến thức quý báu, các thày, cô, bạn bè là những người đã cùng em sát cánh trong suốt thời gian em học tập nghiên cứu dưới mái trường Đại học Công nghệ. Trong những nỗ lực đó, không thể không kể đến công lao to lớn không gì có thể đền đáp của cha mẹ những người đã sinh thành, dưỡng dục con nên người, luôn nhắc nhở, động viên con hoàn thành tốt nhiệm vụ. Hà Nội Tháng 5, 2009 Nguyễn Văn Huy Thuật toán Bayes ứng dụng iii Tóm tắt nội dung Thống kê (toán học) là bộ môn toán học rất quan trọng có nhiều ứng dụng to lớn trong thực tế, giúp con người rút ra thông tin từ dữ liệu quan sát, nhằm giải quyết các bài toán thực tế trong cuộc sống. Trong khóa luận này trình bày về một tiếp cận thống kê trong việc 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ứ. Sau việc tính toán mỗi sự kiện được gán xác xuất hay điểm (tùy vào mỗi phương pháp đánh giá) ứng với khả năng có thể xảy ra với sự kiện đó. cuối cùng dựa vào ngưỡng để phân loại cho các sự kiện. Sau phần lý thuyết chúng ta sẽ tìm hiểu về bài toán thực tế trong ngành công nghệ thông tin. Bài toán về việc lọc thư rác tự động. Giải quyết bài này là sự kết hợp từ rất nhiều phương án như DNS Blacklist, kiểm tra người nhận, người gửi, dùng bộ lọc Bayes, chặn địa chỉ IP, Blacklist/Whitelist, Dùng bộ lọc Bayes là phương án thông minh nó gần gũi với người dùng bởi chính người dùng đã huấn luyện nó nhận biết thư rác. Khóa luận này tập chung vào việc tìm hiểu bộ lọc thư rác Bayesspam – mã nguồn mở, cài đặt cho hệ thống email có tên là SquirrelMail – mã nguồn mở đang được dùng cho hệ thống email của trường đại học Công nghệ - Coltech Mail. Kết quả cho thấy bộ lọc có mức độ hoạt động hiệu quả là khác nhau tùy thuộc việc người dùng huấn luyện cho bộ lọc thông qua các thư điện tử mà họ cho là thư rác nhưng nói chung bộ lọc đã đem lại hiệu quả khá tốt. Thuật toán Bayes ứng dụng iv Mục lục Chương 1 Giới thiệu 1 1.1 Tổng quan 1 1.2 Cấu trúc 3 Chương 2 Cơ sở lý thuyết 4 2.1 Phát biểu định lý Bayes 4 2.2 Cực tiểu hóa rủi ro trong bài toán phân lớp Bayes 5 2.3 Phân lớp Bayes chuẩn tắc 13 2.4 Miền quyết định 20 Chương 3 Phân lớp Naive Bayes 22 3.1 Định nghĩa 22 3.2 Các mô hình xác suất Naive Bayes 23 3.3 Ước lượng tham số 24 3.4 Xây dựng một classifier từ mô hình xác suất 25 3.5 Thuật toán phân loại văn bản Naive Bayes 25 Ví dụ: Phân loại thư điện tử bằng Naive Bayes classifier 27 Chương 4 Giải quyết bài toán lọc thư rác 30 4.1 Đặt vấn đề 30 4.2 Bài toán 31 4.3 Tiền xử lý mỗi lá thư điện tử 31 4.4 Dùng luật Bayes tính xác suất 32 4.5 Huấn luyện cho bộ lọc Bayes 33 4.6 Lọc thư đến, có là thư rác không? 34 4.7 Bộ lọc BayesSpam 35 4.8 Một số cải tiến cho bộ lọc BayesSpam 38 Chương 5 Kết luận 40 Thuật toán Bayes ứng dụng v Phụ lục A Cơ sở dữ liệu của bộ lọc 43 Tài liệu tham khảo 44 Thuật toán Bayes ứng dụng 1 Chương 1 Giới thiệu 1.1 Tổng quan Khoa học thống kê đóng một vai trò cực kỳ quan trọng, một vai trò không thể thiếu được trong bất cứ công trình nghiên cứu khoa học, nhất là khoa học thực nghiệm như y khoa, sinh học, nông nghiệp, hóa học, ngay cả xã hội học. Thí nghiệm dựa vào các phương pháp thống kê học có thể cung cấp cho khoa học những câu trả lời khách quan nhất cho những vấn đề khó khăn nhất. Khoa học thống kê là khoa học về thu thập, phân tích, diễn giải trình bày các dữ liệu để từ đó tìm ra bản chất tính quy luật của các hiện tượng kinh tế, xã hội - tự nhiên. Khoa học thống kê dựa vào lý thuyết thống kê, một loại toán học ứng dụng. Trong lý thuyết thống kê, tính chất ngẫu nhiên sự không chắc chắn có thể làm mô hình dựa vào lý thuyết xác suất. Vì mục đích của khoa học thống kê là để tạo ra thông tin "đúng nhất" theo dữ liệu có sẵn, có nhiều học giả nhìn khoa thống kê như một loại lý thuyết quyết định. Thống kê là một trong những công cụ quản lý vĩ mô quan trọng, cung cấp các thông tin thống kê trung thực, khách quan, chính xác, đầy đủ, kịp thời trong việc đánh giá, dự báo tình hình, hoạch định chiến lược, chính sách, xây dựng kế hoạch phát triển kinh tế - xã hội đáp ứng nhu cầu thông tin thống kê của các tổ chức, cá nhân. Trong số những vai trò quan trọng thì dự báo tình hình là một trong những vai trò mang nhiều ý nghĩa, nó có cả một quá trình huấn luyện bên trong có tính xử lý tự động khi đã được huấn luyện. Hay nói khác hơn là khi đã có tri thức lấy từ các dữ liệu thống kê hay kinh nghiệm của người dùng kết hợp với một phương pháp học (huấn luyện) dựa trên lý thuyết thống kê ta sẽ có được một cỗ máy có tri thức để tự nó có thể đưa ra được những quyết định với độ chính xác khá cao. Phân tích thống kê là một khâu quan trọng không thể thiếu được trong các công trình nghiên cứu khoa học, nhất là khoa học thực nghiệm. Một công trình nghiên cứu khoa học, cho dù có tốn kém quan trọng cỡ nào, nếu không được phân tích đúng phương pháp sẽ không bao giờ có cơ hội được xuất hiện trong các tập san khoa học. Ngày nay, chỉ cần nhìn qua tất cả các tập san nghiên cứu khoa học trên thế giới, hầu như bất cứ bài báo y học nào cũng có phần “Statistical Analysis” (Phân tích thống kê), nơi mà tác giả phải mô tả cẩn thận phương pháp phân tích, tính toán như thế nào, và giải thích ngắn gọn tại sao sử dụng những phương pháp đó để hàm ý “bảo kê” hay Thuật toán Bayes ứng dụng 2 tăng trọng lượng khoa học cho những phát biểu trong bài báo. Các tập san y học có uy tín càng cao yêu cầu về phân tích thống kê càng nặng. Không có phần phân tích thống kê, bài báo không thể xem là một “bài báo khoa học”. Không có phân tích thống kê, công trình nghiên cứu chưa được xem là hoàn tất. Trong khoa học thống kê, có hai trường phái “cạnh tranh” song song với nhau, đó là trường phái tần số (frequentist school) trường phái Bayes (Bayesian school). Phần lớn các phương pháp thống kê đang sử dụng ngày nay được phát triển từ trường phái tần số, nhưng hiện nay, trường phái Bayes đang trên đà “chinh phục” khoa học bằng một suy nghĩ “mới” về khoa học suy luận khoa học. Phương pháp thống kê thuộc trường phái tần số thường đơn giản hơn các phương pháp thuộc trường phái Bayes. Có người từng ví von rằng những ai làm thống kê theo trường phái Bayes là những thiên tài! Để hiểu sự khác biệt cơ bản giữa hai trường phái này, có lẽ cần phải nói đôi qua vài dòng về triết lý khoa học thống kê bằng một ví dụ về nghiên cứu y khoa. Để biết hai thuật điều trị có hiệu quả giống nhau hay không, nhà nghiên cứu phải thu thập dữ liệu trong hai nhóm bệnh nhân (một nhóm được điều trị bằng phương pháp A, một nhóm được điều trị bằng phương pháp B). Trường phái tần số đặt câu hỏi rằng “nếu hai thuật điều trị có hiệu quả như nhau, xác suất mà dữ liệu quan sát là bao nhiêu”, nhưng trường phái Bayes hỏi khác: “Với dữ liệu quan sát được, xác suất mà thuật điều trị A có hiệu quả cao hơn thuật điều trị B là bao nhiêu”. Tuy hai cách hỏi thoạt đầu mới đọc qua thì chẳng có gì khác nhau, nhưng suy nghĩ kỹ chúng ta sẽ thấy đó là sự khác biệt mang tính triết lý khoa học ý nghĩa của nó rất quan trọng. Đối với người bác sĩ (hay nhà khoa học nói chung), suy luận theo trường phái Bayes là rất tự nhiên, rất hợp với thực tế. Trong y khoa lâm sàng, người bác sĩ phải sử dụng kết quả xét nghiệm để phán đoán bệnh nhân mắc hay không mắc ung thư (cũng giống như trong nghiên cứu khoa học, chúng ta phải sử dụng số liệu để suy luận về khả năng của một giả thiết). Thuật toán Bayes ứng dụng 3 1.2 Cấu trúc Các phần còn lại của khóa luận có cấu trúc như sau: Chương 2 trình bày cơ sở lý thuyết Bayes các khái niệm, phương pháp được sử dụng trong khoá luận. Chương 3 trình bày lý thuyết Bayes nâng cao - Naive Bayes. Chương này sẽ đề cập đến khái niệm, ưu điểm ứng dụng phân loại của nó từ đó căn cứ nghiên cứu xây dựng hệ thống phân loại văn bản. Chương 4 trình bày chi tiết về bộ lọc bao gồm các vấn đề về cơ sở tri thức, việc huấn luyện cho bộ lọc, cách thức làm việc hướng cải tiến trong việc lọc thư rác. Chương 5 trình bày kết luận về chương trình ứng dụng bộ lọc BayesSpam cài đặt trên hệ thống thư điện tử Squirrelmail. Thuật toán Bayes ứng dụng 4 Chương 2 Cơ sở lý thuyết 2.1 Phát biểu đị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 A khi biết sự kiện liên quan B đã xảy ra. Xác suất này được ký hiệu là P(A|B), đọc là "xác suất của A nếu có B". Đạ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 B hoặc phụ thuộc vào giá trị đó. Theo định lí Bayes, xác suất xảy ra A khi biết B sẽ phụ thuộc vào 3 yếu tố:  Xác suất xảy ra A của riêng nó, không quan tâm đến B. Kí hiệu là P(A) đọc là xác suất của A. Đâ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" theo nghĩa rằng nó không quan tâm đến bất kỳ thông tin nào về B.  Xác suất xảy ra B của riêng nó, không quan tâm đến A. Kí hiệu là P(B) đọc là "xác suất của B". Đạ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 A đang muốn biết.  Xác suất xảy ra B khi biết A xảy ra. Kí hiệu là P(B|A) đọc là "xác suất của B nếu có A". Đại lượng này gọi là khả năng (likelihood) xảy ra B khi biết A đã xảy ra. Chú ý không nhầm lẫn giữa khả năng xảy ra A khi biết B xác suất xảy ra A khi biết B. Khi biết ba đại lượng này, xác suất của A khi biết B cho bởi công thức: [...]... naive 3.5 Thuật toán phân loại văn bản Naive Bayesthuật phân hoạch của Naive Bayes dựa trên cơ sở định lí Bayes đặc biệt phù hợp cho các trường hợp phân loại có kích thước đầu vào là lớn Mặc dù Naive Bayes khá đơn giản nhưng nó có khả năng phân loại tốt hơn rất nhiều phương pháp phân hoạch phức tạp khác Với mỗi loại văn bản, thuật toán Naive Bayes tính cho mỗi 25 Thuật toán Bayes ứng dụng lớp... nghĩa: 27 Thuật toán Bayesứng dụng Nên có: Giả định rằng thời điểm chỉ có hai lớp học, S ¬ S (ví dụ như thư rác không phải là thư rác) Bằng cách sử dụng các kết quả Bayesian trên, có thể viết: Do đó: Vì vậy có thể viết: 28 Thuật toán Bayes ứng dụng Trên thực tế xác suất p(S | D) có thể được tính dễ dàng từ log (p (S | D) / p (¬ S | D)) dựa trên nhận định (S | D) + p (¬ S | D) = 1 như... lỗi là 6% 21 Thuật toán Bayes ứng dụng Chương 3 3.1 Phân lớp Naive Bayes Định nghĩa Naive Bayes classifier là một thuật ngữ trong xử lý số liệu thống kê Bayesian với một phân lớp xác suất dựa trên các ứng dụng định lý Bayes với giả định độc lập bền vững Một thuật ngữ mô tả chi tiết cho những mô hình xác suất sẽ là “mô hình đặc trưng không phụ thuộc” Trong thuật ngữ đơn giản, một naive Bayes classifier... ta cần phải có một lượng lớn tập dữ liệu huấn luyện (xem ví dụ của Fukunaga and Hayes, 1989) 19 Thuật toán Bayes ứng dụng 2.4 Miền quyết định Trong thực tế của các ứng dụng nhân dạng mẫu, đơn giản ta chỉ cần sử dụng một luật quyết định như các công thức (1-2a) (1-7c) khi đó sẽ tạo ra nhiều biên quyết định, rất dễ xuất hiện nhiễu ở trong dữ liệu, ảnh hưởng đến độ chính xác của các tính toán. .. với độ lệch nằm giữa 15% 42% giá rị của covariance, ta được sai số tập huấn luyện là 6% 18 Thuật toán Bayesứng dụng Trở lại với dữ liệu các nút chai, ta có bài toán phân lớp sử dụng 2 đặc trưng N PRT với xác suất tiên nghiệm đồng nhất Lưu ý phân lớp thống kê ngoài tính toán số nó không làm thay đổi các phép toán, vì thế mà các kết quả đạt được là giống nhau nếu như sử dụng PRT hay PRT10 Một... hình để dễ xử lý Bằng cách sử dụng định lý Bayes, có được: Trong thực hành, chỉ cần quan tâm tới tử số của phân số, khi mà mẫu số không phụ thuộc vào C các giá trị của các đặc trưng của F i đã cho, nên mẫu số là hằng thực sự Tử số tương đương với mô hình xác suất có thể được viết lại như sau, sử dụng định nghĩa của xác suất có điều kiện: 23 Thuật toán Bayesứng dụng Bây giờ giả định "naive" giả... sự khác biệt về đánh giá sai số xác suất hậu nghiệm Để minh họa ta hãy xét hai lớp có xác suất tiên nghiệm đồng nhất có ba loại phân phối đối xứng, với cùng độ lệch tiêu chuẩn trung bình 0 2.3 như hình 9 17 Thuật toán Bayesứng dụng Phân lớp tối ưu cho 3 trường hợp sử dụng cùng một ngưỡng quyết định có giá trị 1.15, tuy nhiên các sai số phân lớp là khác nhau:  Nomal: Pe = 1 – erf(2.3/2)... lớp Bayes với rủi ro nhỏ nhất, đây là phân lớp tối ưu Chú ý rằng công thức (1-11b) sử dụng giá trị thật của khoảng cách Mahalanobis, trong khi mà trước đó chúng ta sử dụng ước lượng của khoảng cách này Với trường hợp covariance đồng nhất cho tất cả các lớp (∑i=∑) bỏ qua các hằng số ta được: 1 hi ( x)   ( x  i ) 1 ( x  i )  ln P( i ) 2 15 (1-11c) Thuật toán Bayes ứng dụng Với bài toán. . .Thuật toán Bayesứng dụng 2.2 Cực tiểu hóa rủi ro trong bài toán phân lớp Bayes Bây giờ xem xét bài toán nút chai, hãy hình dung rằng nhà máy sản xuất được 2 loại là: w1 = Super w2 = Average Giả sử thêm rằng nhà máy có một hồ sơ của các kho chứa sản phẩm để lưu giữ, tóm lược lại như sau:... quả của naive Bayes classifiers Một lợi thế của naive Bayes classifier là nó đòi hỏi một số lượng nhỏ dữ liệu đào tạo để ước lượng các tham số (các nghĩa sự khác nhau của các biến) cần thiết cho việc phân loại Bởi vì các biến được giả định độc lập, chỉ những khác biệt của các biến cho mỗi lớp học cần phải được xác định không phải toàn bộ ma trận thống kê 22 Thuật toán Bayes ứng dụng 3.2 Các . Nguyễn Văn Huy Thuật toán Bayes và ứng dụng iii Tóm tắt nội dung Thống kê (toán học) là bộ môn toán học rất quan trọng và có nhiều ứng dụng to lớn. BayesSpam 38 Chương 5 Kết luận 40 Thuật toán Bayes và ứng dụng v Phụ lục A Cơ sở dữ liệu của bộ lọc 43 Tài liệu tham khảo 44 Thuật toán Bayes và

Ngày đăng: 17/02/2014, 23:12

Hình ảnh liên quan

Hình 1: Biểu đồ của đặc trưng N cho hai lớp học của các nút chai. Giá trị ngưỡng N = 65 được đánh dấu bằng một đường thẳng đứng  - thuật toán bayes và ứng dụng

Hình 1.

Biểu đồ của đặc trưng N cho hai lớp học của các nút chai. Giá trị ngưỡng N = 65 được đánh dấu bằng một đường thẳng đứng Xem tại trang 13 của tài liệu.
Hình 2: Xác suất tiên nghiệm đồng nhất (a), khơng đồng nhất (b). - thuật toán bayes và ứng dụng

Hình 2.

Xác suất tiên nghiệm đồng nhất (a), khơng đồng nhất (b) Xem tại trang 14 của tài liệu.
Hình 3: Kết quả phân lớp của cork stoppers với xác suất tiên nghiệm không đồng nhất: 0.4 cho lớp w1 và 0.6 cho lớp w2  - thuật toán bayes và ứng dụng

Hình 3.

Kết quả phân lớp của cork stoppers với xác suất tiên nghiệm không đồng nhất: 0.4 cho lớp w1 và 0.6 cho lớp w2 Xem tại trang 15 của tài liệu.
Hình 7 minh họa phân phối chuẩn trong trường hợp có hai chiều. - thuật toán bayes và ứng dụng

Hình 7.

minh họa phân phối chuẩn trong trường hợp có hai chiều Xem tại trang 20 của tài liệu.
Hình 8 thể hiện dáng điệu của Pe với sự tăng dần của bình phương khảng cách Bhattacharyya - thuật toán bayes và ứng dụng

Hình 8.

thể hiện dáng điệu của Pe với sự tăng dần của bình phương khảng cách Bhattacharyya Xem tại trang 23 của tài liệu.
Cho các ma trận covariance sở trong bảng 1. Độ lệch của các phần tử trong ma trận covariance so với giá trị trung tâm nằm trong khoảng từ 5% đến 30% - thuật toán bayes và ứng dụng

ho.

các ma trận covariance sở trong bảng 1. Độ lệch của các phần tử trong ma trận covariance so với giá trị trung tâm nằm trong khoảng từ 5% đến 30% Xem tại trang 25 của tài liệu.
Chúng ta hãy xem các ma trận phân lớp hiển thị trong Hình 13. Nhớ lại một chút  ta  sẽ  thấy  rằng  có  4  mẫu  của  lớp  1  và  5  mẫu  của  lớp  2  bị  phân  lớp  sai,  là  nằm  trong reject region chiếm 9% số mẫu - thuật toán bayes và ứng dụng

h.

úng ta hãy xem các ma trận phân lớp hiển thị trong Hình 13. Nhớ lại một chút ta sẽ thấy rằng có 4 mẫu của lớp 1 và 5 mẫu của lớp 2 bị phân lớp sai, là nằm trong reject region chiếm 9% số mẫu Xem tại trang 27 của tài liệu.
Tiếp theo chúng ta tạo ra bảng băm thứ 3, bảng băm này ánh xạ mỗi thẻ tới xác suất mà một email chứa nó là email spam - thuật toán bayes và ứng dụng

i.

ếp theo chúng ta tạo ra bảng băm thứ 3, bảng băm này ánh xạ mỗi thẻ tới xác suất mà một email chứa nó là email spam Xem tại trang 39 của tài liệu.
Hình 16: Bảng điều khiển bộ lọc dành cho mỗi người dùng thư điện tử - thuật toán bayes và ứng dụng

Hình 16.

Bảng điều khiển bộ lọc dành cho mỗi người dùng thư điện tử Xem tại trang 42 của tài liệu.
Hình 17: Thư rác đã bị lọc và đưa vào thư mục Test, 943 thư rác. - thuật toán bayes và ứng dụng

Hình 17.

Thư rác đã bị lọc và đưa vào thư mục Test, 943 thư rác Xem tại trang 43 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan