Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 62 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
62
Dung lượng
3,48 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUY NHƠN TRẦN CƠNG SỰ ỨNG DỤNG TĨM TẮT DỮ LIỆU CHO BÀI TOÁN PHÂN LỚP VÀ DỰ BÁO LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Bình Định - Năm 2021 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUY NHƠN TRẦN CƠNG SỰ ỨNG DỤNG TĨM TẮT DỮ LIỆU CHO BÀI TOÁN PHÂN LỚP VÀ DỰ BÁO Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01 Người hướng dẫn: TS LÊ XUÂN VIỆT Bình Định - Năm 2021 LỜI CAM ĐOAN Tôi Trần Công Sự, học viên lớp cao học Khoa học máy tính K22 Tôi xin cam đoan nghiên với đề tài "Ứng dụng tóm tắt liệu cho tốn phân lớp dự báo"được trình bày luận văn cơng trình nghiên cứu riêng tơi hướng dẫn thầy giáo TS Lê Xuân Việt, không chép lại người khác Tất nguồn tài liệu tham khảo, cơng trình nghiên cứu liên quan trích dẫn cụ thể Tơi xin chịu hồn tồn trách nhiệm có phát chép mà khơng có trích dẫn tài liệu tham khảo ii LỜI CẢM ƠN Luận văn hoàn thành hướng dẫn khoa học TS Lê Xuân Việt, Khoa CNTT - Trường Đại học Quy Nhơn Tác giả xin bày tỏ lịng biết ơn chân thành kính trọng sâu sắc đến Thầy hướng dẫn; Thầy tận tình giúp đỡ truyền đạt cho tác giả kiến thức quý báu kinh nghiệm trình nghiên cứu khoa học, để tác giả hồn thành luận văn cách tốt Tác giả xin chân thành cảm ơn quý thầy cô khoa Công nghệ thơng tin, phịng Sau đại học, Trường Đại học Quy Nhơn, quý thầy cô tham gia giảng dạy cho lớp Cao học Khoa học máy tính khố 22 tạo điều kiện cho tác giả trình học tập nghiên cứu Nhân tác giả xin cảm ơn gia đình, bạn bè quan tâm, động viên giúp đỡ tác giả trình học tập hoàn thành luận văn Tác giả hy vọng luận văn đóng góp tài liệu tham khảo hữu ích cho bạn sinh viên, học viên cao học tìm tịi nghiên cứu tốn tóm tắt liệu dự báo Mặc dù cố gắng hết sức, song điều kiện thời gian kinh nghiệm thực tế thân ít, đề tài tránh khỏi thiếu sót Vì vậy, mong nhận đóng góp ý kiến quý thầy cô bạn Tôi xin chân thành cảm ơn! iii Mục lục Lời cam đoan i Lời cảm ơn ii Danh mục thuật ngữ, từ viết tắt v Danh sách hình vẽ Danh sách bảng vi vii Mở đầu 1 CÁC KIẾN THỨC CƠ SỞ 1.1 1.2 Khám phá tri thức khai phá liệu Quá trình khám phá tri thức 1.3 Các phương pháp, kỹ thuật khai phá liệu 1.3.1 1.3.2 1.4 Bài toán dự báo 11 1.4.1 Khái niệm dự báo 11 1.4.2 1.4.3 1.5 Phân lớp dự đoán (Classification & Prediction) Mạng Bayesian (Bayesian networks) 10 Đặc điểm dự báo 11 Chức vai trò dự báo 12 Kết luận Chương 12 PHƯƠNG PHÁP DỰ BÁO SỬ DỤNG KỸ THUẬT PHÂN LỚP DỮ LIỆU NAIVE BAYES 13 iv 2.1 2.2 Tổng quan phân loại liệu 13 Phân loại liệu với mạng Bayesian 15 2.3 Các bước giải toán dự báo sử dụng kỹ thuật phân lớp Naive Bayes 20 2.4 Một số ví dụ minh họa 24 2.4.1 Trường hợp mẫu dự đoán xuất liệu 2.4.2 huấn luyện 24 Trường hợp mẫu dự đốn khơng xuất liệu huấn luyện 28 2.5 2.4.3 Sử dụng kỹ thuật làm mịn liệu Laplace Smoothing 32 Một số ưu điểm phương pháp Naive Bayes 36 2.6 Kết luận Chương 37 THỬ NGHIỆM VÀ ĐÁNH GIÁ 38 3.1 Mơ tả tốn 39 3.1.1 3.2 Bài toán 39 3.1.2 Làm sạch, tiền xử lý liệu 39 Phân tích tốn 42 3.2.1 3.2.2 Tóm tắt liệu 42 Phân lớp cho liệu 46 3.3 3.2.3 Dự đoán kết 46 Giao diện chương trình 47 3.4 3.5 Đánh giá kết 47 Kết luận Chương 48 KẾT LUẬN 51 TÀI LIỆU THAM KHẢO 52 v DANH MỤC THUẬT NGỮ, CÁC TỪ VIẾT TẮT STT Tiếng Anh/Viết tắt Tiếng Việt/Nghĩa THPT TRUNG HỌC PHỔ THÔNG NB Naive Bayes CSDL Cơ sở liệu KPDL Khai phá liệu NBC Naive Bayes Classifier M Điểm miệng TX1 Điểm thường xuyên TX2 Điểm thường xuyên TX3 Điểm thường xuyên 10 GK Điểm kỳ 11 CK Điểm cuối kỳ 12 Training data Dữ liệu đào tạo 13 Test data Dữ liệu kiểm tra 14 Noise Dữ liệu lỗi 15 Missing value Giá trị thiếu 16 Frequency table Bảng tần số 17 Likehood Khả xảy vi Danh sách hình vẽ 1.1 Quá trình khám phá tri thức 2.1 Bước học/huấn luyện 14 2.2 Bước phân loại liệu 14 2.3 2.4 Phân loại liệu dạng học có giám sát 15 CSDL khách hàng AllElectronics dùng cho bước học 16 2.5 2.6 Ví dụ liệu đầu vào 23 Số lần xuất từ email 33 2.7 2.8 Lớp Spam trước sau Smoothing 33 Lớp Not Spam trước sau Smoothing 34 3.1 Dữ liệu thô bảng điểm học sinh 39 3.2 Dữ liệu sau tổng hợp 41 3.3 3.4 Dữ liệu sau làm 42 Giao diện ứng dụng 47 3.5 3.6 Giao diện nhập liệu kết dự báo 48 Kết Test 100 ghi liệu 49 3.7 Kết Test 100 ghi liệu (tiếp theo) 50 vii Danh sách bảng 2.1 Tần suất đặc trưng buys_computer 18 2.2 2.3 Tần suất đặc trưng age 18 Tần suất đặc trưng income 19 2.4 2.5 Tần suất đặc trưng student 19 Tần suất đặc trưng student 19 2.6 Kết xét tuyển vào 10 24 2.7 2.8 Xác suất thuộc tính nơi ở, điểm vào 10, kinh tế, giới tính 25 Dữ liệu việc học muộn học sinh 28 2.9 Dữ liệu việc học muộn học sinh 28 2.10 Tần suất đặc trưng Sức khỏe 29 2.11 Tần suất đặc trưng Thời tiết 29 MỞ ĐẦU Lý chọn đề tài Trong trình hoạt động, người tạo nhiều liệu nghiệp vụ Các tập liệu tích lũy có kích thước ngày lớn, chứa nhiều thông tin ẩn dạng quy luật chưa khám phá Chính vậy, nhu cầu đặt cần tìm cách trích rút từ tập liệu luật phân lớp liệu hay dự đoán xu hướng liệu tương lai Những quy tắc nghiệp vụ thông minh tạo phục vụ đắc lực cho hoạt động thực tiễn, phục vụ đắc lực cho trình nghiên cứu khoa học Cơng nghệ phân lớp dự đốn liệu đời để đáp ứng mong muốn [1] Công nghệ phân lớp liệu đã, phát triển mạnh mẽ trước khao khát tri thức người Trong năm qua, phân lớp liệu thu hút quan tâm nhà nghiên cứu nhiều lĩnh vực khác học máy (machine learning), hệ chuyên gia (expert systems), thống kê (statistics), Công nghệ ứng dụng nhiều lĩnh vực thực tế như: thương mại, nhà băng, maketing, nghiên cứu thị trường, bảo hiểm, y tế, giáo dục [1] Có nhiều phương pháp dự báo khác Hiện nay, việc sử dụng phương pháp học máy ứng dụng cho toán dự báo trở nên phổ biến Trong đó, dự báo sử dụng phân lớp Bayes ứng dụng rộng rãi, công cụ dễ cài đặt, học nhanh, kết dễ hiểu Ví dụ, dự báo giá loại mặt hàng, dự báo tỉ lệ tăng dân số, biết thông tin khứ số điều kiện cho trước [2] Luận văn nghiên cứu tổng quan kỹ thuật phân lớp liệu 39 lớp học trường THPT Trần Cao Vân, Chư Sê, Gia Lai, với 829 học sinh (tương ứng 829 ghi liệu loại điểm số môn học cụ thể) 3.1 3.1.1 Mơ tả tốn Bài tốn Dự đốn kết học tập môn học học sinh học kỳ Thông tin liệu đầu vào Điểm học tập học kỳ học sinh gồm: Điểm miệng (M), kiểm tra thường xuyên (TX), kiểm tra kỳ (GK) điểm cuối kỳ (CK) Dự đoán kết cuối học sinh đạt trình học tập Dữ liệu thu thập 20 file excel liệu lưu Sổ gọi tên ghi điểm 20 lớp học kỳ năm học 2020-2021 trường THPT Trần Cao Vân, Gia Lai Hình 3.1: Dữ liệu thơ bảng điểm học sinh 3.1.2 Làm sạch, tiền xử lý liệu Dữ liệu cần lấy sổ điểm bảng điểm mơn Tốn (vì mơn Tốn mơn học có số cột điểm nhiều so với mơn học cịn lại nên lấy liệu môn học để training) Dữ liệu cần lấy bảng điểm môn Tốn cột điểm chính: điểm Miệng, điểm Thường xuyên 1, 40 điểm Thường xuyên 2, điểm Thường xuyên 3, điểm kỳ điểm cuối kỳ Nhưng trước hết ta cần phải tổng hợp lại thành file chứa điểm mơn Tốn 20 lớp (lưu dạng DataFrame hỗ trợ thư viện Pandas ngơn ngữ lập trình Python) Bước 1: Tổng hợp liệu từ nhiều file # Khai b o th vi ệ n import pandas as pd import numpy as np import os # G n đ ng d ẫ n th m ụ c ch ứ a d ữ li ệ u v t ê n Sheet l m vi ệ c path = " / Master_Thesis_Data / " sheetName = " Diem_HKII " # G ộ p d ữ li ệ u 20 sheet t 20 file c ầ n l ấ y d ữ li ệ u c ù ng th m ụ c frames = [] for in os listdir ( path ) : file endswith ( " xls " ) : file if filepath = path + file df1 = pd read_excel ( filepath , sheet_name = sheetName , skiprows = range (5) , skipfooter = , header = None , index_col = 0) frames append ( df1 ) result = pd concat ( frames ) df = result df to_excel ( " Concat_Result xlsx " ) 41 Kết thu tất trường liệu bảng điểm mơn Tốn từ Sổ gọi tên ghi điểm lớp; với số ghi số học sinh lớp Hình 3.2: Dữ liệu sau tổng hợp Bước Làm liệu file tổng hợp (Chuẩn hoá liệu) folder = " / Master_Thesis_Data " df = pd read_excel ( " Concat_Result xlsx " ) df = df loc [: , [1 , , , , , 12 , 20 , 21]] df = df rename ( columns = {1: " H ọ v t ê n " , 2: " M " , 3: " TX1 " , 4: " TX2 " , 5: " TX3 " , 12: " GK " , 21: " TBM " }) df = df dropna ( axis = , subset = [ " H ọ v t ê n " ]) df [ " K ế t qu ả " ] = " " dk = [ ( df [ " TBM " ] < 3.5) , ( df [ " TBM " ] >= 3.5) & ( df [ " TBM " ] < 5) , ( df [ " TBM " ] >= 6.5) & ( df [ " TBM " ] < 8) ] chon = [ " K é m " , " Y ế u " , " TB " , " Kh " ] df [ " K ế t qu ả " ] = np select ( dk , chon , default = " Gi ỏ i " ) df to_csv ( " Training_Data csv " , encoding = " utf -8 - sig " ) 42 Kết thu liệu điểm cần phục vụ cho trình training tốn Hình 3.3: Dữ liệu sau làm 3.2 3.2.1 Phân tích tốn Tóm tắt liệu Thống kê liệu trường kết quả: def total () : sl =[0 ,0 ,0 ,0 ,0] for i in range ( l e n ( TBM ) ) : XL = convert ( f l o a t ( TBM [ i ]) ) if XL == " K " : sl [0]+=1 if XL == " Y " : 43 sl [1]+=1 if XL == " TB " : sl [2]+=1 if XL == " Kh " : sl [3]+=1 if XL == " G " : sl [4]+=1 return sl slXL = total () Thống kê liệu đầu vào tính xác suất điểm Miệng: def XSM ( Min , XLin ) : P =0 total_in =1 for i in range ( l e n ( TBM ) ) : XL = convert ( f l o a t ( TBM [ i ]) ) if XL == XLin : total_in +=1 if convert ( f l o a t ( M [ i ]) ) == convert ( f l o a t ( Min ) ) : P +=1 P = P / total_in return P Thống kê liệu đầu vào tính xác suất điểm Thường xuyên: def XSTX1 ( TXin , XLin ) : P =0 total_in =1 for i in range ( l e n ( TBM ) ) : XL = convert ( f l o a t ( TBM [ i ]) ) if XL == XLin : total_in +=1 44 if convert ( f l o a t ( TX1 [ i ]) ) == convert ( f l o a t ( TXin ) ) : P +=1 P = P / total_in return def P XSTX2 ( TXin , XLin ) : P =0 total_in =1 for i in range ( l e n ( TBM ) ) : XL = convert ( f l o a t ( TBM [ i ]) ) if XL == XLin : total_in +=1 if convert ( f l o a t ( TX2 [ i ]) ) == convert ( f l o a t ( TXin ) ) : P +=1 P = P / total_in return def P XSTX3 ( TX3in , XLin ) : P =0 total_in =1 for i in range ( l e n ( TBM ) ) : XL = convert ( f l o a t ( TBM [ i ]) ) if XL == XLin : total_in +=1 if convert ( f l o a t ( TX3 [ i ]) ) == convert ( f l o a t ( TX3in ) ) : 45 P +=1 P = P / total_in return P Thống kê liệu đầu vào tính xác suất điểm Giữa kỳ: def XSGK ( GKin , XLin ) : P =0 total_in =1 for i in range ( l e n ( TBM ) ) : XL = convert ( f l o a t ( TBM [ i ]) ) if XL == XLin : total_in +=1 if convert ( f l o a t ( GK [ i ]) ) == convert ( f l o a t ( GKin ) ) : P +=1 P = P / total_in return P Thống kê liệu đầu vào tính xác suất điểm Cuối kỳ: def XSCK ( CKin , XLin ) : P =0 total_in =1 for i in range ( l e n ( TBM ) ) : XL = convert ( f l o a t ( TBM [ i ]) ) if XL == XLin : total_in +=1 if convert ( f l o a t ( CK [ i ]) ) == convert ( f l o a t ( CKin ) ) : P +=1 P = P / total_in return P 46 3.2.2 Phân lớp cho liệu Tiến hành phân lớp liệu dựa liệu có so với liệu đầu vào XL1 =[ " K é m " ," Y ế u " ," Trung B ì nh " ," Kh " ," Gi ỏ i " ] XL =[ " K " ," Y " ," TB " ," Kh " ," G " ] P =[1 ,1 ,1 ,1 ,1] maxs =0 index =0 for j if in range ( l e n ( XL ) ) : a > -1: P [ j ]= P [ j ]* XSM (a , XL [ j ]) if b > -1: P [ j ]= P [ j ]* XSTX1 (b , XL [ j ]) if c > -1: P [ j ]= P [ j ]* XSTX2 (c , XL [ j ]) if d > -1: P [ j ]= P [ j ]* XSTX3 (d , XL [ j ]) if e > -1: P [ j ]= P [ j ]* XSGK (e , XL [ j ]) if f > -1: P [ j ]= P [ j ]* XSCK (f , XL [ j ]) 3.2.3 Dự đoán kết Áp dụng kỹ thuật phân lớp Bayesian để dự đoán kết quả: for if i in range ( l e n (P)): P [ i ] > maxs : maxs = P [ i ] index = i 47 3.3 Giao diện chương trình Giao diện chạy ứng dụng: Hình 3.4: Giao diện ứng dụng Sau nhập liệu điểm (mỗi giá trị điểm tương ứng với liệu theo thời gian) em học sinh cần dự đốn Sau ấn nút lệnh “DỰ BÁO” để xem kết Để thực dự báo khác ta chọn nút lệnh “Dự đốn khác” Giao diện chạy chương trình với liệu nhập vào để khảo sát: 3.4 Đánh giá kết Ở xét liệu kết dự báo 100 ghi ngẫu nhiên trường hợp có nửa liệu dự đốn (tức có cột điểm Miệng, điểm Thường xuyên điểm Thường xuyên 2) trường hợp có đầy đủ cột điểm kết thu so với thực tế Hình 3.6 Hình 3.7 - Trường hợp nhập cột điểm: có 65 kết dự đoán - Trường hợp nhập cột điểm: có 87 kết dự đốn 48 Hình 3.5: Giao diện nhập liệu kết dự báo Từ kết cho thấy: kết dự đoán phương pháp tốt đặc biệt số lượng liệu nhiều kết dự đoán cao điều sát với thực tế Khi có kết dự đốn, dự báo giúp học sinh giáo viên có định hướng, điều chỉnh việc học tập, thi cử để có kết tốt Mở rộng nhà quản lý, hoạch định có định, định hướng phù hợp theo thời gian tương lai 3.5 Kết luận Chương Nội dung Chương trình bày ứng dụng kỹ thuật phân lớp toán dự báo Đã tiến hành cài đặt ứng dụng liệu điểm thực tế Ứng dụng chứng minh khả áp dụng kỹ thuật phân lớp liệu NB nói chung lĩnh vực khoa học máy tính mà cụ thể phục vụ cho nhu cầu định người, từ định hướng điều chỉnh theo chiều hướng tích cực 49 Hình 3.6: Kết Test 100 ghi liệu 50 Hình 3.7: Kết Test 100 ghi liệu (tiếp theo) 51 KẾT LUẬN Trong luận văn "Ứng dụng tóm tắt liệu cho tốn phân lớp dự báo" chúng tơi đạt số kết sau: ❼ Trình bày khái niệm khám phá tri thức khai phá liệu;quá trình khám phá tri thức; phương pháp, kỹ thuật khai phá liệu, tập trung đề cập phương pháp phân lớp dự đốn; tìm hiểu mạng Bayesian nhìn tổng quan toán dự báo ❼ Đầu chương chúng tơi trình bày kiến thức phân loại liệu phân loại liệu với mạng Bayesian Phần trọng tâm đề xuất bước để giải toán dự báo sử dụng kỹ thuật phân lớp liệu NB; cuối chương số ví dụ minh họa cho trường hợp dự báo xảy ❼ Trong chương sử dụng bước giải đề xuất chương trước để tiến hành cài đặt đánh giá kết liệu thực tế Hạn chế hướng phát triển luận văn: Hướng khắc phục cho vấn đề xác suất “bằng khơng” ta xử lý theo cách giải ví dụ minh họa mục 2.4.3 sử dụng phương án [9] - [?] Bên cạnh phát triển phần giao diện thân thiện hơn, đồng thời tiếp cận phương pháp phân lớp khác cho toán để mang lại kết dự báo tốt cho nhiều trường hợp xảy thực tế 52 Tài liệu tham khảo [1] Katarzyna Kaczmarek-Majer, Olgierd Hryniewicz, "Application of Linguistic Summarization Methods in Time Series", Information Sciences, no INS 14080, 2018 [2] T V T N Châu, "Khai phá liệu", in Chương 4: Phân loại liệu, Tp Hồ Chí Minh, Khoa Khoa học & kỹ thuật máy tính, Trường ĐHBK Tp Hồ Chí Minh, 2011-2012 [3] Jiawei Han, Micheline Kamber, “Data Mining: Concepts and Techniques”, Second Edition, Morgan Kaufmann Publishers, 2006 [4] Graham J Williams, Simeon J Simoff, “Data Mining: Theory, Methodology, Techniques, and Applications”, Springer-Verlag, 2006 [5] N T T Linh, Nghiên cứu thuật toán phân lớp liệu Dựa định, Hà Nội: Trường ĐH Công Nghệ, 2005 [6] P H Q Thụy, Bài giảng Khai phá liệu„ Hà Nội: Đại học Công Nghệ-Đại Học Quốc Gia Hà Nội [7] Jiawei Han Micheline Kamber, Khái niệm kỹ thuật khai phá liệu, 2012 [8] Duan Li-guo, Di peng*, Li Ai-ping, A New Naive Bayes Text Classification Algorithm, Indonesian Journal of Electrical Engineering, 2014 [9] Đào Đức Anh, Nguyễn Tu Trung, Vũ Văn Thỏa, "Ứng dụng thuật toán bayes vấn đề dự báo học lực học sinh phổ thơng,"Tạp chí khoa học CNTT&TT, no Số 01 (CS.01) 2020 , 2020 53 [10] H A Công, "Nghiên cứu lý thuyết naive bayes ứng dụng Phân loại tài liệu tiếng việt thư viện số" [11] N V Huy, "Thuật toán Bayes ứng dụng,"vol Khóa luận tốt nghiệp, 2009 [12] N B Nam, "Nghiên cứu ứng dụng khai phá liệu chuỗi thời,"2012 [13] Hoàng Thị Lan Giao, Giang Hào Cơn, Nghiên cứu ứng dụng thuật tốn phân lớp vào tốn dự đốn rủi ro tín dụng ngân hàng tổ chức tín dụng - Một số vấn đề chọn lọc Công nghệ thông tin truyền thông, Cần Thơ, 2011, pp 7-8 tháng 10 năm 2011 ... giải toán dự báo sử dụng kỹ thuật phân lớp liệu NB 13 Chương PHƯƠNG PHÁP DỰ BÁO SỬ DỤNG KỸ THUẬT PHÂN LỚP DỮ LIỆU NAIVE BAYES 2.1 Tổng quan phân loại liệu Phân loại liệu (classification) Dạng phân. .. phá liệu Sau trình bày kỹ thuật phân lớp Bayesian toán dự báo Để làm tiền đề cho việc triển khai toán dự báo sử dụng kỹ thuật phân lớp liệu NB Chương Chương Phương pháp dự báo sử dụng kỹ thuật phân. .. học máy ứng dụng cho tốn dự báo trở nên phổ biến Trong đó, dự báo sử dụng phân lớp Bayes ứng dụng rộng rãi, công cụ dễ cài đặt, học nhanh, kết dễ hiểu Ví dụ, dự báo giá loại mặt hàng, dự báo tỉ