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 ỨNG DỤNG THUẬT TOÁN NAIVE BAYES CHO BÀI TOÁN PHÂN LỚP VĂN BẢN

21 1K 7

Đ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 21
Dung lượng 7,67 MB

Nội dung

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH KHOA HỌC MÁY TÍNH TÊN ĐỀ TÀI: ỨNG DỤNG THUẬT TOÁN NAÏVE BAYES CHO BÀI TOÁN PHÂN LỚP VĂN BẢN Giảng viên hướng dẫn: GS.TSKH. Hoàng Văn Kiếm Học viên thực hiện: Võ Anh Tuấn – CH1301113 TP.HCM, 10/10/2014 Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản MỤC LỤC Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản I. GIỚI THIỆU 1. Giới thiệu đề tài: II. Đề tài “Ứng dụng thuật toán Naïve Bayes cho bài toán phân lớp văn bản” là đề tài thuộc lĩnh vực máy học. Nội dung của đề tài này là tìm hiểu thuật toán Naïve Bayes, qua đó áp dụng thuật toán Naïve Bayes vào bài toán phân lớp văn bản, xây dựng chương trình demo và minh họa quá trình huấn luyện, kiểm nghiệm trên một tập dữ liệu, từ đó có thể dự báo lớp cho dữ liệu mới nhập vào. 1.1. Mục tiêu đề tài • Nghiên cứu thuật toán Naïve Bayes. • Xây dựng chương trình phân lớp dữ liệu demo sử dụng thuật toán Naïve Bayes. 1.2. Phạm vi thực hiện • Đề tài nghiên cứu thuật toán Naïve Bayes ở mức cơ bản. • Ứng dụng demo nhằm mục đích minh họa cho thuật toán Naïve Bayes, được viết bằng C# và chạy trên môi trường Windows. III. IV. CƠ SỞ LÝ THUYẾT 1. Định lý Bayes V. Đị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), và đọ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ị đó. VI. VII. 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) và đọ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) và đọ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) và đọ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 và xác suất xảy ra A khi biết B. Page 3 Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản VIII. IX. 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: X. XI. Từ đó dẫn tới XII. XIII. 2. Thuật toán phân lớp Naïve Bayes XIV. Thuật toán này dựa trên định lý Bayes, nó tính ra xác suất một mẫu X thuộc về một lớp nào đó dựa vào xác suất xuất hiện của các thuộc tính có trong X. Phương pháp này giả định rằng các thuộc tính là độc lập xác suất, nghĩa là sự xuất hiện của các thuộc tính không phụ thuộc lẫn nhau. XV. Thuật toán Naïve Bayes dựa trên định lý Bayes được phát biểu như sau: XVI. XVII. Trong đó: • Y đại diện một giả thuyết, giả thuyếtnày được suy luận khi có được chứng cứ mới X • P(X): xác xuất X xảy ra, P(Y) : xác xuất Y xảy ra • 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. XVIII. XIX. Thuật Toán Naïve Bayes được ứng dụng rất nhiều trong thực tế. Một trong những ứng dụng cụ thể là ứng dụng bài toán phân lớp. XX. XXI. Đây là thuật toán được xem là đơn giản nhất trong các phương pháp phân lớ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. XXII. XXIII. Với mỗi lớp dữ liệu trong bộ huấn luyện, ta tính xác suất phụ thuộc của văn bản cần phân loại: XXIV. Page 4 Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản XXV. Với c k là lớp dữ liệu cần tính xác suất và x là văn bản dữ liệu cần phân loại XXVI. XXVII. Công thức tính P(x|c i ): XXVIII. XXIX. Trong đó: P(w k |c i ) là xác suất xuất hiện của từ w k trong lớp văn bản c i (k=1n; i=1,2,3…) XXX. XXXI. * Áp dụng trong bài toán phân loại, các dữ kiện gồm có: • D: tập dữ liệu huấn luyện đã được vector hóa dưới dạng • C i : phân lớp i, với i = {1,2,…,m}. • Các thuộc tính độc lập điều kiện đôi một với nhau. XXXII. Theo định lý Bayes: XXXIII. XXXIV. Theo tính chất độc lập điều kiện: XXXV. XXXVI. Trong đó: • là xác suất thuộc phân lớp i khi biết trước mẫu X. • xác suất là phân lớp i. • xác suất thuộc tính thứ k mang giá trị xk khi đã biết X thuộc phân lớp i. XXXVII. XXXVIII. Các bước thực hiện thuật toán Naïve Bayes: XXXIX. Bước 1: Huấn luyện Naïve Bayes (dựa vào tập dữ liệu), tính và XL.Bước 2: Phân lớp , ta cần tính xác suất thuộc từng phân lớp khi đã biết trước Xnew. Xnew được gán vào lớp có xác suất lớn nhất theo công thức: XLI. XLII. Ví dụ: XLIII. Cho bảng dữ liệu “Chơi bóng đá” XLIV. Thời tiết XLV. N hiệ t độ XLVI. Đ ộ ẩm XLVII. G ió XLVIII. Lớp XLIX. Nắng L. Nó ng LI. Ca o LII. Kh ôn g LIII. N Page 5 Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản LIV. N ắn g LV. Nó ng LVI. Ca o LVII. K hô ng LVIII. N LIX. U _á m LX. Nó ng LXI. Ca o LXII. K hô ng LXIII. P LXIV. Mưa LXV. Ấ m_ áp LXVI. C ao LXVII. K hô ng LXVIII. P LXIX. Mưa LXX. M át LXXI. V ừa LXXII. K hô ng LXXIII. P LXXIV. Mưa LXXV. M át LXXVI. Vừa LXXVII. Có LXXVIII. N LXXIX. U_ám LXXX. M át LXXXI. Vừa LXXXII. Có LXXXIII. P LXXXIV. Nắng LXXXV. Ấm_áp LXXXVI. Cao LXXXVII. Không LXXXVIII. N LXXXIX. Nắng XC. Ấ m_ áp XCI. Ca o XCII. K hô ng XCIII. N XCIV. Nắng XCV. M át XCVI. V ừa XCVII. K hô ng XCVIII. P XCIX. Mưa C. Ấ m_ áp CI. Vừ a CII. Kh ôn g CIII.P CIV. N ắn g CV. Ấ m_ áp CVI. Vừ a CVII. C ó CVIII. P CIX. U _á m CX. Ấ m_ áp CXI. Ca o CXII. C ó CXIII. P CXIV. U_ám CXV. N ón g CXVI. V ừa CXVII. K hô ng CXVIII. P CXIX. Mưa CXX. Ấ m_ áp CXXI. C ao CXXII. C ó CXXIII. N CXXIV. CXXV. Ta có thể tính các xác suất sau: Page 6 Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản CXXVI. Thời tiết CXXVII. CXXVIII. P(nắng | p) = 2/9 CXXIX. P(nắng | n) = 3/5 CXXX. P(u_ám | p) = 4/9 CXXXI. P(u_ám | n) = 0 CXXXII. P(mưa | p) = 3/9 CXXXIII. P(mưa | n) = 2/5 CXXXIV. Nhiệt độ CXXXV. CXXXVI. P(nóng | p) = 2/9 CXXXVII. P(nóng | n) = 2/5 CXXXVIII. P(ấm áp | p) = 4/9 CXXXIX. P(ấm áp | n) = 2/5 CXL. P(mát | p) = 3/9 CXLI. P(mát | n) = 1/5 CXLII. Độ ẩm CXLIII. CXLIV. P(cao | p) = 3/9 CXLV. P(cao | n) = 4/5 CXLVI. P(vừa | p) = 6/9 CXLVII. P(vùa | n) = 1/5 CXLVIII. Gió CXLIX. CL. P(có | p) = 3/9 CLI. P(có | n) = 3/5 CLII. P(không | n) = 6/9 CLIII. P(không | n) = 2/5 CLIV. Cuối cùng ta có P(p) = 9/14 và P(n) = 5/14 CLV. Với bảng dữ liệu trên. Cho phân lớp X chưa được tìm thấy như sau X= < mưa, nóng, cao, không> CLVI. Phân lớp X : CLVII. Một mẫu chưa được gặp X = <mưa, nóng, cao, không> CLVIII. P(X|p)P(p) = P(mưa|p)P(nóng|p)P(cao|p)P(không|p)P(p) = (3/9)*(2/9)*(3/9)*(6/9)*(9/14)=0.010582 CLIX. P(X|n)P(n)= P(mưa|n)P(nóng|n)P(cao|n)P(không|n)P(n) = (2/5)*(2/5)*(4/5)*(2/5)*(5/14)=0.018286 CLX. Vậy mẫu X được phân vào lớp n (không chơi bóng đá) CLXI. 3. Áp dụng thuật toán Naïve Bayes trong bài toán phân lớp văn bản CLXII. Phương pháp phân loại Bayes thực hiện việc phân loại bắt đầu với việc phân tích văn bản bằng cách trích những từ được chứa trong văn bản. Để thực hiện việc phân tích này, một thuật toán trích từ đơn giản để lấy ra những từ khác nhau trong văn bản. Những từ này sẽ được lưu vào một danh sách dùng để tính xác suất mỗi từ thuộc về mỗi loại. Danh sách từ sau đó sẽ được sử dụng để sinh ra một bảng chứa xác suất của từ đó thuộc về một loại. Bảng này sẽ gồm một cột “word” chứa các từ trong văn bản và một số Page 7 Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản cột xác suât của từ đó cho mỗi loại, tức là có bao nhiêu loại văn bản thì sẽ có bấy nhiêu cột xác suất. Giá trị của cột xác suất sẽ tính theo công thức Bayes mà sẽ được trình bày ở bên dưới. CLXIII. CLXIV. Trước khi tính xác của từ thuộc về một loại nào, từ đó cần phải được huấn luyện bằng một tập dữ liệu huấn luyện được tổ chức, định dạng theo một qui chuẩn. Mỗi từ phân biệt từ các văn bản huấn luyện trong cùng một loại sẽ đưa vào danh sách xuất hiện từ cho loại đó. CLXV. CLXVI. Dựa vào danh sách xuất hiện của từ, việc phân loại theo xác suất sẽ tiến hành tính toán xác suất hậu nghiệm của từ đó thuộc về một loại cụ thể bằng cách sử dụng công thức (2). Từ xuất hiện càng nhiều cho một loại thì xác suất càng càng cao, việc phân loại càng chính xác. CLXVII. CLXVIII. Công thức trên cho thấy rằng bằng cách quan sát giá trị của một từ cụ thể wj, xác suất của một loại cụ thể Ci, Pr(Ci) có thể được chuyển thành xác suất hậu nghiệm Pr(Ci|wj). Pr(Ci|wj) là xác suất của từ wj thuộc về loại Ci. Pr(Ci) có thể được tính bằng công thức sau: CLXIX. CLXX. Pr(wj) có thể được tính bằng công thức sau: CLXXI. CLXXII.Theo công thức Bayes trong phân loại văn bản, với giá trị của xác suất Pr(Category), Pr(Word|Category) và Pr(Word), xác suất hậu nghiệm Pr(Category | Word) của mỗi từ trong văn bản thuộc về một loại có thể được xác định. Page 8 Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản CLXXIII. CLXXIV. Xác suất hậu nghiệm của một từ thuộc về mỗi loại sẽ được điền vào bảng xác suất bên dưới CLXXV. CLXXVI. Sau khi các ô xác suất được điền vào, xác suất tổng thể của một văn bản thuộc về một loại cụ thể Ci được tính bằng cách chia tổng mỗi cột xác suất cho tổng số từ trong văn bản. CLXXVII. CLXXVIII. trong đó w1, w2, w3, …., w n-1, wn là những từ được trích trong văn bản. CLXXIX. CLXXX.Loại nào có xác suất Pr(Category | Document) cao nhất thì văn bản sẽ thuộc về loại đó theo luật phân loại Bayes. CLXXXI. 4. Đánh giá CLXXXII. Mô hình phân lớp Naive Bayes là mô hình phân lớp dựa trên xác suất. Trong một số lĩnh vực, khả năng áp dụng của nó có thể so sánh với các phương pháp khác như mạng nơron hoặc cây quyết định. Trong thực tế, mô hình phân lớp Naive Bayes thực hiện rất tốt trong phân lớp văn bản như hệ thống phân loại văn bản Rainbow, hay trong các hệ thống phân loại email. CLXXXIII. Page 9 Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản CLXXXIV. Các thuật toán Bayes tính toán các khả năng cụ thể đối với các giả định, chẳng hạn như bộ phân lớp Naive Bayes là một trong các cách tiếp cận thực tế nhất đối với các kiểu học chắc chắn. Michie đã đưa ra một nghiên cứu chi tiết việc so sánh giữa bộ phân lớp Naive Bayes với các thuật toán máy học khác trong đó có cả các thuật toán theo cây quyết định và mạng noron. Các nhà nghiên cứu đã chứng minh rằng bộ phân lớp Naive Bayes là tương đối mạnh và trong một số trường hợp nó còn cho kết quả tốt hơn. Bên cạnh đó, việc thiết kế một hệ thống phân lớp Naive Bayes trong thực tế thường dễ dàng hơn so với phương pháp phân lớp khác vì tính đơn giản của nó và thời gian thực hiện phân lớp một văn bản mới cho kết quả nhanh hơn nhiều. CLXXXV. CLXXXVI. Một số đặc điểm của phương pháp Naive Bayes: • Phương pháp học Naive Bayes tính xác suất rõ ràng cho các giả định bằng cách đếm tần suất của các kết hợp dữ liệu khác nhau trong tập dữ liệu huấn luyện để tính xác suất. • Mỗi mẫu học quan sát được có thể giảm hoặc tăng xác suất dự đoán một giả định là đúng đắn. Điều này cho ta một cách tiếp cận thiết kế một hệ thống học uyển chuyển hơn các thuật toán khác và loại trừ hoàn toàn một giả định nếu nó thấy có sự không nhất quán với bất kỳ mẫu đơn lẻ nào. • Kiến thức biết trước có thể kết hợp với dữ liệu quan sát được để xác định khả năng của một giả định. Trong đó kiến thức biết trước có được bằng cách phân phối xác suất trên toàn bộ dữ liệu quan sát được cho mỗi giả định có thể có. • Phương pháp Naive Bayes cung cấp xác suất dự đoán. Mỗi thể hiện mới được phân lớp bằng cách kết hợp dự đoán của nhiều giả định. • Phương pháp học Naive Bayes có tính tăng trưởng. • Mỗi mẫu huấn luyện có thể tăng/giảm dần khả năng đúng của một giả thiết. • Tri thức ưu tiên có thể kết hợp với dữ liệu quan sát được. • Ngay cả khi các phương pháp Naive Bayes khó trong tính toán chúng vẫn có thể cung cấp một chuẩn để tạo quyết định tối ưu so với các phương pháp khác. • Phương pháp Naive Bayes phù hợp với các bài toán có yêu cầu về chi phí xuất hiện của giá trị các thuộc tính. • Việc thiết kế hệ thống phản lớp trong thực tế thường dễ dàng hơn so với các phương pháp khác. • Các thuộc tính trong tập mẫu học phải là độc lập điều kiện. Page 10 [...].. .Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản • Độ chính xác của thuật toán phân lớp phụ thuộc nhiều vào tập dữ liệu học ban đầu CLXXXVII CLXXXVIII Dựa trên những đặc điểm của các phương pháp phân lớp nêu trên, ta chọn phương pháp phân lớp xác suất Naive Bayes làm mô hình phân lớp văn bản CLXXXIX CXC ỨNG DỤNG PHÂN LỚP VĂN BẢN 1 Giới thiệu CXCI NaïveBayesClassifier là ứng dụng phân lớp văn bản. .. luyện cùng với số lần xuất hiện cho mỗi loại CCXXXIX 3.3 Phân lớp văn bản • Bước 1: Nhập văn bản cần phân lớp CCXL Có 2 cách nhập văn bản cần phân lớp: 1 Nhập trực tiếp văn bản vào text box CCXLI Page 16 Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản CCXLII Hình 3.8: Nhập trực tiếp văn bản cần phân loại vào text box CCXLIII 2 Import văn bản từ file txt bằng cách click vào menu File > Import data from... KHẢO CCCXXXVIII [1] Bài giảng môn Công nghệ tri thức và ứng dụng của GS.TSKH Hoàng Văn Kiếm CCCXXXIX [2] Luận văn Thuật toán Bayes và ứng dụng của Nguyễn Văn Huy – ĐHQG Hà Nội Page 20 Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản CCCXL [3] Codeproject (http://www.codeproject.com/Articles/318126 /Naive- Bayes- Classifier) CCCXLI [4] Wikipedia (http://en.wikipedia.org/wiki /Naive_ Bayes_ classifier) Page... Import văn bản cần phân loại từ file txt CCXLVI • Bước 2: Click vào nút Clarify để phân lớp văn bản CCXLVII Kết quả phân lớp văn bản sẽ hiển thị ngay bên dưới đoạn văn bản tương tự như hình sau CCXLVIII CCXLIX Hình 3.10: Kết quả phân loại nhận được sau khi click Clarify CCL • Click Clear để xóa văn bản đã phân loại trong text box và nhập văn bản mới vào để tiếp tục phân loại CCLI Page 17 Thuật toán Naïve... lớn và trong phạm vi hẹp Kết quả chạy thử nghiệm còn yếu nên chưa đáng tin tưởng lắm Nguyên nhân có thể là do chưa tối ưu được thuật toán trong quá trình cài đặt 3 Hướng phát tri n Page 19 Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản CCCXIII Naïve Bayes chỉ là một trong số rất nhiều thuật toán, bài toán phân lớp chỉ là một trong số các bài toán của lĩnh vực khai phá dữ liệu, khám phá tri thức. .. demo sử dụng thuật toán Naïve Bayes Ứng dụng gồm 2 chức năng chính, đó là huấn luyện văn bản và phân loại văn bản Dữ liệu huấn luyện sẽ được lưu lại theo một chuẩn và có thể được sử dụng cho những lần huấn luyện tiếp theo • Huấn luyện văn bản (training): CXCII Thông qua giao diện huấn luyện, người dùng sẽ nhập một số văn bản cụ thể cho một số loại (Category) cụ thể và huấn luyện nó Các văn bản này... Nhóm các văn bản này sẽ được lưu trữ lại và sau đó thông qua bộ Training data gerneration facility để sinh ra danh sách số lần xuất hiện của từ Danh sách này sẽ được dùng trong việc tính xác suất Bayes trong công thức phân loại văn bản CXCIII • Phân lớp văn bản (classify): CXCIV Để tiến hành phân loại văn bản, người dùng cũng sẽ nhập văn bản cần phân loại thông qua giao diện chương trình Văn bản này... tiếp vào text box 2 Import văn bản từ file text (.txt) CCXXII CCXXIII Hình 3.6: Import văn bản từ file text CCXXIV CCXXV Sau khi click vào menu File > Import data from file, hộp thoại select file sẽ xuất hiện Page 14 Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản CCXXVI CCXXVII Hình 3.7: Hộp thoại select file CCXXVIII CCXXIX Chọn file văn bản muốn huấn luyện và click Open, nội dung file văn bản. .. Page 18 Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản CCLXXXIX CCXC CCXCI CCXCII CCXCIII CCXCIV CCXCV CCXCVI CCXCVII CCXCVIII CCXCIX CCC CCCI CCCII CCCIII CCCIV CCCV CCCVI CCCVII CCCVIII CCCIX CCCX CCCXI KẾT LUẬN 1 Kết quả đạt được • Trình bày được thuật toán Naïve Bayes • Cài đặt được ứng dụng demo và chạy thử trên tập dữ liệu huấn luyện, phân lớp và kiểm thử tính chính xác 2 Hạn chế và tồn tại... Laws Những văn bản nào có nội dung về giáo dục sẽ thuộc về loại Education Những loại văn bản mang nội dung khoa học sẽ thuộc về Science CCXXXIII Page 15 Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản CCXXXIV Việc huấn luyện cần phải thực hiện chính xác cho mỗi loại, tức là văn bản thuộc về loại nào thì cần phải chọn đúng loại cho văn bản đó Việc huấn luyện này càng nhiều thì chương trình sẽ phân loại . Naive Bayes làm mô hình phân lớp văn bản. CLXXXIX. CXC. ỨNG DỤNG PHÂN LỚP VĂN BẢN 1. Giới thiệu CXCI. NaïveBayesClassifier là ứng dụng phân lớp văn bản demo sử dụng thuật toán Naïve Bayes. Ứng dụng. 10/10/2014 Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản MỤC LỤC Thuật toán Naïve Bayes & ứng dụng phân lớp văn bản I. GIỚI THIỆU 1. Giới thiệu đề tài: II. Đề tài Ứng dụng thuật toán. Naïve Bayes cho bài toán phân lớp văn bản là đề tài thuộc lĩnh vực máy học. Nội dung của đề tài này là tìm hiểu thuật toán Naïve Bayes, qua đó áp dụng thuật toán Naïve Bayes vào bài toán phân lớp

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w