Giới thiệu
Đặt vấn đề
Hàng năm, kỳ thi tốt nghiệp trung học phổ thông quốc gia luôn thu hút sự quan tâm lớn từ phụ huynh và học sinh lớp 12 trên toàn quốc Gia đình và thầy cô giáo nỗ lực tạo điều kiện tốt nhất cho học sinh nhằm giúp các em đạt điểm cao và có cơ hội đỗ vào các trường đại học Trong quá trình giảng dạy, giáo viên thường dựa vào lực học để đưa ra những dự đoán về điểm thi, giúp học sinh nhận thức được năng lực của mình và xác định những trường đại học phù hợp Tuy nhiên, những dự đoán này thường chỉ mang tính cảm tính và thiếu cơ sở khoa học.
Bài viết này áp dụng kĩ thuật Random Forest Regression để dự đoán điểm thi tốt nghiệp trung học phổ thông quốc gia dựa trên dữ liệu điểm tổng kết các môn thi Đồng thời, nó cũng cập nhật điểm chuẩn của các trường đại học khu vực miền Nam từ năm trước, giúp học sinh có thể so sánh và dự đoán khả năng xét tuyển vào các trường trong tương lai.
Mục tiêu và phạm vi nghiên cứu
Trong bài viết này, chúng tôi thu thập dữ liệu điểm tổng kết các môn học của học sinh khối 12 từ các trường THPT trên địa bàn huyện Phú Riềng trong năm học 2017 – 2018 Chúng tôi đề xuất áp dụng mô hình Random Forest Regression để phân loại điểm tổng kết của học sinh, sử dụng kỹ thuật phân lớp nhằm nâng cao độ chính xác trong việc dự đoán kết quả học tập.
Xây dựng một hệ thống dựa trên mô hình đã được huấn luyện nhằm dự đoán điểm thi tốt nghiệp trung học phổ thông quốc gia Hệ thống này sẽ tích hợp vào một website, cho phép người dùng nhập điểm tổng kết các môn học liên quan để nhận dự đoán về điểm thi tốt nghiệp.
Tổng quan về luận văn
1 Giới thiệu chung về đề tài và tổng quan của luận văn
Để xây dựng hệ thống dự đoán điểm hiệu quả, bạn cần nắm vững những kiến thức nền tảng về khai phá dữ liệu, các phương pháp học máy phổ biến, và đặc biệt là phương pháp rừng hồi quy ngẫu nhiên Những kiến thức này sẽ giúp bạn phát triển các mô hình dự đoán chính xác và tối ưu hóa quy trình phân tích dữ liệu.
Bài viết trình bày về việc xây dựng mô hình dự đoán điểm sử dụng kỹ thuật Random Forest Regression, bao gồm kiến trúc tổng quát của hệ thống, mô tả dữ liệu và quy trình chuẩn hóa dữ liệu trước khi đưa vào mô hình.
Mô hình thí nghiệm được thực hiện thông qua việc tiến hành các thử nghiệm và đánh giá kết quả dựa trên nhiều tập dữ liệu khác nhau Kết quả của các thí nghiệm này sẽ được trực quan hóa trên website để người dùng dễ dàng theo dõi và hiểu rõ hơn về hiệu suất của mô hình.
5 Trình bày các công nghệ để hoàn thành đề tài bao gồm ngôn ngữ lập trình, các thư viện đã sử dụng và các công cụ liên quan
6 Tổng kết, đánh giá những tồn tại, hạn chế của đề tài, tìm hướng khắc phục và hướng phát triển của đề tài trong tương lai
Bảng 1 – Tổng quan về luận văn
Kiến thức nền tảng
Khai phá dữ liệu
2.1.1 Khái niệm về khai phá dữ liệu
Khai phá dữ liệu là quá trình tìm kiếm các mẫu trong tập dữ liệu lớn, kết hợp giữa máy học, thống kê và hệ thống cơ sở dữ liệu Đây là một lĩnh vực liên ngành trong khoa học và thống kê máy tính, với mục tiêu chính là trích xuất thông tin một cách thông minh từ dữ liệu và chuyển đổi chúng thành cấu trúc dễ hiểu để sử dụng hiệu quả hơn.
2.1.2 Mục tiêu của khai phá dữ liệu
Mục tiêu của khai phá dữ liệu là trích xuất mẫu và kiến thức từ lượng lớn dữ liệu, áp dụng cho nhiều dạng dữ liệu và quy trình xử lý thông tin quy mô lớn như thu thập, trích xuất, lưu trữ, phân tích và thống kê Khai phá dữ liệu cũng liên quan đến các ứng dụng của hệ thống hỗ trợ quyết định bằng máy tính, bao gồm trí tuệ nhân tạo, học máy và kinh doanh thông minh.
2.1.3 Nhiệm vụ của khai phá dữ liệu
Khai phá dữ liệu thực tế là quá trình phân tích bán tự động hoặc tự động lượng lớn dữ liệu nhằm trích xuất các mẫu chưa được biết đến, bao gồm phân tích cụm, phát hiện bất thường và khai thác quy tắc luật kết hợp Quá trình này thường sử dụng các kỹ thuật cơ sở dữ liệu, chẳng hạn như các chỉ số không gian, để tối ưu hóa việc xử lý dữ liệu.
Hình 1 – Minh họa về khai phá dữ liệu
Học máy
Học máy là một nhánh của trí tuệ nhân tạo, tập trung vào việc phát triển các kỹ thuật giúp hệ thống tự động học hỏi từ dữ liệu nhằm giải quyết các vấn đề cụ thể.
Học máy khác với khai phá dữ liệu ở chỗ nó tập trung vào việc dự đoán thông tin từ dữ liệu dựa trên các đặc tính đã biết Các phương pháp và công cụ trong học máy cho phép phân tích và đưa ra dự đoán chính xác hơn, từ đó tối ưu hóa quy trình ra quyết định.
2.2.2 Các loại hệ thống máy học
Có rất nhiều loại hệ thống Machine Learning khác nhau, sau đây là cách phân loại chúng theo các danh mục rộng dựa trên:
• Có được đào tạo với sự giám sát của con người hay không (học có giám sát, học không giám sát, học bán giám sát và học tăng cường)
• Có thể học tăng dần hay không (online learning so với batch learning)
Hoạt động của hệ thống diễn ra bằng cách so sánh các điểm dữ liệu mới với những điểm dữ liệu đã biết, hoặc phát hiện các mẫu trong dữ liệu đào tạo để xây dựng một mô hình dự đoán Điều này tương tự như phương pháp mà các nhà khoa học thường áp dụng, giữa học tập dựa trên ví dụ và học tập dựa trên mẫu.
Các tiêu chí này không giới hạn và có thể được kết hợp linh hoạt Chẳng hạn, bộ lọc thư rác tiên tiến có khả năng học nhanh thông qua mô hình mạng nơ-ron sâu, được đào tạo từ các ví dụ về thư rác và ham Điều này cho phép nó hoạt động như một hệ thống học tập trực tuyến có giám sát.
Trong học tập có giám sát, dữ liệu đào tạo chúng ta cung cấp cho thuật toán bao gồm các giải pháp mong muốn, được gọi là nhãn (Hình 2)
Học có giám sát thường liên quan đến việc phân loại, với bộ lọc thư rác là một ví dụ tiêu biểu Bộ lọc này được đào tạo bằng cách sử dụng nhiều mẫu email đã được gán nhãn (spam hoặc ham), từ đó nó học cách phân loại các email mới một cách chính xác.
Một công việc điển hình trong lĩnh vực dự đoán là ước lượng giá trị số mục tiêu, như giá của một chiếc xe, dựa trên các đặc điểm như số dặm, tuổi và thương hiệu Công việc này được gọi là hồi quy Để đào tạo hệ thống, cần cung cấp nhiều ví dụ về ô tô, bao gồm cả giá trị dự đoán và nhãn giá thực tế của chúng.
Một số thuật toán hồi quy có thể được áp dụng cho cả phân loại và hồi quy Chẳng hạn, hồi quy logistic thường được sử dụng cho phân loại vì nó cung cấp giá trị xác suất cho việc thuộc về một lớp nhất định, như khả năng 20% là spam.
Dưới đây là một số thuật toán học tập có giám sát quan trọng nhất
• Hồi quy tuyến tính - Linear Regression
• Cây quyết định và rừng ngẫu nhiên - Decision Trees and Random Forests
Trong học tập không giám sát, dữ liệu đào tạo không được gắn nhãn (Hình 4)
Hệ thống cố gắng học mà không có hướng dẫn
Một bộ đào tạo không có nhãn là cần thiết cho việc học tập không giám sát Dưới đây là một số thuật toán học tập không giám sát quan trọng nhất.
• Phân cụm: o K-means o Phân tích cụm phân cấp - Hierarchical Cluster Analysis (HCA) o Sự tối đa hóa kỳ vọng - Expectation Maximization
• Trực quan hoá và giảm số chiều: o Principal Component Analysis (PCA) o Kernel PCA o Locally-Linear Embedding (LLE) o t-distributed Stochastic Neighbor Embedding (t-SNE)
• Học theo các quy tắc luật kết hợp: o Apirori o Eclat
Chúng ta có thể sử dụng thuật toán phân cụm để phát hiện các nhóm khách truy cập blog tương tự mà không cần chỉ định nhóm cho thuật toán Ví dụ, 40% khách truy cập là nam giới yêu thích truyện tranh và thường truy cập vào buổi tối, trong khi 20% là những người yêu thích khoa học viễn tưởng và ghé thăm vào cuối tuần Thuật toán phân cụm theo phân cấp cũng có thể chia nhỏ các nhóm này, giúp chúng ta nhắm mục tiêu nội dung bài viết cho từng nhóm cụ thể.
Các thuật toán trực quan là ví dụ điển hình của học không giám sát, cung cấp biểu diễn 2D hoặc 3D cho dữ liệu phức tạp không có nhãn Chúng cố gắng bảo tồn cấu trúc dữ liệu, giữ cho các cụm riêng biệt không bị chồng chéo trong quá trình trực quan hóa, giúp hiểu cách tổ chức dữ liệu và xác định các mẫu không bị ảnh hưởng.
Một trong những nhiệm vụ quan trọng trong xử lý dữ liệu là giảm kích thước chiều, nhằm đơn giản hóa dữ liệu mà không làm mất quá nhiều thông tin Một phương pháp hiệu quả là gộp các tính năng tương quan, chẳng hạn như kết hợp số dặm và tuổi xe thành một tính năng đại diện cho sự hao mòn Bên cạnh đó, phát hiện bất thường cũng là một công việc thiết yếu, như nhận diện các giao dịch thẻ tín dụng bất thường để ngăn chặn gian lận hoặc tự động loại bỏ các ngoại lệ khỏi bộ dữ liệu trước khi đưa vào thuật toán học máy Hệ thống sẽ được huấn luyện với các ví dụ bình thường và có khả năng xác định xem một ví dụ mới có giống như phiên bản bình thường hay không, từ đó phát hiện ra sự bất thường.
Phát hiện bất thường là một công việc không giám sát phổ biến, trong đó học theo quy tắc kết hợp giúp khám phá mối quan hệ giữa các thuộc tính trong lượng lớn dữ liệu Chẳng hạn, nếu sở hữu một siêu thị, việc áp dụng quy tắc kết hợp trên nhật ký bán hàng có thể cho thấy mối liên hệ giữa việc mua nước sốt thịt nướng và khoai tây chiên với bít tết Từ đó, chúng ta có thể quyết định đặt các mặt hàng này gần nhau để tối ưu hóa trải nghiệm mua sắm cho khách hàng.
Một số thuật toán có khả năng xử lý dữ liệu đào tạo được gán nhãn một phần, bao gồm nhiều dữ liệu chưa được gán nhãn và một lượng nhỏ dữ liệu đã được gán nhãn Đây được gọi là học bán giám sát.
Học bán giám sát là một phương pháp phổ biến trong lĩnh vực trí tuệ nhân tạo, với Google Photos là ví dụ điển hình Khi người dùng tải ảnh gia đình lên dịch vụ này, hệ thống sẽ tự động nhận diện và phân loại các khuôn mặt tương tự nhau.
A xuất hiện trong nhiều bức ảnh khác nhau, cho thấy khả năng của thuật toán phân cụm không giám sát Hệ thống chỉ cần bạn cung cấp tên cho từng người, và từ đó, nó có thể xác định danh tính của mọi người trong từng bức ảnh, giúp cải thiện khả năng tìm kiếm hình ảnh.
Xây dựng mô hình tiên đoán điểm bằng Random Forest
Mô tả dữ liệu của bài toán
Hệ thống lưu trữ dữ liệu tổng kết các môn học của hơn một nghìn học sinh lớp 12 tại một số trường THPT trên địa bàn tỉnh Bình Phước trong năm học 2017 – 2018, với tổng cộng hơn một nghìn dòng dữ liệu được quản lý trong file Excel.
Dữ liệu điểm học sinh được thu thập từ năm 2017 của một số trường đại học sẽ được đưa vào hệ thống Điều này tạo cơ sở để so sánh với điểm tiên đoán của học sinh, từ đó đưa ra dự đoán về khả năng xét tuyển vào các trường.
Tệp DiemchuanOfficial.xlsx chứa 306 dòng dữ liệu, phản ánh điểm chuẩn các khối thi của các trường đại học thuộc Đại học Quốc gia Thành phố Hồ Chí Minh.
Hình 19 – Dữ liệu điểm chuẩn của các trường đại học
Chuẩn hóa dữ liệu để đưa vào mô hình Random Forest
Khi có điểm tổng kết của học sinh khối 12, việc chuẩn hóa dữ liệu được tiến hành như sau:
Loại bỏ những thuộc tính thừa (Môn không tham gia thi tốt nghiệp)
Để đảm bảo tính chính xác trong quá trình thi tốt nghiệp, cần loại bỏ những bản ghi không phù hợp, đặc biệt là đối với những học sinh không đủ điều kiện tham gia Đồng thời, việc đánh số báo danh cho các bản ghi là cần thiết để phân biệt và quản lý thông tin một cách hiệu quả.
Để làm tròn điểm tổng kết của môn học (a), bạn có thể sử dụng hàm MROUND(a, b) trong Excel để làm tròn số đến hàng b Sau đó, áp dụng các phép toán cộng hoặc trừ phù hợp để tính ra điểm c, điểm này sẽ được sử dụng để huấn luyện.
Thí nghiệm
Tập dữ liệu
Trong hơn một nghìn bản ghi của dữ liệu được đưa vào thí nghiệm, chia 80% để huấn luyện và 20% để kiểm tra
Các môn học được phân chia để huấn luyện riêng biệt với từng mô hình nhỏ khác nhau, do tính độc lập của mỗi môn Việc một học sinh xuất sắc ở một hoặc một số môn không có nghĩa là họ cũng giỏi ở các môn học khác.
4.2 Ví dụ minh họa về xây dựng một cây đồ thị theo CART
Giả sử đối với môn Vật lý, điểm tổng kết của các em lần lượt là (9, 8, 8.5, 8.8, 9.4, 9.1) và điểm thi thực tế đạt được lần lượt tương ứng là (7.5, 6, 6.25, 6.5, 7.75, 8)
Trong đó, công thức tính square loss để tìm điểm chia tốt nhất là:
Ta có bảng tính điểm chia tốt nhất:
Ta lập được cây đồ thị như sau:
Ta tiếp tục tính điểm chia tốt nhất để tính các node tiếp theo trong đồ thị:
Cây đồ thị được vẽ tiếp như sau:
Sử dụng thư viện xlrd để đọc file excel và thư viện numpy để thao tác với các mảng số.A
Ví dụ minh họa về đọc dữ liệu:
Trong bài viết này, chúng ta sẽ khởi tạo dữ liệu độc lập X, đại diện cho điểm tổng kết năm học, và dữ liệu phụ thuộc Y, tương ứng với điểm thi tốt nghiệp cho 9 môn học.
Hình 21 –Khởi tạo biến Tiến hành import module RandomForestRegressor từ thư viện sklearn.ensemble và tạo các regressor với các thông số tương ứng cho các môn học
Hình 22 – Các regressor trong chương trình
4.4 Kết quả thực nghiệm Để đánh giá mô hình, sử dụng hàm RMSE (Root Mean Square Error) tính độ lệch trung bình bình phương theo công thức cải tiến của phương pháp sai số trong tỷ lệ phần trăm MAPE (Mean Absolute Percentage Error):
Trong đó: Predictedi là kết quả dự đoán cuối cùng của mô hình (trung bình kết quả của các cây con) của học sinh thứ i
Actuali là điểm thi tốt nghiệp thực tế của học sinh thứ i
N là số lượng học sinh được dự đoán
Khi lựa chọn tham số n_estimator0 để đạt được độ chính xác tốt, nếu số lượng mẫu nhỏ hơn 100, độ chính xác sẽ không đạt 100 Ngược lại, khi số lượng mẫu lớn hơn 100, độ chính xác sẽ không thay đổi.
Ta có kết quả độ lệch của mô hình:
Mô hình Toán Lý Hóa Sinh Văn Sử Địa Ngoại ngữ
Bảng 2 – Độ sai số của mô hình (Độ sai số nhỏ nhất là 0 tương đương độ chính xác 100%)
Ngoài ra, khi so sánh kết quả với một số phương pháp hồi quy khác, ta thấy
Văn Sử Địa Ngoạ i ngữ
MLP (thông số mặc định)
Kết quả so sánh độ sai số của việc dự đoán bằng hồi quy qua các mô hình khác nhau cho thấy mô hình tốt nhất đạt được độ sai số nhỏ nhất là 0.78.
4.5 Website tiên đoán điểm tốt nghiệp
Sau khi hoàn tất quá trình huấn luyện mô hình, cần xây dựng một trang web cho phép người dùng nhập điểm tổng kết của họ Điểm số này sẽ được gửi đến máy chủ và được tích hợp vào hệ thống.
29 trên kết quả đã huấn luyện, đưa ra điểm thi tốt nghiệp dự đoán và trả về kết quả cho người dùng:
Hình 24 – Website dự đoán điểm
Công nghệ sử dụng
Ngôn ngữ lập trình
Ngôn ngữ lập trình được sử dụng là Python 3.0 Đây là ngôn ngữ lập trình thông dịch, có nhiều ưu điểm như:
Sử dụng đơn giản giúp cho người lập trình dễ đọc và dễ hiểu
Có kho thư viện tiêu chuẩn cao
Tốc độ xử lý nhanh
Python còn được biên dịch và chạy trên tất cả các nền tảng lớn nhất hiện nay
Hệ thống sử dụng ngôn ngữ HTML (HyperText Markup Language) hay là
Ngôn ngữ Đánh dấu Siêu văn bản (HTML) là công cụ chủ yếu để xây dựng các trang web, giúp trình bày thông tin trên World Wide Web Kết hợp với CSS và JavaScript, HTML tạo thành bộ ba nền tảng thiết yếu cho việc phát triển hệ thống tiên đoán điểm trên Internet.
Thư viện
Việc sử dụng Python để đọc và trích xuất dữ liệu từ các file rất thuận tiện và nhanh chóng, điều này đã được cộng đồng lập trình viên công nhận Hệ thống này tận dụng thư viện xlrd để thực hiện việc đọc file Excel một cách hiệu quả.
Numpy là một thư viện toán học rất phổ biến và đẩy quyền năng của python
Nó cho phép làm việc hiệu quả với ma trận, tính toán các phép toán của ma trận nhanh chóng và hiệu quả
Hệ thống sử dụng thư viện numpy để thao tác với các mảng số
Hình 25 - Khai thác thư viện xlrd và thư viện numpy
5.2.3 Thư viện sklearn Đây là thư viện phổ biến nhất trong ngôn ngữ ngữ lập trình Python, có chứa sẵn nhiều thuật toán, hàm, module và các bộ dữ liệu cho người lập trình khai thác Hệ thống này sử dụng thư viện sklearn, lấy ra module RandomForestRegressor quan trọng để tạo các regressor với các thông số tương ứng cho 9 môn học
Hình 26 – Khai thác thư viện sklearn
Công cụ và thiết bị
Jupyter Notebook là ứng dụng web mã nguồn mở giúp người dùng tạo và chia sẻ tài liệu tích hợp mã nguồn, phương trình, hình ảnh trực quan và văn bản mô tả Nó được sử dụng rộng rãi trong các lĩnh vực như làm sạch và chuyển đổi dữ liệu, mô phỏng số, phân tích thống kê, trực quan hóa dữ liệu và học máy.
Jupyter Notebook có hỗ trợ hơn 40 ngôn ngữ lập trình, bao gồm Python, R, Julia và Scala…
5.3.2 Chuẩn kết nối socketIO Để xây dựng một ứng dụng realtime cần sử dụng socketio Socketio sẽ giúp các bên ở những địa điểm khác nhau kết nối với nhau, truyền dữ liệu ngay lập tức thông qua server trung gian
Cấu trúc một ứng dụng realtime sử dụng socket bao gồm 2 phần: phía server, phía client
Cần phải cài đặt và khai báo sử dụng ở cả hai phía server và client mới có thể sử dụng được
Tổng kết
Kết quả đạt được
Sau khi nghiên cứu về học máy và cây quyết định, tôi đã phát triển một mô hình tiên đoán điểm thi tốt nghiệp cho phụ huynh và học sinh lớp 12 chuẩn bị cho kỳ thi quan trọng Mô hình này áp dụng kỹ thuật rừng hồi quy ngẫu nhiên trong thuật toán phân lớp và đã đạt được kết quả khả quan với độ chính xác tương đối tốt.
Tôi đã phát triển một hệ thống dự đoán điểm trên website, cho phép người dùng nhập điểm tổng kết và nhận kết quả dự đoán điểm thi tốt nghiệp Hệ thống này giúp học sinh có cơ sở khoa học để đánh giá năng lực bản thân và lập kế hoạch cho tương lai Tuy nhiên, cần lưu ý rằng điểm số dự đoán chỉ mang tính chất tham khảo; phụ huynh và học sinh không nên để nó ảnh hưởng tiêu cực đến tâm lý và khả năng phấn đấu của mình.
Tồn tại và hạn chế
Hệ thống mà tôi đề xuất và xây dựng vẫn còn một số tồn tại và hạn chế Mặc dù mô hình cho kết quả dự đoán khả quan, nhưng chưa đạt hiệu quả tốt nhất so với các mô hình khác Độ lệch sai số vẫn còn cao do nhiều yếu tố khách quan từ học sinh, chẳng hạn như không phải học sinh nào cũng có lực học đồng đều Một số em có điểm tổng kết cao nhưng chỉ tập trung ôn thi cho một hoặc một vài khối, dẫn đến điểm thi thực tế ở các môn khác thấp Ngoài ra, tâm lý, thể trạng và thời tiết trong ngày thi cũng ảnh hưởng đến kết quả.
Giao diện website vẫn còn sơ sài do kiến thức và thẩm mỹ thiết kế của cá nhân còn hạn chế
Dữ liệu thu thập vẫn chưa dồi dào, việc huấn luyện và kiểm thử trên tập dữ liệu còn thô sơ.
Hướng phát triển
Tôi mong muốn cải thiện mô hình của mình với thời gian chạy nhanh hơn, tốc độ xử lý tốt hơn và độ chính xác trong dự đoán cao hơn thông qua những phương pháp cụ thể.
Nghiên cứu và tìm hiểu và học hỏi nhiều hơn các mô hình ứng dụng Random Forest
Thu thập nhiều dữ liệu hơn để phục vụ cho hệ thống
Tìm hiểu các mô hình mới hơn để thử nghiệm các kĩ thuật khác phù hợp cho nội dung tiên đoán
Nâng cao kiến thức cá nhân về HTML, Python và các công cụ hỗ trợ khác là điều cần thiết để hoàn thiện hệ thống một cách hiệu quả hơn.