Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
898 KB
Nội dung
H h tr ra quyt nh GVHD: PGS.TS Phỳc MC LC MC LC 1 LI M U 2 T VN 3 PHN I: TNG QUAN V THUT TON NAẽVE BAYES 4 I. Gi i thi u thu t toỏn Naive Bayes 4 II. nh lý Bayes v s phõn ho ch 4 1. nh lý Bayes 4 2. S phõn ho ch 5 III. B phõn l p v cỏc b c tớnh toỏn 6 1. B phõn l p Naùve Bayes 6 2. Cỏc b c tớnh toỏn 7 IV. S v c u trỳc d li u 7 1. S th c hi n 7 2. S kh i c a thu t toỏn 8 3. C u trỳc d li u 9 PHN II: DEMO NG DNG THUT TON NAẽVE BAYES D ON KH NNG SINH VIấN TT NGHIP 10 1. Tớnh xỏc xu t 10 2. Cỏc thu t toỏn chớnh c s d ng t o Demo 11 3. Ch ng trỡnh Demo: 24 1. Túm t t k t qu t c 29 2. H ng phỏt tri n 29 TI LIU THAM KHO 30 HVTH: Nguyn Hunh Thuý Nga_MSSV: CH1301041_Lp Cao hc khúa 8Trang 1/30 Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc LỜI MỞ ĐẦU Ngày nay, lĩnh vực công nghệ thông tin (CNTT) đang phát triển trong thời kỳ đỉnh cao nhất của nó. Ngày càng có nhiều ứng dụng ra đời nhằm đáp ứng yêu cầu thiết yếu của con người. Từ những yêu cầu đơn giản đến những yêu cầu cực kỳ khắt khe về kỹ thuật. Trước khi đầu tư vào một lĩnh vực hay cần ra một quyết định quan trọng. Hầu hết mọi người đều muốn dự đoán trước mức độ rủi ro và tỉ lệ thành công rồi mới đưa ra quyết định cuối cùng. Vì vậy lĩnh vực dự đoán là một phần cực kỳ quan trọng trong các ứng dụng hiện nay. Có thể liệt kê ra một số ứng dụng quen thuộc như: • Dự đoán kết quả bầu cử. • Đánh giá kết quả phát triển trong các lãnh vực nông nghiệp • Định hướng phát triển thị trường • Phân lớp dữ liệu. • Dự đoán khả năng tốt nghiệp của sinh viên Các ứng dụng đòi hỏi có các thuật toán đạt tính chính xác cao. Một trong các thuật toán đó là thuật toán phân lớp đối tượng Bayes (Thuật toán xác suất Bayes). Thuật toán Naïve Bayes có rất nhiều ứng dụng vào thực tiễn. Tuy nhiên, với năng lực còn hạn chế, cũng như không có nhiều thời gian để có thể nghiên cứu sâu vào tất cả các ứng dụng, nên em xin phép chọn đề tài “Ứng dụng thuật toán Naïve Bayes để dự đoán khả năng sinh viên tốt nghiệp”. Em xin chân thành cảm ơn Thầy PGS.TS Đỗ Phúc. Những tiết giảng quý báu của Thầy đã cung cấp cho em những kiến thức nền tảng về các thuật toán hỗ trợ ra quyết định bước khởi đầu giúp em nghiên cứu ứng dụng các thuật toán trên nhiều lĩnh vực. Học Viên Cao Học Khóa 8 NGUYỄN HUỲNH THUÝ NGA * * * HVTH: Nguyễn Huỳnh Thuý Nga_MSSV: CH1301041_Lớp Cao học khóa 8Trang 2/30 Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc ĐẶT VẤN ĐỀ Hiện nay, ở các trường Đại học, Cao đẳng tình trạng sinh viên ra trường trễ hạn rất nhiều. Thậm chí không thể ra trường. Các giảng viên cố vấn học tập cũng không biết căn cứ vào đâu để tư vấn cho các em về vấn đề này thật chính xác và hiệu quả. Ví dụ: Một sinh viên học năm cuối mà tổng điểm trung bình chỉ 1,6, nợ môn , học lực kém …. Một sinh viên năm cuối điểm trung bình 1,85, học lực trung bình, hình thức đào tạo liên thông… Những trường hợp này có thể ra trường không? Giảng viên cố vấn phải quyết định tư vấn thế nào? Sinh viên phải quyết định ra sao? Học tiếp hay chuyển điểm sang hình thức đào tạo thấp hơn phù hợp với năng lực? Từ thực tế đó đòi hỏi phải có 1 phần mềm dự đoán tương đối chính xác khả năng sinh viên tốt nghiệp. Để góp phần cho giảng viên cố vấn học tập có thể đưa ra quyết định tư vấn chính xác, sinh viên có thể đưa ra quyết định đúng đắn hơn. HVTH: Nguyễn Huỳnh Thuý Nga_MSSV: CH1301041_Lớp Cao học khóa 8Trang 3/30 Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc PHẦN I: TỔNG QUAN VỀ THUẬT TOÁN NAÏVE BAYES I. Giới thiệu thuật toán Naive Bayes Naive Bayes (NB) 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 máy học của [Good,1965] [Mitchell, 1996] [Joachims, 1997] [Jason, 2001], đượ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 1961 [Maron, 1961] sau đó trở nên phổ biến dùng trong nhiều lĩnh vực như trong các công cụ tìm kiếm [Rijsbergen et al, 1970], các bộ lọc email [Sahami et al, 1998]… Định lý Bayes cho phép tính xác xuất xảy ra của một sự kiện ngẫu nhiên A khi biết sự kiện ngẫu nhiên B liên quan đã xảy ra. Xác xuất này được ký hiệu là P(A/B) và đọc là “xác xuất của A nếu có B”. đại lượng này được gọi là xác xuất có điều kiện hay xác xuấ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ị đó. Bayes dùng cho việc mô hình hóa tri thức trong các hệ thống y học, kỹ thuật, xư lý ảnh, dung hợp dữ liệu và các hệ hỗ trợ quyết định. Bayes dùng để phân lớp dữ liệu, Email… II. Định lý Bayes và sự phân hoạch 1. Định lý Bayes Giải thuật Naive Bayes chủ yếu dựa vào định lý xác suất của Bayes với giả thuyết là các thuộc tính (Biến, Chiều) độc lập nhau và độ quan trọng của các thuộc tính bằng nhau: Trong đó mẩu tin E=[E 1 , E 2 , E 3 E n ] Có n giá trị thuộc tính được biết như là giá trị dữ liệu cần dự báo và H là lớp (nhãn) dự báo. P(H): Xác suất trước (tiên nghiệm) của giả thuyết (phân loại) H. HVTH: Nguyễn Huỳnh Thuý Nga_MSSV: CH1301041_Lớp Cao học khóa 8Trang 4/30 Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc P(E): Xác suất trước (tiên nghiệm) của việc quan sát dữ liệu E. P(E|H): Xác suất có điều kiện của việc quan sát được dữ liệu E nếu biết giả thuyết (phân loại) H là đúng. Với một tập giải thuyết các (phân lớp) H, là hệ thống học sẽ tìm ra giả thuyết có thể xảy ra nhất. Giả thuyết h này là giải thuyết có xác suất hậu nghiệm cực đại được tính theo định lý Bayes như sau: Do P(E) là như nhau với giả thuyết h 2. Sự phân hoạch Cho H1, H2, …, Hn là một phân hoạch không gian mẫu M và A là biến cố bất kỳ trong M. Ta có: ( ) 0 ( )( | ) n i P A P Hi A Hi = = ∑ Các xác suất P(Hi) và P(A|Hi) thường được biết trước khi thực hiện phép thử và được gọi là xác suất tiền nghiệm ( apriori probability). Xác suất P(A|Hi) cho biết khả năng tham gia của Hi vào việc xảy ra biến cố A. Xác suất P(A|Hi) được gọi là xác suất hậu nghiệm ( a posteriori probability). Có thể tính các xác suất hậu nghiệm từ các xác suất tiền nghiệm theo công thức sau: HVTH: Nguyễn Huỳnh Thuý Nga_MSSV: CH1301041_Lớp Cao học khóa 8Trang 5/30 Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc ( ) ( | ) ( | ) ( ) P Hi P A Hi P Hi A P A = III. Bộ phân lớp và các bước tính toán 1. Bộ phân lớp Naïve Bayes Cho V1,V2, …, Vn là phân hoạch không gian mẫu V, mỗi Vi là một lớp. Không gian các thể hiện X gồm các thể hiện được mô tả bởi tập thuộc tính A1, A2, …, An. Không gian các thể hiện X là tập học. Khi có thể hiện mới với giá trị <a1,a2,…, an>, bộ phân lớp sẽ xuất hiện giá trị hàm phân lớp f(x) là một trong các Vi. Tiếp cận Bayes lấy các giá trị có xác suất cao nhất V MAP cho thể hiện mới. Chữ MAP viết tắt của cụm từ Maximum A Posterior. 1 2 max ( | , , , ) i MAP v V i n V P v a a a ∈ = Sử dụng định lý Bayes ta có: 1 2 1 2 ( ) ( , , , | ) max ( , , , ) i i n i MAP v V n P v P a a a v V P a a a ∈ = 1 2 max ( ) ( , , , | ) i n i P v P a a a v= (4.1) Trong công thức trên có hai số hạng cần quan tâm là P(v1) và P(a1,a2,…,an). Ta tính P(vj) bằng cách đếm số lần xuất hiện của giá trị đích vj trong tập học. Để tính P(a1,a2,…,an) ta giả thuyết ban đầu các thuộc tính là độc lập. Nói cách khác, xác suất của một thể hiện quan sát được <a1, a2, …, an> trên mỗi lớp vj là tích của các khả năng của từng thuộc tính riêng biệt trên vj. 1 2 ( , , , | ) ( | ) n i i i i P a a a v P a v= ∏ Do vậy, công thức (4.1) được viết lại là: max ( ) ( | ) NB vi V i i i i V P v P a v ∈ = ∏ - với NB là viết tắt của cụm từ Naïve Bayes Bộ phân lớp Bayes liên quan đến bước học trong đó P(vj) và P(a1,a2,…,an) được tính dựa trên tập học. HVTH: Nguyễn Huỳnh Thuý Nga_MSSV: CH1301041_Lớp Cao học khóa 8Trang 6/30 Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc Để phân lớp ta dùng công thức: arg max ( ) ( | ) i n NB v V i i i i V P v P a v ∈ = ∏ 2. Các bước tính toán Bước 1: Xác định các nhãn trong tập dữ liệu học. Bước 2: Phân lớp các nhãn trên tập dữ liệu học. Dựa vào nhãn đã phân lớp, thống kê các loại mẩu tin trong nhãn theo phân lớp Yes(Có) hay phân lớp No (Không) trên tập dữ liệu học. Bước 3: Tính tỷ lệ các loại mẩu tin theo phân lớp Yes (Có) hoặc No (Không) trên tập dữ liệu học. Bước 4: Tính xác suất của mẩu tin trên tập dữ liệu kiểm thử và đưa ra kết luận. Tính xác suất của mẩu tin trong tập dữ liệu kiểm thử theo phân lớp Yes (Có) và tinh xác suất của mẩu tin trong tập dữ liệu kiểm thử theo phân lớp No (Không). So sánh 2 kết quả: Nếu xác suất dự báo mẩu tin cho lớp Yes (Có) lớn hơn lớp No (Không) thì Naive Bayes gán cho lớp Yes (Có). Nếu xác suất dự báo mẩu tin cho lớp No(Không) lớn hơn lớp Yes(Có) thì Naive Bayes gán cho lớp No(Không). IV. Sơ đồ và cấu trúc dữ liệu 1. Sơ đồ thực hiện HVTH: Nguyễn Huỳnh Thuý Nga_MSSV: CH1301041_Lớp Cao học khóa 8Trang 7/30 CÁC BƯỚC XỬ LÝ ĐẦU VÀO ĐẦU RA Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc 2. Sơ đồ khối của thuật toán HVTH: Nguyễn Huỳnh Thuý Nga_MSSV: CH1301041_Lớp Cao học khóa 8Trang 8/30 X=(x1,x2, , xn)… P(y), P(N) P(X/P(Y)) P(X/P(N)) P(X/P(Y)) > P(X/P(N)) = ? P(X/P(Y))=0 hoặc P(X/P(N))=0 KẾT LUẬN T F THÊM BỘ DỮ LIỆU T F Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc 3. Cấu trúc dữ liệu Vì độ phức tạp của thuật toán không cao nên cấu trúc dữ liệu được sử dụng trong đề tài này sẽ chủ yếu dùng danh sách liên kết để lưu trữ dữ liệu. Cấu trúc dữ liệu lưu dữ liệu các luật học cho trước: o Public DataTable dtb; Cấu trúc dữ liệu lưu vector X(X1,X2, ,XN) o public List<string> Vector; o public List<string> VectorNameHeader; * Diễn giải cấu trúc dữ liệu Ta sử dụng một datatable như là một bảng dữ liệu. Ở đó nó có thể chứa dữ liệu rất lớn giống như một tài liệu Excel. Sẽ có các cột, các dòng tùy theo số lượng dữ liệu chúng ta quy định. Đặc biệt thuận lợi khi lưu trữ dữ liệu dạng bảng số List<Kiểu dữ liệu> Tên biến: Khai báo một dang sách liên kết đơn, nó giống như một kiểu mảng Array lưu trữ dữ liệu một cách uyển chuyển và linh hoạt. Nó chứa các phương thức Add (Thêm một phần tử), Sort (Sắp xếp dữ liệu), Binary Seach (Tìm kiếm nhị phân) Ngoài ra còn một số cấu trúc dữ liệu đơn giản khác mà chúng em xin được phép không đưa vào báo cáo này. Chúng em tập trung chủ yếu vào các cấu trúc dữ liệu hay được sử dụng trong chương trình. HVTH: Nguyễn Huỳnh Thuý Nga_MSSV: CH1301041_Lớp Cao học khóa 8Trang 9/30 Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc PHẦN II: DEMO ỨNG DỤNG THUẬT TOÁN NAÏVE BAYES ĐỂ DỰ ĐOÁN KHẢ NĂNG SINH VIÊN TỐT NGHIỆP 1. Tính xác xuất Xét bảng dữ liệu sau đây thông qua việc xét một sinh viên đại học năm 4 có khả năng tốt nghiệp không? Cho tập dữ liệu traning như sau: Hoc_luc_nam_HT Loai_hinh_DT Do_Tuoi no_mon Tot_nghiep Gioi Chinh_Quy Dung_Tuoi Co No Gioi Chinh_Quy Dung_Tuoi Khong No Kha Chinh_Quy Dung_Tuoi Co Yes Trung_Binh Lien_Thong Dung_Tuoi Co Yes Trung_Binh Lien_thong_tu_x a Lon_tuoi Co Yes Trung_Binh Lien_thong_tu_x a Lon_tuoi Khong No Kha Lien_thong_tu_x a Lon_tuoi Khong Yes Gioi Lien_Thong Dung_Tuoi Co No Gioi Lien_thong_tu_x a Lon_tuoi Co Yes Trung_Binh Lien_Thong Lon_tuoi Co Yes Gioi Lien_Thong Lon_tuoi Khong Yes Kha Lien_Thong Dung_Tuoi Khong Yes Kha Chinh_Quy Lon_tuoi Co Yes Trung_Binh Lien_Thong Dung_Tuoi Khong No Với tập dữ liệu trên hãy áp dụng giải thật Naïve Bayes để xác định phân lớp cho mẩu sau: Hoc_luc_nam_HT Loai_hinh_DT Do_Tuoi No_mon Tot_nghiep Gioi Lien_thong_tu_x a Dung_Tuoi Co X Quá trình dự báo như sau: P[Yes|X] = (2/9).(3/9).(3/9) .(3/9).(9/14)/P[X] = 0.0053/P[X] P[No|X] = (3/5).(1/5).(4/5).(3/5).(5/14)/P[X] = 0.0206/P[X] HVTH: Nguyễn Huỳnh Thuý Nga_MSSV: CH1301041_Lớp Cao học khóa 8Trang 10/30 [...]... 28/30 Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc KẾT LUẬN 1 Tóm tắt kết quả đạt được Dựa vào thuật toán Navie Bayes ta có thể dự đoán cho sinh viên năm cuối có thể tốt nghiệp hay không trên tập dữ liệu Training đựợc khảo sát trước Dựa vào kết quả dự đoán giảng viên cố vấn có thể tư vấn cho sinh viên tiếp tục cố gắng hay chuyển điểm sang hệ đào tạo thấp hơn phù hợp với sinh viên Ngược lại sinh viên cũng... viên cũng có thể dựa vào đó để quyết định có nên tiếp tục học hay chuyển điểm sang ngành đào tạo thấp hơn phù hợp với năng lực của mình Chương trình demo đã áp dụng thành công lý thuyết Bayes trong phân lớp dữ liệu sinh viên có khả năng tốt nghiệp Chương trình demo xử lý cho ngôn ngữ là tiếng Việt không dấu dễ sử dụng 2 Hướng phát triển Áp dụng chương vào dự đoán khả năng sinh viên tốt nghiệp của từng... khóa 8Trang 25/30 Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc Tab 3: Phân lớp lại dữ liệu Mô tả: Trong trường hợp xác suất bằng 0, giải thuật sẽ phân lớp lại theo ước lượng Laplace Tab 4: Dự đoán xác xuất: Cách 1: Nhập vào số dòng cần dự đoán và sau đó chọn các thuộc tính cần dự đoán HVTH: Nguyễn Huỳnh Thuý Nga_MSSV: CH1301041_Lớp Cao học khóa 8Trang 26/30 Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc... Phúc Cách 2: Nhập file csv vào để dự đoán: Ghi chú: Cả 2 cách trên điều có thể dự đoán được nhiều dòng HVTH: Nguyễn Huỳnh Thuý Nga_MSSV: CH1301041_Lớp Cao học khóa 8Trang 27/30 Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc Tab 5: Đánh giá thuật toán: Mô tả: Thông thường người ta muốn kiểm tra xem độ chính xác của thuật toán đến đâu thì họ sẽ sử dụng ma trận Confusion để đánh giá Trong trường hợp dữ... khóa 8Trang 23/30 Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc MessageBox.Show(ex.Message.ToString()); } } } 3 Chương trình Demo: * Cách cài đặt chương trình: - Bước 1: Ta cài file Sp_Naive _Bayes. msi trong đường dẫn Naive _Bayes_ Demo\Sp_Naive _Bayes\ Sp_Naive _Bayes\ Express\DVD5\DiskImages\DISK1\ - Bước 2: Chạy file Navie_ Bayes. exe trong đường dẫn Naive _Bayes_ Demo\Sp_Naive _Bayes\ Sp_Naive _Bayes\ Express\DVD5\DiskImages\DISK1\program... Nga_MSSV: CH1301041_Lớp Cao học khóa 8Trang 29/30 Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc TÀI LIỆU THAM KHẢO 1 PGS-TS Đỗ Phúc Các Slide bài giảng chuyên đề Hệ hỗ trợ ra quyết định – 2014 2 ThS Nguyễn Văn Nối Bài giảng học phần "Kỹ thuật lập trình C” – 2011 1 Dino Isa, V P Kallimani , R Rajkumar , Lam Hong, Lee - Text Document Pre-Processing Using the Bayes Formula for Classification Based on the Vector...Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc Từ tính toán trên, ước lượng xác suất dự báo mẫu tin X cho lớp Tot_nghiep = no lớn hơn ước lượng xác suất lớp Tot_nghiep = yes, NB gán nhãn X cho lớp no + Trường hợp nếu giá trị của thuộc tính không xuất hiện trong tất cả các lớp, chúng ta có thể áp dụng ước lượng Laplace để tránh trường hợp xác suất bằng 0 Giả sử μ là hằng số dương và pi là các hệ số... ước lượng xác suất cộng thêm cho tử số một giá trị là piμ và mẫu số là μ để tính xác suất + Trường hợp dữ liệu liên tục: Ở Bước 2 khi làm việc với dữ liệu liên tục, giả thuyết dữ liệu tuân theo phân phối chuẩn (GAUSS) Công thức tính xác suất dựa trên hàm mật độ xác suất 2 Các thuật toán chính được sử dụng để tạo Demo Thuật toán tính xác xuất No cho dữ liệu liên tục public double TinhNoNumFc (int... liệu tranning (Tập dữ liệu chứa trong Folder DATA có đường dẫn là NAVIE_ BAYES_ DEMO/DATA) - Chọn trên từng danh sách thuộc tính sẽ hiển thị các Label danh sách cần tìm HVTH: Nguyễn Huỳnh Thuý Nga_MSSV: CH1301041_Lớp Cao học khóa 8Trang 24/30 Hợ hỗ trợ ra quyết định GVHD: PGS.TS Đỗ Phúc Tab 2: Phân lớp dữ liệu: Mô tả: nhấn vào nút tạo mô hình để tính xác suất cho tập dữ liệu tranning - Lúc này chưa phân... lớp thuộc Khoa Công nghệ thông tin – Trường Đại học Tiền Giang Chương trình demo chỉ xử lý cho ngôn ngữ là tiếng việt không dấu Tương lai đề tài cần mở rộng xử lý cho ngôn ngữ là tiếng Việt có dấu gần gũi với người sử dụng Chỉnh sửa giao diện đẹp mắt và hợp lý hơn Tinh chỉnh code để có thể xử lý nhanh hơn trong bộ dữ liệu lớn (Nhiều sinh viên + nhiều thuộc tính) Kết hợp thuật toán SVM trong việc phân . tốt nghiệp của sinh viên Các ứng dụng đòi hỏi có các thuật toán đạt tính chính xác cao. Một trong các thuật toán đó là thuật toán phân lớp đối tượng Bayes (Thuật toán xác suất Bayes) . Thuật toán. phần mềm dự đoán tương đối chính xác khả năng sinh viên tốt nghiệp. Để góp phần cho giảng viên cố vấn học tập có thể đưa ra quyết định tư vấn chính xác, sinh viên có thể đưa ra quyết định đúng. THUẬT TOÁN NAÏVE BAYES ĐỂ DỰ ĐOÁN KHẢ NĂNG SINH VIÊN TỐT NGHIỆP 1. Tính xác xuất Xét bảng dữ liệu sau đây thông qua việc xét một sinh viên đại học năm 4 có khả năng tốt nghiệp không? Cho tập