Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 79 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
79
Dung lượng
3,41 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÀ RỊA - VŨNG TÀU LÂM THỊ ANH HOÀNG HỆ TƯ VẤN CHO HỌC SINH CHỌN TỔ HỢP MÔN THI TỐT NGHIỆP TRUNG HỌC PHỔ THÔNG QUỐC GIA LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Bà Rịa – Vũng Tàu, tháng 04/2021 Luan van BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÀ RỊA - VŨNG TÀU LÂM THỊ ANH HOÀNG HỆ TƯ VẤN CHO HỌC SINH CHỌN TỔ HỢP MÔN THI TỐT NGHIỆP TRUNG HỌC PHỔ THƠNG QUỐC GIA Chun ngành: Cơng nghệ thơng tin Mã ngành: 8480201 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS VĂN THẾ THÀNH Bà Rịa – Vũng Tàu, tháng 04/2021 Luan van Trang LỜI CẢM ƠN Trong suốt trình nghiên cứu thực đề tài luận văn “Hệ tư vấn cho học sinh chọn tổ hợp môn thi tốt nghiệp THPT Quốc gia” nhận giúp đỡ nhiều Quý Thầy Cô Viện Đào Tạo Quốc Tế Sau Đại Học Trường Đại Học Bà Rịa Vũng Tàu, anh chị đồng nghiệp, bạn lớp đặc biệt hướng dẫn tận tình Thầy hướng dẫn, TS.Văn Thế Thành Qua đây, xin cám ơn trường THPT địa bàn Thành phố Vũng Tàu tạo điều kiện, cung cấp số liệu nhà trường để tơi hồn thành luận văn tốt Trong luận văn, hẳn khơng thể tránh khỏi hạn chế thiếu sót Tơi mong muốn nhận nhiều góp ý quý báu Quý Thầy Cô hội đồng, Q bạn đọc để tơi hồn thiện luận văn tốt đồng thời áp dụng vào thực tiễn, nhiều giúp Q Thầy Cơ tư vấn học sinh THPT chọn tổ hợp môn thi tốt nghiệp THPT Một lần nữa, xin chân thành cảm ơn Quý Thầy Cô, đồng nghiệp, bạn bè đặc biệt Thầy TS.Văn Thế Thành hướng dẫn tơi hồn thành đề tài luận văn Luan van Trang LỜI CAM ĐOAN Tôi xin cam đoan đề tài luận văn “Hệ tư vấn cho học sinh chọn tổ hợp môn thi tốt nghiệp THPT Quốc gia” cơng trình nghiên cứu độc lập tơi hướng dẫn giáo viên hướng dẫn Các số liệu, nêu luận văn thu thập từ trường THPT Trần Nguyên Hãn địa bàn Thành phố Vũng Tàu, kết luận văn chưa công bố cơng trình nghiên cứu Tơi xin hoàn toàn chịu trách nhiệm trước hội đồng, khoa, viện sau đại học cam đoan Luan van Trang MỤC LỤC CHƯƠNG TỔNG QUAN VỀ HỆ TƯ VẤN CHO HỌC SINH CHỌN MÔN THI 1.1 TỔNG QUAN VỀ NHU CẦU HỆ TƯ VẤN CHỌN MÔN THI 1.1.1 Sự cần thiết hệ tư vấn 1.1.2 Các nghiên cứu liên quan 1.1.3 Cơ sở lý thuyết liên quan đến luận văn 12 1.1.4 Cấu trúc hệ thống 19 1.1.5 Sự đóng góp hệ thống 21 1.2 ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 22 1.2.1 Đối tượng nghiên cứu 22 1.2.2 Phương pháp nghiên cứu 22 1.3 LĨNH VỰC NGHIÊN CỨU 23 1.4 NỘI DUNG NGHIÊN CỨU 24 1.5 QUÁ TRÌNH THỰC HIỆN 24 1.5.1 Các bước thực 24 1.5.2 Các kỹ thuật cần nghiên cứu 25 1.5.3 Các công cụ áp dụng 26 1.5.4 Nội dung chương luận văn 27 1.6 TỔNG KẾT CHƯƠNG 28 CHƯƠNG HỆ TƯ VẤN CHỌN MÔN THI TỔ HỢP CHO HỌC SINH 29 2.1 TỔNG QUAN 29 2.2 PHÂN CỤM DỮ LIỆU DỰA TRÊN K-MEANS 30 2.2.1 Thuật toán K-Means 30 2.2.2 Ví dụ thực nghiệm cho thuật toán K-means 32 2.3 MẠNG SOM 39 Luan van Trang 2.3.1 Cấu trúc mạng SOM 39 2.3.2 Một ví dụ thực nghiệm cho việc huấn luyện mạng SOM 41 2.3.3 Thuật toán chọn cụm chiến thắng 43 2.3.4 Ví dụ thực nghiệm cho việc chọn cụm chiến thắng 44 2.4 PHƯƠNG PHÁP PHÂN LỚP K-NN 44 2.4.1 Thuật toán phân lớp k-NN 44 2.4.2 Ví dụ thực nghiệm cho thuật toán k-NN 45 2.5 HỆ TƯ VẤN CHO HỌC SINH THI TỐT NGHIỆP THPT 47 2.5.1 Mơ hình hệ thống 47 2.5.2 Quá trình huấn luyện mạng SOM 48 2.5.3 Quá trình phân lớp, tư vấn 49 2.6 TỔNG KẾT CHƯƠNG 49 CHƯƠNG THỰC NGHIỆM 51 3.1 GIỚI THIỆU 51 3.2 MƠ HÌNH THỰC NGHIỆM 52 3.3 XÂY DỰNG HỆ THỐNG 53 3.3.1 Thiết kế sơ đồ lớp 53 3.3.2 Cài đặt cấu trúc lớp 54 3.4 MÔI TRƯỜNG THỰC NGHIỆM 57 3.4.1 Ngôn ngữ lập trình 57 3.4.2 Môi trường thực nghiệm 58 3.4.3 Dữ liệu thực nghiệm 58 3.4.4 Ứng dụng thực nghiệm Server 58 3.4.5 Ứng dụng thực nghiệm Client 60 3.4.6 Kết thực nghiệm liệu có 1073 mẫu 60 3.4.7 Kết thực nghiệm 30% 5231 mẫu liệu 63 3.5 TỔNG KẾT CHƯƠNG 65 Luan van Trang KẾT LUẬN 66 TÀI LIỆU THAM KHẢO 67 PHỤ LỤC 69 CÀI ĐẶT CÁC HÀM CHÍNH CỦA HỆ THỐNG 69 Luan van Trang BẢNG VIẾT TẮT GD&ĐT Giáo dục Đào tạo HS Học sinh PH Phụ huynh THPT Trung học phổ thơng Luan van Trang DANH MỤC CÁC HÌNH ẢNH Số hiệu Tên hình vẽ 1.1 Mơ hình học có giám sát 1.2 Mơ hình học khơng giám sát 1.3 Mơ hình gom cụm 1.4 Mơ hình phân lớp 1.5 Mơ hình thuật tốn k-NN 1.6 Mơ hình tổng qt hệ thống tư vấn 2.1 Mơ hình mạng SOM 2.2 Mơ hình hệ thống tư vấn học sinh 2.3 Lưu đồ trình huấn luyện mạng SOM 2.4 Lưu đồ dự báo tư vấn học sinh 3.1 Mơ hình thực nghiệm hệ thống dự báo 3.2 Sơ đồ lớp hệ thống 3.3 Phân cụm liệu học sinh (1075 mẫu) máy server 3.4 Một mô tả liệu cho cụm thứ 3.5 Một cụm Root dùng để quản lý cụm liệu khác 3.6 Quá trình dự báo chọn mơn thi cho học sinh 3.7 Mơ tả độ xác học lực học sinh 3.8 Mơ tả độ xác dự báo danh hiệu cho học sinh 3.9 Mơ tả độ xác dự báo tổ hợp môn thi cho học sinh 3.10 Thời gian dự báo trung bình cho mẫu liệu 3.11 Mơ tả độ xác học lực học sinh 3.12 Mơ tả độ xác dự báo danh hiệu cho học sinh 3.13 Mô tả độ xác dự báo tổ hợp mơn thi cho học sinh 3.14 Thời gian dự báo trung bình cho mẫu liệu Luan van Trang Trang Chương TỔNG QUAN VỀ HỆ TƯ VẤN CHO HỌC SINH CHỌN MÔN THI 1.1 TỔNG QUAN VỀ NHU CẦU HỆ TƯ VẤN CHỌN MÔN THI 1.1.1 Sự cần thiết hệ tư vấn Trước năm 2016, Bộ GD&ĐT công bố phương án thi tốt nghiệp học sinh THPT gồm mơn: mơn bắt buộc Tốn, Ngữ văn, Ngoại ngữ mơn tự chọn mơn Vật lý, Hóa học, Sinh học, Lịch sử, Địa lý [1] Trên sở này, trường THPT tiến hành cho học sinh đăng ký chọn mơn theo lực Vào ngày 28/9/2016 Bộ GD&ĐT cơng bố phương án thi THPT Quốc gia, học sinh THPT thi thi gồm: thi bắt buộc Toán, Ngữ văn, Ngoại ngữ thi tự chọn: thi Khoa học Tự nhiên thi Khoa học Xã hội Với thi Ngoại ngữ, học sinh chọn thi thứ tiếng: Anh, Nga, Pháp, Trung, Đức, Nhật Học sinh dự thi thi để sử dụng kết xét tuyển vào ĐH, CĐ [2] Với mơ hình thi này, bắt đầu năm học 2016 – 2017, trường THPT gặp nhiều khó khăn nhà trường phải xếp chia lại lớp cho học sinh lớp 12, phân công lại chuyên mơn, xếp lại thời khóa biểu… Tuy nhiên, tất việc xếp lại nhà trường dựa mong muốn PH HS, tức dựa ý muốn chủ quan Phương án thỏa mãn nguyện vọng PH HS chưa phát huy hết lực học sinh việc đăng ký chọn mơn thi phần lớn dựa vào ý muốn chủ quan theo ý kiến số đông theo nguyện vọng PH… Việc lựa chọn không theo đánh giá lực thân không dựa phương pháp phân tích có sở khoa học định Vì vậy, đề tài luận văn xây dựng hệ thống tư vấn hỗ trợ cho HS PH chọn lựa tổ hợp môn theo lực học tập Luan van Trang 63 THỜI GIAN TRUNG BÌNH 600.00 500.00 400.00 300.00 200.00 100.00 0.00 Bộ Bộ Bộ Bộ Bộ Bộ Bộ Thời gian trung bình 344.88 484.37 334.06 392.40 562.82 378.39 359.44 Hình 3.10 Thời gian dự báo trung bình cho mẫu liệu Theo hình 3.10 hình 3.14, thời gian dự báo cho mẫu liệu tương đối nhanh áp dụng cho liệu thực tế triển khai cho người dung để thực trình tư vấn chọn lựa môn thi tổ hợp 3.4.7 Kết thực nghiệm 30% 5231 mẫu liệu Bảng 3.2 Độ xác dự báo 30% mẫu liệu Bộ Dự báo Dự báo Dự báo tổ TB thời liệu học lực danh hiệu hợp môn thi gian Bộ Mẫu đến 250 97.60% 97.60% 91.60% 3643.57875 Bộ Mẫu 251 đến 500 91.60% 91.60% 97.60% 3394.22455 Bộ Mẫu 501 đến 750 96.00% 96.00% 91.60% 3821.56515 Bộ Mẫu 751 đến 1000 95.20% 95.20% 92.00% 3679.713 Bộ Mẫu 1001 đến 1250 99.20% 99.20% 95.20% 3158.87446 Bộ Mẫu 1251 đến 1500 92.40% 92.40% 95.20% 3904.67071 Bộ Mẫu 1501 đến 1750 96.40% 96.40% 78.00% 3835.79677 Luan van Trang 64 DỰ BÁO HỌC LỰC 100.00% 98.00% 96.00% 94.00% 92.00% 90.00% 88.00% 86.00% Bộ Bộ Bộ Bộ Bộ Bộ Bộ Dự báo học lực 97.60% 91.60% 96.00% 95.20% 99.20% 92.40% 96.40% Hình 3.11 Mơ tả độ xác học lực học sinh DỰ BÁO DANH HIỆU 100.00% 98.00% 96.00% 94.00% 92.00% 90.00% 88.00% 86.00% Bộ Bộ Bộ Bộ Bộ Bộ Bộ Dự báo danh hiệu 97.60% 91.60% 96.00% 95.20% 99.20% 92.40% 96.40% Hình 3.12 Mơ tả độ xác dự báo danh hiệu cho học sinh DỰ BÁO TỔ HỢP MÔN THI 120.00% 100.00% 80.00% 60.00% 40.00% 20.00% 0.00% Bộ Bộ Bộ Bộ Bộ Bộ Bộ Dự báo tổ hợp môn thi 91.60% 97.60% 91.60% 92.00% 95.20% 95.20% 78.00% Hình 3.13 Mơ tả độ xác dự báo tổ hợp mơn thi cho học sinh Luan van Trang 65 TB THỜI GIAN 4500 4000 3500 3000 2500 2000 1500 1000 500 Bộ Bộ Bộ Bộ Bộ Bộ Bộ TB thời gian 3643.57883394.22453821.5652 3679.713 3158.87453904.67073835.7968 Hình 3.14 Thời gian dự báo trung bình cho mẫu liệu 3.5 TỔNG KẾT CHƯƠNG Trong chương này, ứng dụng thực nghiệm xây dựng dựa sở lý thuyết đề xuất chương Dữ liệu đầu vào điểm học sinh thu thập nhiều năm khác từ nhiều trường THPT địa bàn thành phố Vũng Tàu Sau xử lý liệu, hệ thống thực thi trình gom cụm theo thuật tốn K-Means để từ làm sở huấn luyện cho mạng SOM Sau đó, trình chọn cụm chiến thắng phân lớp học sinh thực nhằm dự báo lực học sinh, dự báo điểm tổ hợp môn KHTN KHXN đồng thời tư vấn chọn môn thi cho học sinh Quá trình thực nghiệm hai liệu có 1073 5231 để từ đánh giá kết Theo tổng hợp kết thực nghiệm cho thấy, phương pháp đề xuất hiệu áp dụng dự báo nhiều liệu khác Luan van Trang 66 KẾT LUẬN Trong luận văn này, hệ tư vấn dự báo tiếp cận xây dựng nhằm tạo cơng cụ hữu ích hỗ trợ cho học sinh đánh giá lực đồng thời chọn tổ hợp mơn phù hợp để thực trình thi tốt nghiệp THPT Để thực xây dựng hệ tư vấn này, phương pháp gom cụm, học bán giám sát, học không giám sát thực áp dụng cho trình phân lớp dự báo cho học sinh Hệ thống tư vấn chia làm hai giai đoạn bao gồm (1) thực tiền xử lý liệu server, kết giai đoạn tập cụm liệu học sinh với trọng số cho cụm để chọn cụm chiến thắng theo nguyên lý mạng SOM; (2) thực trình phân lớp dự báo dựa việc chọn cụm chiến thắng mạng SOM để từ phân lớp liệu theo phương pháp láng giềng gần k-NN để tạo kết dự báo học lực tư vấn chọn môn thi cho học sinh kỳ thi THPT Quốc gia Luận văn tiếp cận sở lý thuyết thuật toán phân cụm K-Means, nguyên lý đồ tự tổ chức SOM, thuật toán phân lớp theo láng giềng gần k-NN để từ kết hợp lại cho việc xây dựng hệ tư vấn Nội dung luận văn tiếp cận thực thành phần bao gồm (1) Xây dựng mơ hình hệ dự báo tư vấn cho học sinh THPT; (2) Tiếp cận phân cụm K-Means để phân cụm liệu cho học sinh; (3) Tiếp cận mạng SOM để chọn cụm chiến thắng để từ làm liệu đầu vào cho tốn phân lớp; (4) Áp dụng thuật toán láng giềng gần để phân lớp học sinh sở phương pháp học bán giám sát; (5) Xây dựng thực nghiệm áp dụng liệu học sinh khác địa bàn thành phố Vũng Tàu Hướng phát triển luận văn bổ sung thêm thuộc tính kết hợp phương pháp phân lớp khác để đưa định hỗ trợ cho học sinh việc thi tốt nghiệp THPT Quốc gia Luan van Trang 67 TÀI LIỆU THAM KHẢO [1] Bộ Giáo dục Đào tạo,Thông tư số 02/2016/TT-BGDĐTcủa Bộ trưởng Bộ Giáo dục Đào tạo, việc sửa đổi, bổ sung số điều quy chế thi trung học phổ thông quốc gia, ngày 10 tháng 03 năm 2016 [2] Bộ Giáo dục Đào tạo,Thông tư số 04/2017/TT-BGDĐT Bộ trưởng Bộ Giáo dục Đào tạo, việc sửa đổi, bổ sung số điều quy chế thi trung học phổ thông quốc gia, ngày 25 tháng 01 năm 2017 [3] Oyelade, O J., Oladipupo, O O., Obagbuwa, I C (2010), “Application of k Means Clustering algorithm for prediction of Students Academic Performance”, Inter Journal of Computer Science and Information Security, 7(1), pp 292-295 [4] Shaukat, K., Nawaz, I., Aslam, S., Zaheer, S and Shaukat, U (2016), “Student's performance in the context of data mining”, International MultiTopic Conference (INMIC), IEEE, pp 1-8 [5].Zhongxiang Fan, Yan Sun, Hong Luo (2017), “Clustering of College Students Based on Improved K-means Algorithm”, Journal of Computers, 28(6), pp 195-203 [6] Sari, I., Maseleno, A., Satria, F., & Muslihudin, M (2018), “Application model of k-means clustering: insights into promotion strategy of vocational high school”, Inter Journal of Engineering & Tech., 7(2.27), pp 182-187 [7] Lee, Y (2019) “Using self-organizing map and clustering to investigate problem-solving patterns in the massive open online course: an exploratory study”, Journal of Educational Computing Research, 57(2), pp 471-490 [8] Hussain, S., Muhsion, Z F., Salal, Y K., Theodoru, P., KurtoÄŸlu, F., & Hazarika, G C (2019), “Prediction model on student performance based on internal assessment using deep learning”, International Journal of Emerging Technologies in Learning (iJET), 14(08), pp 4-22 Luan van Trang 68 [9] Khadir, A S A., Amanullah, K M., & Shankar, P G (2015), “Student’s academic performance analysis using SOM”, International Journal for Scientific Research and Development, 3(02), pp 1037-1039 [10] Crivei, L M., Czibula, G., Ciubotariu, G., & Dindelegan, M (2020), “Unsupervised learning based mining of academic data sets for students’ performance analysis”, International Symposium on Applied Computational Intelligence and Informatics (SACI), IEEE, pp 11-16 [11] Purbasari, I Y., Puspaningrum, E Y., & Putra, A B S (2020),“Using Self-Organizing Map (SOM) for Clustering and Visualization of New Students based on Grades”, Journal of Physics: Conference Series, 1569(2), pp 1-6 [12] Atira, N N., Azmira, I., Bohari, Z H., Zuhari, N A., & Ghazali, N F M (2019), “Medium Term Load Forecasting Using Statistical Feature Self Organizing Maps (SOM)”, Journal of Telecommunication, Electronic and Computer Engineering (JTEC), 11(2), pp 25-29 [13] A Şahiner, R Akbay, N Yilmaz (2019), “Fuzzy Logic Modeling and Optimization of Academic Achievement of Students”, Yildiz Journal of Educational Research, 4(1), pp 85-100 [14] D LeJeune, R G Baraniuk, R Heckel (2019), “Adaptive Estimation for Approximate k-Nearest-Neighbor Computations”, Proceedings of the 22nd International Conference on Artificial Intelligence and Statistics (AISTATS) 2019, Naha, Okinawa, Japan, pp.1-11 Luan van Trang 69 PHỤ LỤC CÀI ĐẶT CÁC HÀM CHÍNH CỦA HỆ THỐNG Hàm phân cụm K-Means publicvoid KMeansClustering(int k, string fileData, string dirCluster) { //Doc file de load tat ca du lieu TextfileCluster tfc = newTextfileCluster(); string[] Lines = tfc.ReadAllLine(fileData); //Khoi tao k tam string[] Centers = newstring[k]; for (int i = 0; i < k; i++) Centers[i] = Lines[i]; //Tao cac cum HocsinhCluster tren bo nho chinh HocSinhCluster[] HSClusters = newHocSinhCluster[k]; for (int i = 0; i < k; i++) { HSClusters[i] = newHocSinhCluster(); HSClusters[i].CW.CENTER = Line2Vector(Centers[i]); } bool Flag = true; while (Flag == true) { //Phan phoi vao cac cum foreach (string line in Lines) { //Tim cum gan nhat int indexMin = IndexMinCluster(HSClusters, line); //Phan bo vao cum HocSinh HS = CreateHocSinh(line); HSClusters[indexMin].DSHocSinh.Add(HS); } //Tinh trung binh cac tam List[] AveCenter = newList[k]; Luan van Trang 70 for (int i = 0; i < k; i++) AveCenter[i] = AveClusterCenter(HSClusters[i]); //So sanh cac tam if (IsEqualArrCenter(AveCenter, HSClusters) == false) { for (int i = 0; i < k; i++) { HSClusters[i] = null; HSClusters[i] = newHocSinhCluster(); HSClusters[i].CWp.CENTER = AveCenter[i]; } } else Flag = false; } //Cap nhat so cho cac cum for (int i = 0; i < k; i++) HSClusters[i].CWp.WEIGHT = GetWeight(HSClusters[i].CWp.CENTER); //Cap nhat RootCluster RootCluster Root = newRootCluster(); for (int i = 0; i < k; i++) { Root.LISTCW.Add(HSClusters[i].CWp); Root.LISTFILE.Add("Cluster" + (i + 1).ToString() + ".txt"); } //Luu cac phan tu vao file cluster for (int i = 0; i < k; i++) SaveCluster(HSClusters[i], dirCluster + "/" + Root.LISTFILE.ElementAt(i)); //Luu Root Cluster SaveRootCluster(Root, dirCluster + "/" + "RootCluster.txt"); } void SaveCluster(HocSinhCluster HSc, string file) Luan van Trang 71 { if (File.Exists(file)) File.Delete(file); TextfileCluster tfc = newTextfileCluster(); ClusterMethod clm = newClusterMethod(); string Center = clm.Vector2String(HSc.CW.CENTER); string Weight = clm.Vector2String(HSc.CW.WEIGHT); tfc.WriteLineTextFile(Center,file); tfc.WriteLineTextFile(Weight, file); int num = HSc.DSHS.Count; for (int i = 0; i < num; i++) { string Diem = HSc.DSHS[i].MasoHocSinh + "@" + "Diem" +"@" + clm.Vector2String(HSc.DSHS[i].DIEM); string Nangluc = "@" + "NangLuc" + "@" + HSc.DSHS[i].KHTN.ToString() + "@" + HSc.DSHS[i].KHXH.ToString() + "@" + HSc.DSHS[i].HOCLUC + "@" + HSc.DSHS[i].DANHHIEU; tfc.WriteLineTextFile(Diem + Nangluc, file); } } void SaveRootCluster(RootCluster Root, string file) { if (File.Exists(file)) File.Delete(file); TextfileCluster tfc = newTextfileCluster(); ClusterMethod clm = newClusterMethod(); int num = Root.LISTCW.Count; for(int i = 0; i < num; i++) { string filename = Root.LISTFILE.ElementAt(i); string Center = filename + "@" + "Center" + "@" + clm.Vector2String(Root.LISTCW.ElementAt(i).CENTER); string Weight = "@" + "Weight" + "@" + clm.Vector2String(Root.LISTCW.ElementAt(i).WEIGHT); tfc.WriteLineTextFile(Center + Weight, file); } } Luan van Trang 72 Hàm chọn cụm chiến thắng void ShowSOMWinnerCluster() { //Load RootCluster TextfileCluster tfc = newTextfileCluster(); ClusterMethod clm = newClusterMethod(); string[] Lines = tfc.ReadAllLine(Root); int num = Lines.Length; string[] FilenameClusters = newstring[num]; string[] Center = newstring[num]; string[] Weight = newstring[num]; for (int i = 0; i < num; i++) { string[] words = Lines[i].Split('@'); words = clm.RemoveBlank(words); FilenameClusters[i] = words[0]; Center[i] = words[2]; Weight[i] = words[4]; } //Chon cum chien thang string filenameWinner = GetFileClusterWinner(HSPreditionWeight, Center, FilenameClusters); fileWinner = dirCluster + "/" + filenameWinner; //Hien thi len textbox string[] ClusterLines = tfc.ReadAllLine(fileWinner); int len = ClusterLines.Length; for (int i = 0; i < len; i++) textBox19.Text += ClusterLines[i] + "\r\n"; } Luan van Trang 73 Hàm phân lớp dự báo theo k-NN void kNN() { string hocluc = MaxHocluc(fileWinner); string danhhieu = MaxDanhhieu(fileWinner); double KHTN = AveKHTN(fileWinner); double KHXH = AveKHXH(fileWinner); string recomment = @"Nên chọn tổ hợp môn: "; if (KHTN >= KHXH) recomment += @"Khoa học tự nhiên"; else recomment += @"Khoa học xã hội"; } string MaxHocluc(string filecluster) { string[] HL = { "Giỏi", "Khá", "Trung bình", "Yếu", "Kém" }; string hocluc = HL[0]; int len = HL.Length; for(int i = 0; i < len; i++) { if (CountHocluc(hocluc, filecluster) < CountHocluc(HL[i], filecluster)) hocluc = HL[i]; } return hocluc; } string MaxDanhhieu(string filecluster) { string[] DH = { "Học sinh giỏi", "Học sinh tiên tiến", "Khơng có danh hiệu" }; string danhhieu = DH[0]; int len = DH.Length; for (int i = 0; i < len; i++) { if (CountHocluc(danhhieu, filecluster) < CountHocluc(DH[i], filecluster)) danhhieu = DH[i]; } return danhhieu; } Luan van Trang 74 double AveKHTN(string filecluster) { double res = 0.0; int count = 0; TextfileCluster tfc = newTextfileCluster(); ClusterMethod clm = newClusterMethod(); string[] Lines = tfc.ReadAllLine(filecluster); int len = Lines.Length; for (int i = 2; i < len; i++) { string[] words = Lines[i].Split('@'); words = clm.RemoveBlank(words); res += clm.ToDecimal(words[4]); count++; } if (count != 0) res = res / count; return res; } double AveKHXH(string filecluster) { double res = 0.0; int count = 0; TextfileCluster tfc = newTextfileCluster(); ClusterMethod clm = newClusterMethod(); string[] Lines = tfc.ReadAllLine(filecluster); int len = Lines.Length; for (int i = 2; i < len; i++) { string[] words = Lines[i].Split('@'); words = clm.RemoveBlank(words); res += clm.ToDecimal(words[5]); count++; } if (count != 0) res = res / count; return res; } Luan van Trang 75 Một số hàm xử lý cụm liệu publicint ToInt32(string myStr) { bool res; int a; res = int.TryParse(myStr, out a); return a; } //chuyển chuỗi thành số thực publicdouble ToDecimal(string myStr) { bool res; double a; res = double.TryParse(myStr, out a); return a; } //Chuyển Vector (List) số thực (double) thành chuỗi số, số cách khoảng trắng publicstring Vector2String(List Vector) { string strFeature = string.Empty; if (Vector == null) return"#NONE#"; if (Vector.Count == 0) return"#NONE#"; foreach (double num in Vector) strFeature += num.ToString() + " "; return strFeature.Trim(); } //Chuyển mảng chuỗi số thành Vector (List) chứa số double publicList String2Vector(string[] DigitString) { if (DigitString == null) returnnull; if (DigitString.Length == 0) returnnull; DigitString = RemoveBlank(DigitString); int len = DigitString.Length; List Vector = newList(); for (int i = 0; i < len; i++) Vector.Add(ToDecimal(DigitString[i])); return Vector; } Luan van Trang 76 //Chuyển chuỗi số thành Vector (List) chứa số double publicList String2Vector(string DigitString) { if (DigitString.Trim() == string.Empty) returnnull; List Vector = newList(); if (DigitString == string.Empty) returnnull; char[] delimiters = newchar[] { '\t', '\r', '\n', ';', '!', ':', ',', ' ' }; string[] wordsDigit = DigitString.Split(delimiters, StringSplitOptions.RemoveEmptyEntries); wordsDigit = RemoveBlank(wordsDigit); return String2Vector(wordsDigit); } //Tính khoảng cách Euclide trung bình vector đến gốc tọa độ publicdouble EuclideDistance(List V) { if (V == null) return 0.0; if (V.Count == 0) return 0.0; double dis = 0.0; foreach (double a in V) { dis += a*a; } dis = dis / (double)(V.Count); returnMath.Sqrt(dis); } //Tính khoảng cách Euclide hai vector publicdouble EuclideDistance(List V1, List V2) { double dis = 0.0; if (V1 == null) return EuclideDistance(V2); if (V2 == null) return EuclideDistance(V1); int m = V1.Count; int n = V2.Count; if (m == 0) return EuclideDistance(V2); if (n == 0) return EuclideDistance(V1); if (m != n) return 1.0; Luan van Trang 77 for (int i = 0; i < n; i++) { dis += (V1.ElementAt(i) - V2.ElementAt(i)) * (V1.ElementAt(i) V2.ElementAt(i)); } dis = dis / (double)n; returnMath.Sqrt(dis); } //Tính tích vơ hướng hai vector publicdouble productVector(List V1, List V2) { double prod = 0.0; if (V1 == null) return 0.0; if (V2 == null) return 0.0; int m = V1.Count; int n = V2.Count; if (m == 0) return 0.0; if (n == 0) return 0.0; if (m != n) return 0.0; for (int i = 0; i < n; i++) { prod += (V1.ElementAt(i) *V2.ElementAt(i)); } return prod; } //Tính giá trị sigmoid giá trị publicdouble sigmoid(double a) { double ex = Math.Exp(a); double sig = ex / (ex + 1.0); return sig; } Luan van ... vào kết học tập theo tổ hợp môn thi tốt nghiệp THPT Quốc gia, đề tài luận văn tiến hành thực ? ?Hệ tư vấn cho học sinh chọn tổ hợp môn thi tốt nghiệp THPT Quốc gia? ?? Luan van Trang 22 1.2 ĐỐI TƯỢNG... QUAN VỀ HỆ TƯ VẤN CHO HỌC SINH CHỌN MÔN THI 1.1 TỔNG QUAN VỀ NHU CẦU HỆ TƯ VẤN CHỌN MÔN THI 1.1.1 Sự cần thi? ??t hệ tư vấn Trước năm 2016, Bộ GD&ĐT công bố phương án thi tốt nghiệp học sinh THPT... cụ tư vấn cho lĩnh vực 1.6 TỔNG KẾT CHƯƠNG Trong chương này, nội dung luận văn tiếp cận trình xây dựng hệ tư vấn cho học sinh chọn tổ hợp môn thi cho kỳ thi tốt nghiệp THPT Quốc gia Các đối tư? ??ng