Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 92 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
92
Dung lượng
3,56 MB
Nội dung
NGUYỄN HÙNG CƯỜNG BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI LUẬN VĂN THẠC sĩ CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN Thư viện Trường Đại học Mở Hà Nội TƯ VÁN CHỌN NGÀNH HỌC TẠI HỌC VIỆN CNTT NIIT-ICT HN SỬ DỤNG PHƯƠNG PHÁP HỌC MÁY NGUYỄN HỪNG CƯỜNG KHÓA 19 HÀ NỘI - NĂM 2023 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỎ HÀ NỘI NGUYỀN HÙNG CƯỜNG Thư viện Trường Đại học Mở Hà Nội TƯ VẤN CHỌN NGÀNH HỌC TẠI HỌC VIỆN CNTT NIIT-ICT HN SỬ DỤNG PHƯƠNG PHÁP HỌC MÁY NGÀNH/CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN Mã đề tài: 1452 NGƯỜI HƯỚNG DÀN KHOA HỌC: PGS.TS NGUYỄN QUANG HOAN LUẬN VĂN TỐT NGHIỆP THẠC sĩ HÀ NỘI - NĂM 2023 LỜI CAM ĐOAN Tôi cam đoan cơng trình nghiên cứu cùa riêng tơi Các số liệu, kết quà nêu luận văn trung thực chưa công bố công trinh khác Hà Nội, ngày tháng 08 năm 2023 HỌC VIÊN Nguyễn Hùng Cường Thư viện Trường Đại học Mở Hà Nội LỜI CẢM ƠN Em xin chân thành cảm ơn Khoa Công nghệ thông tin - Trường Đại học Mớ Hà Nội Học viện đào tạo Công nghệ thông tin NIIT-ICT HN tạo điều kiện thuận lợi giúp em nhiều đổ hoàn thành luận văn Em xin gửi lời cảm ơn sâu sẳc hướng dẫn, dạy tận tình PGS.TS Nguyền Quang Hoan trình thực triến khai đề tài, em trân trọng thầy dành thời gian công sức giúp đỡ em đe có the hồn thành luận văn Em xin cảm ơn giảng viên cán khoa Công nghệ thông tin - Trường Đại học Mở Hà Nội truyền thụ kiến thức, hồ trợ em suốt trình học tập vừa qua Cảm ơn bạn bè, đong nghiệp, gia đỉnh người thân yêu đồng hành, tạo điều kiện, động viên giúp đờ em trinh học tập, công tác đế hồn thành khóa học luận văn nàỵaị Ị10c \4o’ Hà Nôi Đặc biệt cảm ơn vợ hai chia sẻ, bên cạnh động viên, tạo điều kiện, chấp nhận thiệt thòi, nguồn động lực to lớn, đe chồng/bố hồn thành khố học luận văn ii MỤC LỤC LỊĨ CAM ĐOAN i LỜI CẢM ƠN ii DANH SÁCH THUẬT NGŨ VIẾT TẮT TIẾNG VIỆT vii DANH SÁCH CÁC BẢNG viii DANH MỤC HÌNH ẢNH ix LỜI MỞ ĐẦU 1 Lý chọn đề tài Mục tiêu, đối tượng phạm vi nghiên cứu Bố cục luận văn .2 CHƯƠNG PHƯƠNG PHÁP PHÂN LỚP DỬ LIỆU 1.1 Phân lớp liệu 1.2 Các phương pháp ứng dụng phân lớp dừ liệu 1.3 Một số vấn đề liên quan đến phân lớp liệu 1.3.1 Chuấn bị liệu cho việc phân lớp.ụ)C M.O' Hà N.Ộ.Í 1.3.2 Một số phương pháp đánh giá độ xác mơ hình phân lớp 1.4 Sử dụng định phân lớp liệu 1.4.1 Các giai đoạn trinh xây dựng định 1.4.2 Các đặc trưng phân lớp dừ liệu sứ dụng định 1.4.2.1 Tránh tượng overfitting 1.4.2.2 Thao tác với thuộc tính liên tục Error! Bookmark not defined 1.5 Các nghiên cứu giải thuật 10 1.6 Phát biểu toán cùa luận văn 10 1.7 Kết luận chương 10 CHƯƠNG GIẢI THUẬT C4.5 VÀ GIẢI THUẬT RANDOM FOREST 2.1 Giải thuật C4.5 11 2.1.1 Tống quan .11 2.1.3 C4.5 chọn thuộc tính phân loại tốt 11 2.1.4 Xử lý giá trị thiếu C4.5 12 iii 2.1.5 C4.5 giãi thuật hiệu cho tập dừ liệu vừa nhỏ Error! Bookmark not defined 2.2 ưu nhược điểm cùa định phân lớp liệu 13 2.2.1 ưu điểm định 13 2.2.2 Nhược điếm cùa định 13 2.3.1 Giới thiệu tổng quan giải thuật Random Forest 14 2.3.2 Các già định Random Forest.Error! Bookmark not defined 2.3.3 Lý sử dụng Random Forest .14 2.3.4 Cơ che làm việc giải thuật Random Forest 15 2.3.5 Những đặc điếm thiết yếu cùa giải thuật Random Forest 17 2.3.6 Úng dụng cùa giãi thuật Random Forest 17 2.3.7 Khi không sứ dụng Random Forest 18 2.3.8 ưu điếm giãi thuật Random Forest Error! Bookmark not defined 2.3.9 Nhược diem giái thuật Random Forest Error! Bookmark not defined 2.3.10 Các hyperparameter quan trọng 19 2.4 Đánh giá độ hiệu quà cộa thuật giải dùng ipa trận nhầm lẫn,.Ị 20 2.5 Kểt luận chương 22 CHƯƠNG PHÂN LỚP DŨ LIỆU HỌC VIÊN PHỤC vụ CHO CÔNG TÁC TU VẤN CHỌN NGÀNH HỌC 3.1 Kháo sát thu thập liệu 23 3.2 Xử lý dừ liệu 23 3.2.1 Trích chọn đặc trưng 23 3.2.2 Chuyển đổi liệu 23 3.2.3 Làm dừ liệu 25 Sử dụng giải thuật C4.5 đổ tiến hành phân lớp liệu học viên .27 3.3.1 Áp dụng giải thuật 27 3.3.2 Xây dựng định 28 3.3.2.1 Chọn nút gốc 28 3.3.2.2 Chọn Node cấp 31 3.3.2.3 Chọn Node cấp 34 3.3.3 3.4 Kết cùa việc áp dụng giải thuật 41 Phân lớp học viên sử dụng giãi thuật Random Forest .42 iv 3.5 Giới thiệu số ngôn ngừ khai phá dừ liệu 44 3.5.1 Giới thiệu ngôn ngữ R .44 3.5.2 Giới thiệu ngôn ngừ Python 44 3.5.3 Giới thiệu phần mềm Weka 44 3.6 Ket quà thực nghiệm .45 3.6.1 Chạy giãi thuật 148 ngôn ngừ Wcka 45 3.6.2 Chạy giãi thuật Random Forest công cụ Weka 48 3.7 ứng dụng dcmo 50 3.8 Áp dụng kết đề tài vào thực tiễn Học viện NI1T-1CT HN 74 3.8.1 Thực trạng 74 3.8.2 Ket sau áp dụng kết đề tài 74 3.9 Kết luận chương 74 KẾT LUẬN 75 TÀI LIỆU THAM KHẢO 76 Thư viện Trường Đại học Mở Hà Nội V DANH SÁCH THUẬT NGŨ VIÉT TẤT TIẾNG ANH Tiếng Anh Viết tắt Tiếng Việt DB Database N Negative Số mẫu âm Negative Predictive Value Giá trị tiên đoán âm NPV Cơ sở dừ liệu Positive Số mẫu dương PPV Positive Predictive Value Giá trị tiên đoán dương TN True Negative Thực âm True Nagativc Rate Tỷ lệ thực âm p TNR True Positive Thực dương TPR True Positive Rate Tỹ lệ thực dương GR Gain Ratio Ti số độ lợi IG Information Gain TP ACC hư Viên rườniỉ Đai Accuracy vi Độ xác DANH SÁCH THUẬT NGŨ VIẾT TẮT TIẾNG VIỆT Từ gốc Từ viết tắt Trinh độ TĐ Giới tính GT Vùng miền VM Độ tuối ĐT Thiên hướng TH Ngành học NH Khoa học tự nhiên KHTN Khoa học xã hội KHXH Cơ sở liệu CSDL Ngơn ngữ truy vấn mang tính cấu trác SQL Công nghệ thông tin CNTT Hà Nội Thư vjện 'Trường Đ |pfiọc Mở Hà Nội Thành phô TP Nông thôn NT Phô thông trung học PTTH DH Đại học CH Cao học Khai phá dừ liệu KPDL vii DANH SÁCH CÁC BẢNG Bàng So sánh Cây định Random Forest 19 Bảng 2 Ma trận nhầm lần (Confusion Matrix) 20 Bảng Bảng sở tri thức 25 Bảng Bảng liệu mầu huấn luyện 26 Bảng 3 Bảng so sánh kết GainRatio tậpthuộc tính s 29 Bảng Bảng mẫu huấn luyện TH = K.HTN 31 Bảng Băng so sánh kết quà GainRatio tập thuộc tính S| 33 Bảng Bảng mẫu huấn luyện GT = Nu 34 Bâng Bàng so sánh kết quà GainRatio tập thuộc tính S2.| 36 Bàng Bàng mẫu huấn luyện DoTuoi = Tre 37 Báng Bảng mầu huấn luyện THIENHUONG = K.HXH 38 Bảng 10 Bảng so sánh kết GainRatio tập thuộc tính S3.1 39 Bàng 11 Bàng tập luật áp dụng gịặị thuật CT^tiiih tay^.-N-tVi 42 viii Chức export liệu CSDL SQLite Dưới hàm chứa mã nguồn thực chức xuất liệu từ dataset CSDL SQLite với tên luanvan.sqlite Hàm gọi ta click chọn menu chức nàng sau: File -> Export liệu -> Export SỌLitc # ham cho phep xuat du lieu CSDL SQLite def exporttosqliteO: # mo ket noi den CSOL luanvan.sqlite conn = sqlite3.connect(' luanvan.sqlite') # export du lieu bang sinhvien CSDL dataset.to_sql('sinhvien', conn, :í_exists='replace ', index=False) conn.closeO messagebox.showinfoi'Kết xuất liệu CSDL SQLite', 'Xuất liệu CSDL SQLite thành cõng !') Sau đó, ta mở CSDL SQLite đề xem kết Ta sứ dụng cơng cụ DB Browser for SQLite, thp^tồnjtój2-Ị71-h^Ọ ghi đượ^lư^Ỵ^a ịQSDL hình bên mong muốn 66 J DB Browser for SQLite - G:\Vidubaigiangdemo\DemoPython2022\aLuanVanDecistonTreeRandomForest\luanvan.sqlite Rie Edit View Tools oNew Database Browse Data Database structure Table: Help /.'rite Changes (ý Open Database sinhvien ® hoten Filter 1SH Hnạm Le Enưọng & Open Project £ kevert Changes ;-j Save Project Execute SQL Edit Pragmas SB* vungmien gioltlnh Filter Filter ía I 4l trinhdo ỊFilter in any column fi dotuoi Filter Filter thienhuong nganhhoc Ịpllter Filter u u u 195 'Phạm Lê Nhung' 1 0 196 'Phạm Lê Hông Nhung' 1 0 197 'Nguyễn Hông Hoa' 1 0 198 'Nguyền Hông Nhung' 1 0 199 'Nguyễn Hồng Hoan' 1 0 200 'Nguyễn Hông Thuý' 1 0 201 'Nguyễn Hông Hải’ 1 0 202 'Nguyễn Hông Loan' 1 203 'Nguyễn Hồng Hoà' 1 204 'Nguyễn Hông vân' 1 205 'Nguyễn Hông Hương’ 1 206 'Nguyễn Hông Anh' 1 207 'Nguyễn Hông Hân' 1 208 'Nguyễn Hông Ngân' 1 209 'Nguyễn Hõng Linh’ 1 210 'Nguyễn Hông Hào' 1 211 'Nguyễn Hông chung' 1 212 'Nguyễn Hông Như 1 213 'Nguyễn Hông Hà' 1 214 'Nhã Vân' 2 1 215 'Nhã Phương’ 2 1 216 'Nhã Thuý' 2 1 217 'Nhã Xinh' 2 1 Hình 3.25 Ket chức export liệu CSDL SQLite Chức export liệu CSDL MySQL 67 ^Attache Dưới hàm chứa mã nguồn thực chức xuất dừ liệu từ dataset CSDL MySQL với tên luanvan Hàm gọi ta click chọn menu chức sau: File -> Export liệu -> Export MySQL tt ham cho gheg xuat du lieu file MySQL def exporttomysqlO: # Thong so de ket noi voi CSDL luanvan hostname = "localhost" dbname = "luanvan" uname = "root" pwd = "" # Tao SQLAlchemy engine de ket noi voi MySQL Database engine = create_engineC"mysql+pymysql://{user}: {pw}p{host}/-{db}" ■formate # =hostname, dl=dbname, jse =uname, =pwd)) Chuyên doi dataframe bang CSDL MySQL dataset■ to_sql('sinhvien', engine, irr! =True) messagebox.showinfo('Kết xuãt liệu MySQL', 'Xuất liệu MySQL thánh cơng !') Sau thực xong, ta mở MySQL Ta mỏ CSDL luanyan thấy bàng sinhvicn tạo với đầy đú liệu export từ dataset mong muốn 68 Ợ] Server 127 0 » Database luanvan »p Table sĩnhvien Browse X structure ị-J SQL Search >c Insert Export Import ■ Privilegr ự Showing rows - 216 (217 total Query took 0009 seconds ) SELECT • FROM ‘sinhvỉen* Q Show all Number of rows All V + Options vungmien index hoten 'Nguyễn Huỳnh Chung' 'Tràn Tiểu Vy' 'Trần Minh Trang' 'Mai Ngyc' 'Nguyễn Tràn Khánh Vãn' 'Nguyễn Nhạc' 'Nguyễn Phúc Minh' Trần Thánh' 'Trần Thánh' 0 'Diệu Phương' 10 'Diệu Bàn' 11 'Dĩệu Nhã' 12 'Cao Thái Hà' 1 13 Trương Ngyc ỹnh' 14 'Nguyên Văn Phong' 1 15 Trịnh Văn Phú' 16 'Hoàng Văn Thắng' 17 'Hoàng Vãn Chinh' 18 'Hoàng Dĩnh Phong' 19 'Chu Văn Thái' 20 'Hoàng Văn 2inh' 21 Trấn Tiếu Vy' 22 'Hồng Văn Chính' 23 'Hồng Văn Hoan' 24 'Nguyên Hổng Nhung' 1 25 'Nguyên Hồng Hoa' 26 'Le Thanh Mai' Cỏnsde?uNhă' Filter rows gioitinh 1 1 1 0 1 1 0 0 0 0 1 1 Search this table trinhdo 1 1 1 1 2 1 0 1 1 1 1 1 dotuoi 1 1 1 1 2 1 2 2 1 1 1 1 1 thlenhuong 1 1 1 0 1 1 1 0 0 0 0 0 Sort by key j None nganhhoc 0 0 0 1 0 1 1 1 0 0 Hình 3.26 Kết chức export liệu CSDL MySQL 69 Chúc export liệu file PDF Dưới hàm chứa mã nguồn thực chức xuất liệu từ dataset file pdf với tên luanvan.pdf Hàm gọi ta click chọn menu chức sau: File -ỳ Export dừ liệu -> Export PDF from matplotlib.backends.backend_pdf import PdfPages tí ham cho phep xuat du lieu dataset file PDF def expprttopdf0: fig, ax = pit.subplots(f•g = (8, 5)) ax.axisi'tight') ax.axis('off') the.table = ax.tablet =dataset.values =dataset.columns, ='center') pp = PdfPages("luanyan.pdf") pp.savefig(fig, bbox_lnches=‘tight') pp.closeo messagebox.showinfo ('Kết quà xuất liệu file PDF', Xuất liệu file PDF thành cơng !') Sau thực thi xong, ta mở file luanvan.pdf sinh ra, ta thấy liệu export thành công mong muốn Tk11' xrỉon Tri rrr fln,‘ Kah iu A UA ma; Hình 3.27 Kết chức export liệu file PDF 70 Chúc làm liệu (data cleaning) Dưới hàm chứa mã nguồn thực chức cho phép tiến hành tiền xử lý liệu (Data Preprocessing), thực data cleaning Hàm gọi ta click chọn menu chức sau: File -ỳ Làm liệu Đầu tiên ta thấy hình hiền thị dataset có chứa liệu bị thiếu sau ệ Data Preprocessing - Cleaning Data — Họ tên Vũng miên Giói tỉnh Trinh đõ Đó tuổi Thiên hướng Ngành Nguyã» n Huá» TP Nam DH Tre KHTN La°-ptrA-/mthã»- Tre KHXH Kiá»/mthã»- Lá°-ptrÀ-/mthá»- 'Nguyá» n Nhá°i TP Nam DH Tre KHTN Kiã»/mthá»- 'Nguyã> n PhÃc' TP Nam DH Tre KHXH Kiá»/mthá»- 'Trá°ín ThÀ nh' TP Nam DH Tre KHTN Lá°-ptrÀ- pip install pyinstaller Collecting pyinstaller Downloading pyinstaller-5.10.1-py3-none-win_amd64.whl (1.3 MB) - 1.3/1.3 MB 6.7 MB/s eta 0:00:00 Collecting pywin32-ctypes>=0.2.0 Downloading pywin32_ctypes-O.2.0-py2.py3-none-any.whl (28 kB) Collecting pyinstaller - hooks-contrib>=2021.4 Downloading pyinstaller_hooks_contrib-2023.2-py2.py3-none-any.whl ( 261 kB) - - 262.0/262.0 kB 8.1 MB/s eta 0:00:00 Requirement already satisfied: setuptools>=42.0.0 in c:\python\lib\si te-packages (from pyinstaller) (61.2.0) Collecting pefile>=2022.5.30 Downloading pefile-2023.2.7-py3-none-any.whl (71 kB) - 71.8/71.8 kB ? eta 0:00:00 Collecting altgraph Downloading altgraph-0.17.3-py2.py3-none-any.whl (21 kB) Installing collected packages: pywin32-ctypes, altgraph, pyinstaller-hooks-contrib, pefile, pyinstaller Successfully installed altgraph-9.17.3 pefile-2023.2.7 pyinstaller-5.19.1 pyinstaller-hooks-contrib-2923.2 pywin32-ctypes-0.2 [notice] A new release of pip is available: 23.0.1 -> 23.1.2 [notice] To update, run: python.exe -a pip install upgrade pip 77 b) Cài đặt thư viện Openpyxl PS G:\Vidubaigiangdemo\DemoPython2022> pip install openpyxl Defaulting to user installation because normal site-packages is not writeable Collecting openpyxl Downloading openpyxl-3.1.2-py2.py3-none-any.whl (249 kB) 250.0/250.0 kB 1.7 MB/s eta 0:00:00 Collecting et-xmlfile Downloading et_xmlfile-1.1.0-py3-none-any.whl (4.7 kB) Installing collected packages: et-xmlfile, openpyxl Successfully installed et-xmlfile-1.1.0 openpyxl-3.1.2 [ tice] A new release of pip available: 22.3.1 -> 23.i.2 [notice] To update, run: python.exe -m pip install upgrade pip PS G:\Vidubaigiangdemo\DemoPython2022> I c) Cài đặt thư viện pymongo PS G:\Vidubaigiangdemo\DemoPython2022> pip install pymongo Collecting pymongo Downloading pymongo-4.3.3-cp310-cp310-win_amd64.whl (382 kB) 382.5/382.5 kB 1.6 HB/s eta 0:00:00 Collecting dnspython=1.16.0 (from pymongo) Downloading dnspython-2.3.0-py3-none-any.whl (283 kB) 283.7/283.7 kB 4.4 MB/s eta 0:00:00 Installing collected packages: dnspython, pymongo Successfully installed dnspython-2.3.0 pymongo-4.3.3 PS G:\Vidubaigiangdemo\0emoPython2022> I 78 d) Cài đặt thư viện pymysql PS G:\Vidubaigiangdemo\DemoPython2022> pip install pymysqT Defaulting to user installation because normal site-packages is not writeable Collecting pymysql Downloading PyMySQL-1.0.3-py3-none-any.whl (43 kB) - - - 43.7/43.7 kB 1.1 HB/s eta 0:00:1 Installing collected packages: pymysql Successfully installed pymysql-1.0.3 [notice] A new release of pip available: 22.3.1 -> 25.1.2 [notice] To update, run: python.exe -m pip install upgrade pip PS G:\Vidubaigiangdemo\DemoPython2022> I e) Cài đặt thư viện scikit-learn PS G:\VidubaigiangdeBo\DMoPython2022> pip install scikỉt-learn Collecting sc lid t-learn Downloading scikit_learn-1.2.2-cp318-cp318-«ln.aad64.whl (8.3 MB) 8.3/8.3 KB 4.Đ HB/s eta 8:88:80 Requirenent already satisfied: nwpy>íl.l7.3 in c:\ustrs\leglon 5\appdata\local\prograns\python\pythoo318\Ub\slte-package$ (iron sclklt-learn) (1.24.3) Collecting scipy>:1.3.2 (iron scikit-learn) Downloading scipy-l.18.l-cp31fl-cp318-irin_80d64.ehl (42.5 MB) 42.5/42.5 X8 5.0 MB/s eta 8:M:6G Collecting joblib>:l.l.l (froe sclklt-learn) Downloading joblib-1.2.fl-py3-none-any.whl (297 kB) 298.3/298.6 kB 6.1 HB/s eta 6:K 89 Collecting threadpoolctl>:2.0.0 (iron sciklt-learn) Downloading threadpoolctl-3.1.8-py3-none-any.ehl (14 kB) Installing collected packages: threadpoolctl, scipy, joblib, scikit-learn Successfully installed joblib-1.2.8 scikit-learn-1.2.2 sclpy-1.18.1 threadpoolctl-3.1.8 PS G:\VldubalglangdeM\DenoPython2022> I 79 g) Cài đặt thư viện matplotlib PS S:\¥idu&àlgUngdeio\DeioPyti>on2822> pip install Mtplotllb Colliding aatplotlỉb Ooinloidlng MtplotUb-3.7.1-cp318-cp318-»ln_a*J64.«til (7.4 HB) -*H 5.5 RB/í eta Colliding contourpy>=1.9.1 (fro« aatplotlỉb) >/2.5 NB 2.4 R8/ỉ eta ứ:06.B8 Colliding pyparsiog>=2.3.1 (fro« utplotlib) Ooinlosfling pyparslng-3.8.9-py3-none-any.ini (98 kB) Riqvlrenint already satlsflKl: python-đatiutn>s?.7 In c:\usire\ligloa 5\appdata\local\pregreis\python\pythan318VUb\$lti-packagis (fret aatplotlỉb) (2.8.2) Rtgulreoint already satlsfltd: slx>=1.5 In c:\uiors\loglon 5\appdata\local\progroMlpytnon\pYthon316\llb\site-packagos (troi python-datiutll>=2.7->aatplotllb) (1.16.8) Installing collidod packages: pyparslng, pllloa, packaging, klolwlvor, fonttools, cycler, contourpy, Mtplotllb Soccissfully Installed contovrpy-1.8.7 cyclir-8.11.8 fonttool*-4.J9.3 kbrisolw-1.4.4 Mtplotllb-3.7.1 packaging-23.1 plUoa-9.5.8 pyparslng-3.8.9 PS 6:\Vidut>algiangd*aolDeioPython2822> h) Cài đặt thư viện numpy PS G:\Vidubaigiangdereo\DemoPython2822> pip install nurcpy Requirenent already satisfied: numpy in c:\users\legion 5\appdata\local\programs\python\python318\lib\site-packages (1.2A.3) PS G:\Vidubaigiangdemo\OemoPython2022> I 80