CƠ SỞ HÌNH THÀNH NGHIÊN CỨU VÀ NGHIÊN CỨU LIÊN
Các nghiên cứu liên quan
Nghiên cứu của tác giả Nguyễn Thành Xuân Trâm [1] (tháng 06/2019) đề xuất xây dựng mô hình dự đoán kết quả học tập của sinh viên áp dụng các kỹ thuật máy học gồm Collaborative Filtering, Matrix Factorization, Item-based Collaborative Filtering on Item Factor Matric of Alternative Least Square Bài toán của nghiên cứu đặt ra là bài toán dự đoán điểm số và đề xuất môn học cho sinh viên dựa vào tập dữ liệu học tập trước đó của sinh viên để đưa ra dự đoán điểm của những môn học tiếp theo và dựa trên cơ sở dự đoán đó gợi ý những môn học mà sinh viên đăng ký học để đạt kết quả tốt nhất Bài toán sử dụng dữ liệu đầu vào là danh sách các môn học sinh viên đã học và kết quả đầu ra chính là điểm số dự đoán của các môn mà sinh viên chưa học hoặc những môn học dữ liệu đầu vào cần dự đoán Đề tài đã so sánh các kỹ thuật áp dụng cho từng trường hợp dữ liệu cụ thể, qua đó đánh giá mô hình dự đoán có thể triển khai áp dụng tại phòng đào tạo của trường đại học Bách khoa TpHCM Trong nghiên cứu, tác giả sử dụng phương pháp Mean Absolute Error (MAE) để đánh giá hiệu quả của các giải thuật trong bài toán dự đoán học tập của sinh viên Theo tác giả, kết quả dự đoán điểm sử dụng giải thuật Non-Negative Alternative Least Square (Matrix Factorization) với độ đo lỗi MAE = 0,8 được đánh giá là tốt hơn so với kết quả thu được các kỹ thuật khác
Nghiên cứu của tác giả Nguyễn Hữu Quang [2] (tháng 08/2018) trình bày lý thuyết về cơ sở dữ liệu chuỗi, khai thác luật tuần tự IMSR_PreTree, luật tuần tự không dư thừa MNS_PreTree trên cơ sơ dữ liệu chuỗi, thực hiện mô hình dự đoán kết quả học tập của sinh viên khoa CNTT trường đại học Công nghiệp TpHCM Dữ liệu đầu vào của nghiên cứu gồm 03 loại chính : Dữ liệu môn học (danh sách các môn học trong chương trình đào tạo); Dữ liệu điểm đánh giá môn học (Gồm 09 mức điểm được quy đổi về thang điểm chữ dựa trên khung điểm hệ số 10) và Dữ liệu đánh giá kết quả học tập của sinh viên (Là dữ liệu được rời rạc hóa thành kiểu số nguyên để có được dữ liệu phù hợp với yêu cầu của các thuật toán khai thác luật tuần tự) Dữ liệu đầu ra là kết quả dự đoán của các môn học mà sinh viên sẽ học trong tương lai, dựa trên dữ liệu đầu ra này, sinh viên có thể đánh giá và điều chỉnh việc học của mình cũng như có được cơ sở để lựa chọn các môn học tự chọn trong các học kỳ tiếp theo Kết quả dự đoán của nghiên cứu có tỷ lệ sai 28% vì các yếu tố môi trường và nhiều nguyên nhân khách quan, chủ quan khác nhau của bản thân mỗi sinh viên Điểm chung dễ nhận thấy nhất trong cả hai nghiên cứu trên là cả hai tác giả đều sử dụng dữ liệu thuộc tính duy nhất là điểm số các môn học là dữ liệu đầu vào cho nghiên cứu của mình Cả 02 tác giả cũng chỉ ra rằng còn nhiều yếu tố khác ảnh hưởng đến kết quả trong nghiên cứu của mình
2.1.2 Nghiên cứu trên thế giới
Nghiên cứu của Amirah Mohamed Shahiri, Wahidah Husain, Nur’ aini Abdul Rashid [8] đánh giá tất cả các nghiên cứu trong lĩnh vực Khai phá dữ liệu giáo dục từ năm 2002-2015 Tác giả cho rằng có 02 yếu tố chính để đánh giá kết quả học tập của sinh viên, bao gồm : Các dữ liệu thuộc tính và các phương pháp dự đoán Tác giả nhận xét rằng rất nhiều công trình nghiên cứu sử dụng dữ liệu thuộc tính Điểm trung bình tích lũy (CGPA-Cummulative Grade Point Avarage) là dữ liệu đầu vào vì CGPA có giá trị hữu hình cho giáo dục trong tương lai và sự chủ động trong nghề nghiệp CGPA cũng được xem là chỉ số của tiềm năng học tập được nhận diện và là dữ liệu đầu vào có giá trị quan trọng nhất so với các dữ liệu thuộc tính khác Đặc biệt, CGPA là dữ liệu thuộc tính có ảnh hưởng nhất để xác định sự tồn tại của sinh viên trong việc học
Nhân khẩu học sinh viên (Demographic) và đánh giá bên ngoài là 02 dữ liệu thuộc tính đầu vào cũng thường được các nghiên cứu sử dụng Nhân khẩu học bao gồm Giới tính, Tuổi, Nền tảng gia đình và Sự khiếm khuyết của cơ thể Đánh giá bên ngoài được xác định là điểm số đạt được trong các bài kiểm tra kết thúc môn học Ngoài ra cũng có 03 dữ liệu thuộc tính khác là các hoạt động ngoại khóa, nền tảng kiến thức phổ thông và sự tương tác mạng xã hội
Cuối cùng là dữ liệu thuộc tính có tên các yếu tố tâm lý học, yếu tố này bao gồm sự quan tâm của sinh viên, hành vi học tập, thời gian học tập và sự hỗ trợ của gia đình Dữ liệu thuộc tính này giúp xây dựng một hệ thống khá rõ ràng, đơn giản và thân thiện với người dùng giúp giảng viên đánh giá được thành tích của sinh viên dựa trên các mối quan tâm và hành vi của sinh viên Tuy nhiên, dữ liệu thuộc tính này hiếm khi được áp dụng để dự đoán kết quả học tập của sinh viên vì nó tập trung nhiều vào dữ liệu định tính và rất khó để thu thập dữ liệu có giá trị từ người trả lời Đánh giá về các phương pháp dự đoán cho thấy Decision Tree là kỹ thuật được sử dụng phổ biến nhất vì nó đơn giản và toàn diện để khám phá các cấu trúc dữ liệu Neural Network cũng là kỹ thuật được sử dụng phổ biến vì khả năng phát hiện tất cả các khả năng tương tác giữa các biến dự đoán và khả năng phát hiện toàn diện chắc chắn thậm chí trong quan hệ phi tuyến tính phức tạp giữa các biến độc lập và biến phụ thuộc Ngoài ra, còn có 03 thuật toán khác cũng được các nhà nghiên cứu sử dụng là Naive Bayes, K-Nearest Neighbor và Support Vector Machine (SVM)
Hình 2.1 : Danh sách các dữ liệu thuộc tính và phương pháp để đánh giá kết quả học tập của sinh viên Nguồn : Mục Tài liệu tham khảo [8]
CGPA (Cummulative Grade Point Average) : Điểm trung bình tích lũy
Internal assessment : Đánh giá nội bộ
External assessment : Đánh giá bên ngoài
Extra-curricular activities : Hoạt động ngoại khóa
High-school background : Nền tảng kiến thức phổ thông
Psychometric factors : Các yếu tố tâm lý
Social network interaction : Tương tác trên mạng xã hội
Student demographic : Nhân khẩu học sinh viên
Bảng sau đây tổng hợp độ chính xác của kết quả nghiên cứu sử dụng các thuật toán khi dự đoán kết quả học tập của sinh viên :
TT Dữ liệu thuộc tính Kết quả Tác giả
1 Đánh giá nội bộ 76% Romero et al (2008)
2 Các yếu tố tâm lý 65% Gray et al (2014)
3 Đánh giá bên ngoài 85% Bunkar et al (2012)
5 CGPA, nhân khẩu học sinh viên, nền tảng phổ thông, học bổng, tương tác mạng xã hội 71% Osmanbegovic và
6 Đánh giá nội bộ, CGPA, hoạt động ngoại khóa 66% Mayilvaganan và
7 Nhân khẩu học sinh viên, nền tảng phổ thông 65% Ramesh et al (2013)
8 Đánh giá nội bộ, nhân khẩu học sinh viên, hoạt động ngoại khóa 90% Elakia et al (2014)
9 Đánh giá bên ngoài, CGPA, nhân khẩu học sinh viên, hoạt động ngoại khóa 90% Natek và Zwilling
10 Các yếu tố tâm lý, hoạt động ngoại khóa, kỹ năng mềm 88% Mishra et al (2014)
Bảng 1 : Độ chính xác của kết quả sử dụng phương pháp Decision Tree
Nguồn : Mục Tài liệu tham khảo [8]
TT Dữ liệu thuộc tính Kết quả Tác giả
1 Đánh giá nội bộ 81% Wang và Mirovic
2 Các yếu tố tâm lý 69% Gray et al (2014)
3 Đánh giá bên ngoài 97% Arsad et al (2013)
5 CGPA, nhân khẩu học sinh viên, nền tảng phổ thông, học bổng, tương tác mạng xã hội 71% Osmanbegovic và
6 Nhân khẩu học sinh viên, nền tảng phổ thông 72% Ramesh et al (2013)
7 Đánh giá bên ngoài, nhân khẩu học sinh viên, nền tảng phổ thông 74% Oladokun et al
8 Đánh giá nội bộ, đánh giá bên ngoài 98% Anupama và
Vijayalakshmi (2012) Bảng 2 : Độ chính xác của kết quả sử dụng phương pháp Neural Network
Nguồn : Mục Tài liệu tham khảo [8]
TT Dữ liệu thuộc tính Kết quả Tác giả
1 CGPA, nhân khẩu học sinh viên, nền tảng phổ thông, học bổng, tương tác mạng xã hội 76% Osmanbegovic và
2 Nhân khẩu học sinh viên, nền tảng phổ thông 50% Ramesh et al (2013)
4 Đánh giá nội bộ, CGPA, hoạt động ngoại khóa 73% Mayilvaganan và
Kapalnadevi (2014) Bảng 3 : Độ chính xác của kết quả sử dụng phương pháp Naive Bayes
Nguồn : Mục Tài liệu tham khảo [8]
TT Dữ liệu thuộc tính Kết quả Tác giả
1 Các yếu tố tâm lý 69% Gray et al (2014)
2 Đánh giá nội bộ, CGPA, hoạt động ngoại khóa 83% Mayilvaganan và
3 Đánh giá nội bộ 82% Bigdoli et al (2003)
Bảng 4 : Độ chính xác của kết quả sử dụng phương pháp K-Nearest Neighbor
Nguồn : Mục Tài liệu tham khảo [8]
TT Dữ liệu thuộc tính Kết quả Tác giả
1 Các yếu tố tâm lý 83% Sembiring et al (2011)
2 Đánh giá nội bộ, CGPA, hoạt động ngoại khóa 80% Mayilvaganan và
3 Đánh giá nội bộ, CGPA 80% Hamalainen et al
(2006) Bảng 5 : Độ chính xác của kết quả sử dụng phương pháp Support Vector Machine
Nguồn : Mục Tài liệu tham khảo [8]
Hình 2.2 : Độ chính xác trong dự đoán được nhóm theo thuật toán từ 2002-2015
Nguồn : Mục Tài liệu tham khảo [8]
Nghiên cứu của C Anuradha và T.Velmurugan [9] cho kết quả rằng độ chính xác của các tập được phân loại đạt hơn 60% Ngoài ra, độ chính xác trong phân lớp của các lớp khác nhau cho thấy rằng việc dự đoán không có kết quả đáng tin cậy với lớp chuẩn và khá tin cậy với lớp ban đầu Việc phân loại sinh viên dựa vào các dữ liệu thuộc tính cho thấy tỷ lệ dự đoán không đồng nhất giữa các thuật toán phân loại Ngoài ra, các dữ liệu thuộc tính được lựa chọn cũng cho thấy có ảnh hưởng đến quá trình phân loại
Nghiên cứu của 02 tác giả Fan Yang và Frederique W.B.Li [10] đã sử dụng ma trận dữ liệu thuật toán sinh viên (SAM – Student Attribute Matrix) với các biến đầu vào được xác định là những dữ liệu có và không liên quan tới quá trình học tập của sinh viên và áp dụng thuật toán phân lớp Back Propagation - Neural Network (BP- NN) để đánh giá quá trình học tập của sinh viên trong môi trường học tập trực tuyến (e-Learning)
Trên cơ sở tìm hiểu các nghiên cứu trong nước và trên thế giới, cùng với đặc trưng của lĩnh vực bản thân đang công tác và hiện tại trường đại học Tài chính – Marketing chưa có công trình nghiên cứu nào liên quan hoặc phù hợp với bài toán này nên tác giả tiến hành thực hiện nhằm đóng góp vào công tác quản lý giáo dục tại đơn vị công tác Tác giả lựa chọn phương pháp nghiên cứu trong luận văn này như sau :
- Phương pháp nghiên cứu là phương pháp phân loại
- Bài toán nghiên cứu là bài toán phân loại
Kết quả của bài toán phân loại là kỳ vọng của tác giả khi dự đoán khả năng sinh viên tốt nghiệp đúng thời hạn theo chương trình đào tạo hay không
Ngữ cảnh của bài toán là khoa Công nghệ thông tin trường đại học Tài chính – Marketing mà tác giả luận văn đang công tác
- Thuật toán nghiên cứu là Cây quyết định
- Ngôn ngữ lập trình cho thuật toán nghiên cứu là Python cùng các thư viện hỗ trợ ngôn ngữ lập trình Python như pandas, numpy, mathplotlib, seaborn…
- Môi trường hoạt động của thuật toán nghiên cứu là thư viện scikit-learn
- Dữ liệu của bài toán phân loại là số tín chỉ tích lũy của mỗi sinh viên trong từng học kỳ
Ngữ cảnh của dữ liệu bài toán phân loại là khoa Công nghệ thông tin trường đại học Tài chính – Marketing, bao gồm 05 khóa (khóa 11 – khóa 15)
Việc hiểu và nắm bắt được phương pháp phân loại, thuật toán phân loại cùng với những khó khăn của phương pháp nghiên cứu là yêu cầu bắt buộc của đề tài này.
Bài toán phân loại
Phương pháp cây là một sản phẩm của kỷ nguyên máy tính Không giống như những phương pháp thống kê khác là sử dụng viết chì và giấy để tính toán rồi sau đó đưa vào máy tính thì việc sử dụng các cây là việc không thể nghĩ ra được trước khi có sự xuất hiện của máy tính
Cây nhị phân cung cấp cách nhìn dữ liệu thú vị và thường sáng tỏ hơn trong các bài toán phân loại hoặc đệ quy, nó cũng không được sử dụng để loại trừ các phương pháp khác Dù không thể chắc chắn rằng phương pháp cây là luôn luôn tốt hơn nhưng nó thực sự là một công cụ mềm dẻo phi tham số đóng góp vào kho vũ khí của các nhà phân tích dữ liệu Cả hai mặt lý thuyết và thực tiễn cũng đã và đang được thực hiện để phát triển nghiên cứu về các phương pháp cây
Cây cũng như các công cụ phân tích dữ liệu mạnh mẽ khác (Phân tích nhân tố, nonmetric scaling…) bắt nguồn từ nhu cầu của các nhà khoa học xã hội với động lực phải đối phó với các bài toán và dữ liệu thực tiễn
Vấn đề phân loại không được xây dựng phi thực tế mà dựa vào kinh nghiệm trong quá khứ Trong khi xây dựng việc phân loại, kinh nghiệm trong quá khứ được gọi tắt là mẫu học tập bao gồm các dữ liệu đo lường trên n trường hợp được quan sát trong quá khứ cùng với việc phân loại thực sự của n trường hợp đó
2.2.1 Mục đích của phân tích phân loại [11]
Tùy vào bài toán, mục đích cơ bản của nghiên cứu phân loại có thể là tạo ra việc phân loại chính xác hoặc phát hiện cấu trúc dự đoán của bài toán Nếu quan tâm đến phần dự đoán thì ta phải cố hiểu các biến như thế nào và sự tương tác của các biến đó dẫn tới các hiện tượng để có được đặc trưng hóa đơn giản theo các điều kiện (dưới dạng các biến đo lường x X) mà xác định một đối tượng thuộc lớp này hay lớp khác Hai mục đích kể trên không loại trừ lẫn nhau mà cả hai đều cùng dự đoán chính xác và hiểu rõ dữ liệu, đôi khi một trong hai hoặc cả hai mục đích sẽ có ưu thế hơn Trong các dự án phân loại quang phổ (sự phân bổ theo độ lớn hoặc theo tính chất) lớn thì nhấn mạnh vào việc dự đoán với mục đích là phát triển một thuật toán trực tuyến chính xác và hiệu quả khi chấp nhận dữ liệu đầu vào là khối lượng lớn các hợp chất không biết và phân loại hợp chất có chứa chất clo hay không
Một tiêu chuẩn quan trọng của một bài toán phân loại tốt đó là không chỉ phân loại chính xác (trong phạm vị giới hạn của dữ liệu) mà còn cung cấp sự hiểu biết toàn diện và sâu sắc về cấu trúc dự đoán của dữ liệu
Nhiều kỹ thuật thống kê được thiết kế cho những tập dữ liệu nhỏ vốn có cùng cấu trúc tiêu chuẩn với các biến có cùng kiểu dữ liệu, giả định cơ bản là các hiện tượng là đồng nhất Như vậy, mối quan hệ giống nhau giữa các biến vẫn tồn tại trong tất cả các không gian đo lường Điều này dẫn tới việc chỉ một số ít tham số cần thiết để theo dõi hiệu ứng của các nhân tố khác có liên quan
Với các tập dữ liệu lớn có nhiều biến, nhiều cấu trúc có thể được phân biệt cùng với nhiều phương pháp khác nhau Tính chất “Lớn” bản thân nó không cần thiết ám chỉ sự đa dạng của cấu trúc Điều gì khiến một tập dữ liệu hấp dẫn không chỉ độ lớn của nó mà còn độ phức tạp, trong đó độ phức tạp có thể xem xét theo các yếu tố sau : a Số chiều dữ liệu cao b Hỗn hợp các kiểu dữ liệu c Cấu trúc dữ liệu phi tiêu chuẩn d Các mối quan hệ khác nhau được lưu giữ giữa các biến trong các phần khác nhau của không gian đo lường
Yếu tố này được coi là thách thức nhất và không thuần nhất Độ phức tạp của tập dữ liệu tăng cao khi số chiều dữ liệu tăng, tuy nhiên với sự hỗ trợ của máy tính mạnh mẽ ngày nay cùng với các cơ sở dữ liệu đa chiều, phức tạp thì kích thước các biến hoặc các kiểu dữ liệu hỗn hợp, không đồng nhất không còn là khó khăn nữa
2.2.2 Mô hình dự đoán của bài toán phân loại
Phân loại là bài toán xây dựng mô hình dự đoán bao gồm việc gán nhãn cho mỗi quan sát “Các mô hình phân loại tạo ra một lớp dự đoán có nguồn gốc từ dạng giá trị dữ liệu rời rạc Trong phần lớn các ứng dụng thực tiễn, việc dự đoán giá trị dữ liệu rời rạc cần thiết để ra quyết định” [11] Mỗi bài toán phân loại bao gồm các quan sát (dữ liệu) và một nhãn của lớp phân loại, trong đó các quan sát sẽ là các dữ liệu đầu vào và lớp được gán nhãn sẽ được coi là dữ liệu đầu ra Ví dụ, khi thu thập độ dài của cánh hoa rồi dựa trên đặc trưng độ dài cánh hoa để để phân chia theo các loài hoa Số lượng lớp của bài toán xây dựng mô hình dự đoán sẽ được thu thập đầy đủ khi bài toán được xây dựng hoặc được mô tả, tất nhiên số lượng lớp này cũng sẽ không thay đổi Ta cũng có thể dự đoán xác suất của một quan sát sẽ thuộc về một lớp nào đó thay vì chỉ dựa vào một lớp đơn thuần Điều này cho phép một mô hình dự đoán chia sẽ sự bất định trong khi dự đoán với một loạt các tùy chọn và cho phép người sử dụng hiểu được kết quả trong ngữ cảnh của bài toán
“Giống như mô hình đệ quy, mô hình phân loại xuất ra giá trị dự đoán dạng liên tục thường dưới dạng xác suất (nghĩa là các giá trị dự đoán của một lớp nào đó đối với một mẫu đơn lẻ thường dao động trong phạm vi [0 , 1] và tổng là 1” [11] Ví dụ, với các quan sát là các độ đo của nhiều cánh hoa, ta có thể dự đoán khả năng (xác suất) một cây hoa sẽ thuộc loại nào trong 20 loại hoa khác nhau Số lượng lớp của bài toán mô hình dự đoán là luôn luôn cố định khi xây dựng bài toán và thường số lượng lớp không thay đổi
Một bài toán mô hình dự đoán thường có 02 lớp với 02 nhãn, đây là kiểu bài toán phân loại đơn giản nhất và được cọi là bài toán phân loại 02 lớp hoặc bài toán nhi phân Ngoài ra, bài toán có thể có nhiều hơn 02 lớp như 03 lớp, 10 lớp hoặc thậm chí hàng trăm lớp, những bài toán đa lớp như vậy được gọi là bài toán phân loại đa lớp Ta có thể tóm tắt như sau : a Bài toán phân loại nhị phân
Là bài toán dự đoán phân loại mà tất cả các dữ liệu sẽ chỉ thuộc về 01 trong
02 lớp b Bài toán phân loại đa lớp
Là bài toán dự đoán phân loại mà tất cả các dữ liệu sẽ thuộc về 01 trong số các lớp có sẵn của bài toán
Khi làm việc với bài toán dự đoán phân loại, ta phải thu thập Training dataset Training dataset là số lượng dữ liệu thuộc ngữ cảnh bài toán bao gồm cả dữ liệu đầu vào (ví dụ như các độ đo của cánh hoa) và dữ liệu đầu ra (ví dụ như các nhãn được gán cho các lớp) Tùy thuộc vào độ phức tạp của bài toán và loại mô hình được lựa chọn để áp dụng mà có thể sử dụng hàng chục, hàng trăm, hàng nghìn hoặc thậm chí hàng triệu dòng dữ liệu thuộc ngữ cảnh bài toán để xây dựng Training dataset Training dataset thường được sử dụng để hiểu hơn về dữ liệu đầu vào và để chuẩn bị tốt hơn trong việc xây dựng mô hình Nó cũng được sử dụng để đánh giá mức độ phù hợp khi sử dụng các thuật toán xây dựng mô hình khác nhau Nó cũng được sử dụng để điều chỉnh các siêu tham số (hyperparameters) đối với mô hình được chọn Cuối cùng, Training dataset còn được sử dụng để huấn luyện mô hình cuối cùng cho các dữ liệu có sẵn để ta có thể sử dụng nó trong tương lai khi thực hiện dự đoán cho các dữ liệu mới được thu thập phù hợp với ngữ cảnh của bài toán.
Dữ liệu bất đối xứng
Khi thu thập dữ liệu để phục vụ việc xây dựng mô hình dự đoán phân lại của bài toàn sẽ gặp một trong những khó khăn lớn nhất là tình trạng Dữ liệu bất đối xứng Đây là hiện tượng dữ liệu của bài toán được phân bổ lệch hoặc thiên về một xu hướng chưa biết nào đó Sự phân bổ này có thể diễn ra từ ít lệch cho tới bất đối xứng nghiêm trọng, ví dụ như một lớp thiểu số chứa ít dữ liệu tồn tại bên cạnh một hoặc nhiều lớp chiếm đa số với hàng trăm, hàng nghìn, thậm chí hàng triệu dữ liệu Hiện tượng này sẽ khiến cho mô hình hoạt động với kết quả dự đoán kém, đặc biệt ảnh hưởng đến lớp thiểu số Nếu lớp thiểu số này có vai trò quan trọng thì sẽ khiến cho bài toán nhạy cảm hơn với sai sót trong kết quả việc phân loại đối với lớp thiểu số và ít ảnh hưởng đến kết quả phân loại của lớp chiếm đa số
Việc phân loại với dữ liệu bất đối xứng là một thách thức cho việc xây dựng mô hình dự đoán của phần lớn các thuật toán máy học (Machine Learning) khi việc phân loại được thiết kế xung quanh giả thiết là số lượng dữ liệu của các lớp có sự tương đồng nhau Việc học tập mô hình máy học trên tập dữ liệu bất đối xứng sẽ gây ra những khó khăn đặc thù của bài toán học tập, ví dụ khi xây dựng bài toán phân loại để nhận diện một giao dịch thẻ tín dụng là thật hay gian lận, tập dữ liệu thu thập được theo tỷ lệ cứ 10.000 dòng dữ liệu là giao dịch thật cùng với chỉ 01 dòng dữ liệu là giao dịch gian lận thì đã có hiện tượng bất đối xứng với tập dữ liệu này [19]
Hình 2.3 : Dữ liệu bất đối xứng Nguồn : Mục Tài liệu tham khảo [18]
Hiện tượng Dữ liệu bất đối xứng xảy ra khi lớp thiểu số chỉ chiếm tỷ lệ dưới 20% so với toàn bộ tập dữ liệu thu thập được
Dữ liệu bất đối xứng hiếm khi xảy ra, nhưng thực tế vẫn tồn tại nhiều trong nhiều lĩnh vực của cuộc sống Có nhiều bài toán sử dụng tập dữ liệu bất đối xứng hiện đã và đang rất hữu ích có thể kể ra như sau [19] : a Phát hiện gian lận khi thanh toán bằng thẻ tín dụng trong lĩnh vực tài chính
Khoảng 2% tài khoản thẻ tín dụng được xác định là gian lận hàng năm Phần lớn tập dữ liệu trong lĩnh vực phát hiện gian lận có tính bất đối xứng nghiêm trọng b Phát hiện click chuột của người dùng trong quảng cáo trực tuyến của lĩnh vực thương mại điện tử,
Tỷ lệ chuyển đổi quảng cáo trực tuyến trong khoảng [10 -3 – 10 -6 ] c Phát hiện lỗi của ổ cứng máy tính
Tỷ lệ lỗi của ổ cứng máy tính xấp xỉ 1% hàng năm d Phát hiện sản phẩm hư hỏng trong dây chuyển sản xuất
Tỷ lệ phế phẩm trong dây chuyền sản xuất thường là 0,1% e Phát hiện máy chủ bị sập khi quét toàn bộ mạng lưới máy tính f Phát hiện thư điện tử rác (spam) g Phát hiện dữ liệu bất thường h Phát hiên xâm nhập trái phép …
Khi xây dựng mô hình dạng cây, ví dụ như cây quyết định, với mục tiêu là tìm ra được các luật luận lý có khả năng thu nạp toàn bộ tập dữ liệu và phân chia các dữ liệu đó vào các lớp khác nhau Nói cách khác, mô hình sẽ chia trong cây để tăng tính thuần khiết của dữ liệu như việc dữ liệu được lọc vào đúng các nhóm đồng nhất Nếu xuất hiện lớp đa số, thì các tầng trên của cây quyết định dường như học việc chia để phân chia lớp đa số thành các nhóm thuần khiết thay vì các luật chia cho lớp thiểu số
Dù không phải tất cả các tập dữ liệu đều bị ảnh hưởng khi có hiện tượng bất đối xứng, nói chung đối với các bài toán phân loại dễ có sự phân chia dữ liệu rõ ràng thì hiện tượng bất đối xứng dữ liệu của lớp không gây khó khăn cho khả năng học tốt của mô hình Tuy nhiên, các tập dữ liệu vốn đã khó học sẽ gây khó khăn gấp bội khi tồn tại dữ liệu bất đối xứng trong lớp
Trong bài toán phân loại có hai thuật ngữ về bất đối xứng khác nhau tùy theo tình huống : a unbalanced classification
Là sự phân bổ dữ liệu trong các lớp đã được cân bằng nhưng sau đó không còn cân bằng nữa b imbalanced classification
Là sự phân bổ dữ liệu trong các lớp đã không có sự cân bằng ngay từ đầu
Nguyên nhân của hiện tượng bât đối xứng dữ liệu thường do quá trình thu thập dữ liệu (phạm vi, quy mô thực hiện khiến cho dữ liệu không đại diện được cho tổng thể) hoặc do sai sót khi xử lý dữ liệu (quy trình, máy móc … làm sai lệch dữ liệu ).
Tóm tắt chương 2
Phương pháp phân loại, bài toán phân loại cùng các thuât toán phân loại là lý thuyết đã được xây dựng, phát triển và ứng dụng trong các lĩnh vực cuộc sống cho đến tận ngày nay Sự phát triển của công cụ máy tính và các ngôn ngữ lập trình tạo ra môi trường hoạt động đa dạng, mạnh mẽ và thuận lợi cho các phương pháp, thuật toán phân loại ứng dụng mạnh mẽ hơn, hữu ích hơn trong các bài toán thực tế đầy thách thức hiện nay
Cây quyết định vẫn là một thuật toán hữu ích và đang được sử dụng rộng rãi, lý thuyết về thuật toán phân loại của cây quyết định vẫn đang được nghiên cứu, cải tiến và phát triển
Tuy nhiên bên cạnh sự hỗ trợ mạnh mẽ của công nghệ, công cụ máy tính thì những khó khăn, thách thức được xác định vẫn tồn tại như sự bất đối xứng dữ liệu Các thách thức này vẫn cần phải được xem xét, đánh giá đầy đủ trước khi thực hiện các bài toán về phân loại.
CÂY QUYẾT ĐỊNH
Cây quyết định
Trong lý thuyết quyết đinh, ví dụ như Quản lý rủi ro, Cây quyết định là một đồ thị của các quyết định cùng với kết quả có thể xảy ra từ những quyết định đó (bao gồm cả rủi ro và hao tổn tài nguyên) Cây quyết định được sử dụng để xây dựng một kế hoạch nhằm đạt được mục tiêu mong muốn, vì thế Cây quyết định thường được sử dụng để hỗ trợ quá trình ra quyết định và nó cũng là một dạng đặc biệt của cấu trúc cây Khi phân tích quyết định, Cây quyết định sẽ trực quan hóa và hiển thị rõ ràng các quyết định và việc ra quyết định, nó mô tả dữ liệu giúp ra quyết định Cây quyết định là một cây phân cấp có cấu trúc được dùng để phân lớp các đối tượng dựa vào các tập luật (series of rules), nó học từ dữ liệu rồi đưa ra các luật quyết định theo dạng câu lệnh IF-THEN-ELSE [12]
Cây quyết định sử dụng phương pháp từ trên xuống (Top-Down approach) với dữ liệu, nghĩa là cây quyết định sẽ cố gắng phân nhóm và gán nhãn cho các dữ liệu giống nhau, sau đó tìm ra các tập luật tốt nhất để chia các nhóm dữ liệu không giống nhau thành những nhóm dữ liệu riêng biệt, việc chia nhóm dữ liệu này sẽ tiếp tục đến khi đạt được mức độ tương tự nhất có thể
Các thuộc tính của đối tượng (ngoại trừ thuộc tính phân lớp – class attributes) có thể thuộc các kiểu dữ liệu khác nhau như binary, nominal, ordinal, quantitative values Thuộc tính phân lớp phải có kiểu dữ liệu là binary, ordinal và không giới hạn số lượng giá trị
Hình 3.1 : Minh họa mô hình Cây quyết định Nguồn : Mục Tài liệu tham khảo [13]
Giải thích các thuật ngữ :
Node : Nút Đối tượng trong mỗi cây, chứa các tập dữ liệu con
Là nút cao nhất, chỉ chứa các nút con, không có nút cha Nút bắt đầu của Cây quyết định
Kết nối với 02 (hoặc nhiều) nút con ở tầng thấp hơn liền kề
Cũng đóng vai trò là nút con của nút cha (nếu có) ở tầng cao hơn liền kề
Hiển thị kết quả chia dữ liệu
Cũng đóng vai trò là nút cha của các nút con (nếu có) ở tầng thấp hơn liền kề
Leaf node/Leaf : Nút lá (hoặc Lá)
Nút cuối cùng của cây ở nhánh tương ứng
Hiển thị kết quả cuối cùng của Cây quyết định tại nhánh tương ứng
Internal nodes/Nodes : Nút nội bộ (hoặc gọi tắt là nút)
Là tất cả những nút nằm giữa nút gốc và các nút lá Hiển thị kết quả tính toán chia nhánh
Decision node : Nút quyết định
Là nút được tiếp tục chia thành 02 (hoặc nhiều) nút con
Sub-tree/Branch : Cây con/Nhánh cây
Là một phần gồm nhiều nút của Cây quyết định
3.1.2 Cơ chế hoạt động của Cây quyết định
Cơ chế hoạt động của Cây quyết đinh có thể được tóm tắt như sau : Đầu tiên là việc xác định nút gốc, nghĩa là chọn một đặc trưng có Information Gain lớn nhất và tiếp tục xác định các đặc trưng khác với Information Gain của các đặc trưng đó Dựa vào Information Gain của các đặc trưng để xác định chia nhánh trong cây và chia nhỏ tập dữ liệu thành các tập dữ liệu con tương ứng với các đặc trưng Xây dựng cây quyết định bằng việc lặp lại quy trình trên cho đến khi đạt được các yêu cầu tất cả các mẫu dữ liệu thuộc cùng một giá trị thuộc tính và không còn dữ liệu để chia
Hình 3.2 : Cơ chế hoạt động của Cây quyết định
3.1.3 Các loại Cây quyết định
3.1.3.1 Cây phân loại (Classfication Decision Tree) Được sử dụng khi biến phụ thuộc có giá trị dạng phân loại hoặc định tính Giá trị phân loại nghĩa là tại mỗi giai đoạn trong quá trình quyết định thì giá trị của kết quả sẽ chỉ thuộc về một trong nhiều loại (hoặc lớp) đã gán trước và không có giá trị nào nằm giữa các loại (hoặc lớp) đã được định nghĩa ban đầu Giá trị thu được tại các nút lá trong train dataset là giá trị trung vị (mode) tương ứng với giá trị của quan sát rơi vào phạm vi đó Giá trị của biến quyết định có phân loại hoặc rời rạc Kết quả của Cây phân loại là giá trị phân loại, ví dụ như Có/Không, Nam/Nữ, Thắng/Thua …
Hình 3.3 : Ví dụ minh họa của Cây quyết định Phân loại Bắt đầu tại nút gốc với tất cả train dataset
Tất cả các mẫu có cùng lớp hay không ?
Có xuất hiện biến dự báo nào để chia nhỏ dữ liệu ?
Có Phân hoạch nút thành các nút con theo biến dự báo
Có thể chia thành nhiều nút con nữa hay không ?
Có Chuyển tới nút tiếp theo
3.1.3.2 Cây hồi quy (Regression Decision Tree) Được sử dụng khi các biến phụ thuộc có giá trị liên tục hoặc định lượng Giá trị thu được tại các nút lá trong train dataset là giá trị trung bình (mean) tương ứng với các quan sát thuộc phạm vi đó Như vậy, nếu dữ liệu mới rơi vào khoảng phạm vi đó, thì dự đoán của thuật toán sẽ phụ thuộc vào giá trị trung bình (mean) đã có Nói cách khác, trong trường hợp biến phụ thuộc của train dataset là giá trị liên tục thì nó sẽ chỉ nhận các giá trị rời rạc trong test dataset Kết quả của Cây hồi quy là các giá trị Tiếp tục với tập dữ liệu trong ví dụ của Cây phân loại, nhưng với yêu cầu thực hiện bài toán là dự đoán tuổi của một người Với giá trị của kết quả là một giá trị định lượng thì mô hình Cây quyết định Hồi quy có kết quả như sau :
Hình 3.4 : Ví dụ minh họa của Cây quyết định Hồi quy
3.1.4 Ưu điểm và Nhược điểm
3.1.4.1 Ưu điểm a Dễ đọc và dễ hiểu b Công việc chuẩn bị đơn giản c Tính trực quan sinh động d Năng lực hỗ trợ mạnh mẽ các trường hợp như missing values, dữ liệu số và dữ liệu phân loại, Big data, các bài toán với kết quả nhiều đầu ra
5 Đánh giá kết quả hoạt động bằng các phương pháp kiểm tra thống kê nhằm tăng độ tin cậy của mô hình
3.1.4.2 Nhược điểm a Tính không ổn định, phụ thuộc rất lớn vào tập dữ liệu, chỉ một thay đổi nhỏ trong tập dữ liệu có thể khiến cho kết quả của mô hình thay đổi rất lớn trong cấu trúc b Ít hiệu quả khi dự đoán với kết quả của biến có giá trị liên tục
Các thuật toán cây quyết định
ID3 (Iterative Dichtomiser 3) do Ross Quinlan công bố năm 1986, thuật toán xây dựng cây tự do đa nhánh, tìm ra tại mỗi nút đặc trưng có giá trị phân loại có độ lợi thông tin lớn nhất đối với biến mục tiêu có giá trị phân loại Cây được phát triển tối đa và sau đó thực hiện công đoạn cắt tỉa thường được áp dụng để cải thiện khả năng tổng quát hóa kết quả thu được của cây đối với tập dữ liệu mới ID3 là một thuật toán Cây quyết định được sử dụng chủ yếu để xây dựng Cây phân loại, nó không hiệu quả khi xây dựng Cây hồi quy với tập dữ liệu thô dù đã có một số kỹ thuật sử dụng các khoảng phạm vi giá trị số để cải thiện kết quả hoạt động của Cây hồi quy
ID3 sử dụng hệ số Entropy và Information Gain để xây dựng Cây quyết định, là sử dụng lượng thông tin tương ứng với các biến phân loại sau đó dùng phương pháp tham lam bằng cách lựa chọn tối ưu cục bộ ở mỗi bước đi với hi vọng tìm được tối ưu toàn cục, ví dụ như thuật toán tìm đường đi ngắn nhất của Dijkstra
Là phiên bản cải tiến của thuật toán ID3 để xây dựng những mô hình có tính tổng quát hơn với dữ liệu liên tục và có thể xử lý các missing values Cây quyết định của thuật toán C4.5 có thể dùng để phân loại, vì thế C4.5 thường được xem như là phân loại thống kê Ngoài ra, C4.5 có thể xử lý dữ liệu liên tục và phân loại vì thế rất phù hợp để xây dựng cây phân loại và cây hồi quy
C4.5 sử dụng hệ số Gain Ratio trong quá trình phân chia (phân nhánh), hệ số Gain Ratio là một cải tiến của khái niệm Information Gain nhằm giảm sự lệch, thiên vị trên Cây quyết định với số lượng nhánh (cây con) lớn bằng cách đánh giá số lượng và kích thước các nhánh khi lựa chọn thuộc tính Vì Information Gain thể hiện sự ưu ái không công bằng với các thuộc tính có nhiều kết quả đầu ra, Gain Ratio thay đổi xu hướng này bằng cách xem xét thông tin nội tại ở mỗi lần chia (nó cơ bản chuẩn hóa hệ số Information Gain bằng giá trị thông tin để chia) Như vậy, thuộc tính có giá trị Gain Ratio lớn nhất sẽ được chọn làm thuộc tính chia (phân nhánh) trong cây
Hệ số Gain Ratio được tính như sau [11] :
Tác giả Quinlan tiếp tục cải tiến C4.5 và đặt tên thuật toán mới là C5.0 hoăc See5 (bản C5.0 dành cho hệ điều hành Unix/Linux, bản See5 dành cho hệ điều hành Windows)
C5.0 cũng dễ sử dụng hơn so với C4.5, các tùy chọn được đơn giản hóa và được mở rộng thêm ví dụ như hỗ trợ việc lấy mẫu (sampling) và xác thực chéo (cross- validation), C4.5 thường gộp hai tác vụ xây dựng Cây quyết định và xây dựng các tập luật trong một chương trình
3.2.4 Thuật toán CART (Classification And Regression Trees)
Thuật toán CART được Leo Breiman phát triển năm 1984 dùng thuật toán Cây quyết định để xây dựng cây phân loại nhị phân hoặc cây hồi quy nhị phân, tùy thuộc vào biến phụ thuộc hoặc biến mục tiêu là giá trị số hoặc giá trị phân loại tương ứng CART xử lý dữ liệu ở dạng thô (có thể không cần tiền xử lý dữ liệu) và có thể sử dụng nhiều biến trong nhiều lần trong những phần khác nhau của cùng một Cây quyết định, nhằm khám phá sự phụ thuộc lẫn nhau phức tạp giữa các nhóm biến
Cơ chế hoạt động của thuật toán CART là tạo ra một loạt các Cây quyết định, mỗi cây trong số đó đều có thể là ứng viên của cây tối ưu Cây tối ưu sẽ được xác định bằng việc tính toán kết quả thực hiện công việc xây dựng mỗi cây với tập dữ liệu kiểm tra (sử dụng tập dữ liệu mới mà chưa từng đưa vào Cây quyết định trước đây) hoặc thực hiện xác thực chéo (cross-validation) là việc chia tập dữ liệu thành k tập dữ liệu con rồi thực hiện kiểm tra trên mỗi tập dữ liệu con đó Cơ chế hoạt động của CART còn bao gồm việc tự động hóa cân bằng dữ liệu của lớp (tùy chọn), tự động xử lý giá trị bị thiếu sót và cho phép đánh giá nhạy cảm về chi phí thực hiện, chủ động xây dựng đặc trưng và ước lượng xác suất của cây Các tác vụ báo cáo cuối cùng cũng có tác vụ xếp hạng tầm quan trọng của thuộc tính [6]
CART không sử dụng phép đo lường kết quả nội bộ trong khi xây dựng Cây mà kết quả của tác vụ xây dựng cây luôn luôn được đo lường thông qua các tập dữ liệu kiểm tra hoặc bằng chức năng xác thực chéo, việc chọn ra cây tối ưu chỉ được thực hiện sau khi việc đánh giá, đo lường đã thực hiện xong Nếu không có tập dữ liệu kiểm tra hoặc không thực hiện việc xác thực chéo, CART sẽ vẫn duy trì nguyên trạng tập hợp các cây đã xây dựng với cây được lựa chọn là tối ưu Điều này ngược lại với C4.5 là xây dựng các mô hình ưu tiên dựa trên cơ sở các phép đo lường của tập dữ liệu học tập [5]
Trong trường hợp Cây phân loại, CART sử dụng hệ số Gini Impurity để tạo ra những điểm quyết định cho các tác vụ phân loại Gini Impurity sử dụng ý tưởng một điểm chia lý tưởng (đo độ tinh khiết của một nút) như thế nào, làm cách nào để gộp chung các lớp từ 02 nhóm do việc chia tạo ra Khi tất cả các quan sát thuộc cùng một nhãn thì được gọi là phân loại hoàn hảo và giá trị của hệ số Gini Impurity là 0 (Giá trị nhỏ nhất) Nhưng ngược lại, khi tất cả các quan sát được phân bổ đều nhau cho các nhãn khác nhau thì xuất hiện kết quả chia tồi tệ nhất và giá trị của hệ số Gini Impurity là 1 (Giá trị lớn nhất)
Ta minh họa hai tình huống trên bằng hai hình sau đây :
Hình 3.5 : Hệ số Gini Impurity cao khiến cho kết quả chia kém
Hình 3.6 : Hệ số Gini Impurity thấp khiến cho kết quả chia gần như hoàn hảo
Nguồn : Mục tài liệu tham khảo [16]
Trong trường hợp Cây hồi quy, CART tìm kiếm những điểm chia mà tối thiểu hóa hệ số Độ lệch bình phương tối thiểu (Least Square Deviation - LSD), lựa chọn các phân hoạch nhằm tối thiểu hóa kết quả bằng tất cả tùy chọn khả thi Phép đo LSD (đôi khi được gọi là Giảm độ lệch (Variance reduction)) tối thiểu hóa tổng bình phương các khoảng cách (hoặc độ lệch) giữa các giá trị quan sát được và giá trị được dự đoán
Sự khác biệt giữa các giá trị quan sát được và giá trị được dự đoán được gọi là số dư (residual), nghĩa là LSD chọn ước lượng tham số để tổng bình phương số dư là tối thiểu LSD rất thích hợp với các dữ liệu đo lường và có khả năng thu thập được nhiều thông tin hơn về chất lượng của tác vụ chia hơn các thuật toán khác [5]
Công thức để tính hệ số Gini Impurity như sau :
Gini(D) = 1 − p pi : Xác suất mà một quan sát trong tập dữ liệu D thuộc về lớp Ci pi = | , |
Hệ số Gini Impurity được xem là tiêu chí chia nhị phân đối với mỗi thuộc tính, ta có thể tính tổng trọng số mức độ không thuần khiếu của mỗi phân hoạch Nếu tại điểm chia nhị phân của thuộc tính A phân hoạch tập dữ liệu D thành hai tập dữ liệu con D1 và D2, thì giá trị của hệ số Gini impurity của D sẽ là [15] :
Mỗi thuộc tính của tập dữ liệu đều cần phải xem xét khả năng phân chia nhị phân của mỗi thuộc tính đó Đối với thuộc tính có giá trị rời rạc, tập dữ liệu con mà có thể thu được giá trị hệ số Gini Impurity thấp nhất từ thuộc tính đó thì sẽ được chọn là thuộc tính để chia (phân nhánh) Đối với thuộc tính có giá trị liên tục, chiến lược thực hiện là lựa chọn mỗi cặp giá trị gần nhau làm điểm chia và điểm có giá trị hệ số Gini Impurity nhỏ hơn sẽ được lựa chọn làm điểm chia (phân nhánh)
Trong thực tế, phần lớn những khi hệ số Gini Impurity được sử dụng đều cho kết quả phân chia tốt và chi phí tính toán vừa phải Đối với hiện tượng rất thường xảy ra khi ứng dụng Cây quyết định là Overfitting, C4.5 và CART có những giải pháp xử lý khác nhau :
C4.5 sử dụng quy trình cắt tỉa một lần duy nhất (single-pass pruning process) để ngăn ngừa hiện tượng Overfitting xảy ra
Overfitting và Underfitting
Tổng quát hóa là việc làm thế nào để mô hình Máy học có thể học tập tốt các khái niệm để ứng dụng cho những bài toán cụ thể với những tập dữ liệu mới mà mô hình chưa được học, chưa được đưa vào mô hình trước đây Mục tiêu của mô hình Máy học tốt là khả năng tổng quát hóa tốt từ tập dữ liệu học tập cho tới bất kỳ tập dữ liệu nào của bài toán đang ứng dụng Điều này cho phép người dùng thực hiện dự đoán đối với tập dữ liệu mới trong tương lai mà mô hình chưa bao giờ sử dụng
Có hai thuật ngữ được sử dụng khi nói về lĩnh vực Máy học là làm sao để mô hình có thể học tập tốt và tổng quát hóa dữ liệu tốt là tên của hai hiện tượng Overfitting và Underfitting Đây là hai khó khăn lớn nhất khiến cho kết quả của các thuật toán Máy học có độ chính xác thấp Khi số lượng điểm chia trong Cây quyết định tăng lên, sự phức tạp của Cây quyết định của tăng lên Nói chung, khi Cây quyết định càng đơn giản thì sẽ được đánh giá cao hơn nhưng khi nó trở lên phức tạp vì lúc đó Cây quyết định sẽ càng dễ hiểu và dường như không bị rơi vào tình trạng overfitting
Hình 3.7 : Minh họa hiện tượng overfitting và underfitting
Mô hình có hiện tượng Underfitting có độ thiên vị cao (bias) và phương sai thấp (variance) Với bất cứ mẫu cụ thể nào được sử dụng làm tập dữ liệu học tập, mô hình cũng không thể học tập được Vì thế mô hình Máy học có hiện tượng Underfitting không được coi là mô hình thích hợp
Hiện tượng Underfitting thường không được thảo luận nhiều vì nó dễ dàng phát hiện ra bằng các phương pháp đo lường Biện pháp khắc phục là sử dụng các thuật toán Máy học khác hoặc bổ sung thêm tập dữ liệu đầu vào Underfitting chủ yếu xảy ra khi sử dụng các thuật toán đơn giản như hồi quy tuyến tính
Trong suốt giai đoạn huấn luyện, Cây quyết định sẽ phát triển liên tục cho tới khi mỗi không gian nút chứa duy nhất một nút học tập, nghĩa là kết quả học tâp của mô hình đạt độ chính xác 100% và cây phân loại đã thực hiện việc chia tập dữ liệu học tập cho tới khi mỗi nút lá chỉ chứa duy nhất một quan sát, đây chính là hiện tượng Overfitting
Hiện tượng Overfitting xảy ra khi mô hình học quá chi tiết các dữ liệu của tập dữ liệu học tập, bao gồm cả những dữ liệu bị nhiễu tới mức độ ảnh hưởng tiêu cực tới kết quả của mô hình đối với test dataset hoặc với tập dữ liệu mới Mô hình có hiện tượng Overfitting sẽ có độ thiên vị thấp (gần bằng hoặc bằng 0) và phương sai cao
Hình 3.8 : Minh họa hiện tượng overfitting
Từ hình minh họa ở trên có thể thấy rằng khi xảy ra hiện tượng Overfitting, Cây quyết định sẽ trở nên rất nhạy cảm với bất kỳ thay đổi nhỏ nào trong tập dữ liệu học tập và khiến cho các lớp được dự đoán sẽ thay đổi đáng kể, nghĩa là phương sai của mô hình sẽ rất cao
Overfitting giống với các mô hình phi tham số hoặc mô hình phi tuyến có độ linh hoạt cao khi học tập hàm mục tiêu Như vậy, nhiều thuật toán Máy học phi tham số cũng sử dụng các tham số và kỹ thuật để hạn chế hoặc giới hạn mức độ chi tiết trong quá trình học tập của mô hình Ví dụ, Cây quyết định là một thuật toán Máy học phi tham số nên rất linh hoạt và dễ dàng gặp hiện tượng overfitting trong tập dữ liệu học tập Hiện tượng này có thể xử lý bằng việc cắt tỉa cây sau khi giai đoạn học tập hoàn tất để xóa bỏ các dữ liệu chi tiết đã được thêm vào trước đó Để đối phó với hiện tượng Overfitting, ta cần định nghĩa điều kiện dừng Độ cao của cây thấp không thể nắm bắt được ranh giới phi tuyến phân chia các lớp Bằng việc giảm độ cao của cây sẽ làm tăng độ thiên vị (lỗi phân loại sai trong giai đoạn học tập) nhưng cũng sẽ làm giảm phương sai Việc đánh đổi giữa độ thiên vị và phương sai nhằm tìm kiếm điểm hòa hợp giữa độ thiên vị và phương sai, phương pháp xác thực chéo (cross-validation) là một phương án khả thi
Chiều cao thích hợp của cây có thể được xác định khi đánh giá kết quả của cây với tập dữ liệu kiểm tra được xây dựng bằng phương pháp cross-validation Bằng việc liên tục lấy mẫu từ tập dữ liệu học tập nhiều lần và chia thành nhiều tập dữ liệu học tập và xác thực khác nhau, những cây phù hợp nhất với kích thước khác nhau trong tập dữ liệu học tập và tìm kiếm độ chính xác khi phân loại đối với các tập dữ liệu xác thực để tìm ra độ cao tốt nhất của cây, đây chính là điểm dung hòa khi đánh đổi giữa độ thiên vị và phương sai Những cây như vậy không đạt độ hoàn hảo khi dự đoán đối với tập dữ liệu học tập (có độ thiên vị chấp nhận được) nhưng nếu thay đổi tập dữ liệu học tập một chút (phương sai chấp nhận được) thì sẽ thu được kết quả tương đương hoặc xấp xỉ tương đương nhau
Hình 3.9 : Mô tả phương pháp cross-validation
Phương pháp Re-sampling thường dùng k-fold cross validation với k là các tập dữ liệu con được chia trong giai đoạn học tập Phương pháp cross validation được coi là tiêu chuẩn vàng được áp dụng trong lĩnh vực Máy học khi đánh giá độ chính xác của mô hình với tập dữ liệu mới
Ngoài ra còn có phương pháp Tập dữ liệu xác thực (Validation dataset), là tập dữ liệu con của tập dữ liệu học tập được tách ra để sử dụng cho tới bước cuối của quy trình thực hiện bài toán Sau khi lựa chọn mô hình và tinh chỉnh các thông số cho tập dữ liệu học tập tới phần đánh giá kết quả thu được với tập dữ liệu xác thực để kiểm tra tính hiệu quả của mô hình.
Cắt tỉa cây
Cắt tỉa cây là một trong những kỹ thuật để giải quyết hiện tượng Overfitting Theo nghĩa đen, cắt tỉa trong thực tế là việc lựa chọn một phần của cây hoặc một phần của nhánh cây ví dụ như nhánh cây, nụ hoa, gốc để cải thiện cấu trúc cây và kích thích cây phát triển mạnh khỏe Mục đích này cũng tương tự như trong việc cắt tỉa đối với Cây quyết định, nó khiến cho cây có thể thích nghi tốt khi ta thêm vào nhiều tập dữ liệu mới, như vậy vấn đề Overfitting đã được giải quyết
Hình 3.10 : Mô tả tác vụ cắt tỉa Cây quyết định
Cắt tỉa cây cũng sử dụng kỹ thuật Quy tắc hóa (Regularization) để tránh hiện tượng Overfitting cho Cây quyết định Khi cắt tỉa, Cây quyết định sẽ được xây dựng tới khi mọi quan sát trong tập dữ liệu học tập đều được phân lớp đúng Sau đó, các nút lá có chung một nút cha (nút quyết đinh) sẽ được cắt tỉa và nút cha đó sẽ trở thành nút lá với lớp tương ứng là lớp có số lượng quan sát chiếm đa số trong tổng số lượng các quan sát được phân bổ vào nút đó Việc cắt tỉa cây có mục tiêu chung là giảm độ phức tạp và tăng độ chính xác của mô hình bằng cách giảm thiểu tác động của hiện tượng overfitting và xóa các không gian của Cây quyết định được xây dựng từ các dữ liệu nhiễu hoặc dữ liệu sai sót Các phương pháp được chia thành hai nhóm sau :
3.4.1.1 Số lượng mẫu tối thiểu mỗi nút lá/Số lượng mẫu tối thiểu mỗi điểm chia
Cả hai giá trị trên đều có thể ngăn ngừa hiện tượng overfitting, trong đó :
Số lượng mẫu tối thiểu của mỗi nút lá là số lượng quan sát tối thiểu mà thuật toán chấp nhận để phân bổ số lượng quan sát đó vào trong những nút lá của cây Nếu không quy định số lượng mẫu tối thiểu của mỗi nút lá thì thuật toán sẽ tiếp tục chia thành những tập dữ liệu nhỏ hơn nữa cho tới khi mỗi tập dữ liệu chỉ còn một quan sát
Số lượng mẫu tối thiểu mỗi điểm chia là số lượng các quan sát tối thiểu cần phân chia thành các nhóm nhỏ trước khi thuật toán quyết định chia nữa hay không
Cả hai giá trị trên có vẻ đạt tới sự đồng nhất với giá trị của hệ số Entropy thấp nhưng mang lại rủi ro là hiện tượng overfitting xuất hiện
Tương tự như hai giá trị ở trên, việc kiểm soát độ cao của cây trong giai đoạn cây được xây dựng ban đầu cũng có thể giúp khắc phục hiện tượng overfitting Việc quyết định độ cao của cây tùy thuộc vào đặc tính của dữ liệu, số lượng đặc trưng, độ lớn của tập dữ liệu
Thư viện scikit-learn cung cấp thuật toán Cost-Complexity Pruning (Weakest link pruning, Error complexity pruning) để tối ưu cây, phương pháp này sử dụng tham số alpha ( > 0) để định nghĩa sự phức tạp (complexity) Sự phức tạp là chi phí về thời gian hoạt động khi xây dựng cây nhị phân cân bằng và thời gian truy vấn Dù thuật toán luôn cố gắng xây dựng cây cân bằng, nhưng cuối cùng cây vẫn không cân bằng Nếu một cây con có thể xấp xỉ cân bằng thì chi phí tại mỗi nút bao gồm việc tìm kiếm qua nó để tìm đặc trưng thường làm làm giảm đáng kể giá trị của hệ số Entropy Tổng chi phí tại mỗi nút như vậy thu được tổng chi phí của toàn cây Tham số phức tạp được sử dụng để định nghĩa độ đo chi phí phức tạp, R(T) của một cây cho trước là T :
R(T) = R(T) + |T| trong đó |T| : Số lượng nút lá của cây T
R(T) : Tổng tỷ lệ lỗi phân loại sai tại các nút lá
Thuật toán sẽ bắt đầu từ dưới cây đi lên Trong mỗi nút nội bộ N, thuật toán sẽ tính toán độ phức tạp chi phí của cây con tại nút N nếu nó có thể bị cắt tỉa (nghĩa là cây con đó sẽ được thay thế bằng một nút lá) Hai giá trị được so sánh, nếu cắt tỉa cây con tại nút N mà giúp độ phức tạp về chi phí nhỏ hơn thì cây con này sẽ bị cắt tỉa, nếu không thì cây con vẫn được giữ lại.
Tóm tắt chương 3
Cây quyết định là phương pháp dự đoán mạnh mẽ và rất phổ biến do tính chất dễ hiểu, dễ giải thích của nó Kết quả cuối cùng của Cây quyết định có thể giải thích chính xác cho lý do thực hiện quyết định cuối cùng, giúp nó dễ dàng ứng dụng hơn trong các bài toán thực tế Cây Quyết định cũng cung cấp nền tảng cho nhiều phương pháp tổng hợp các thuật toán tiên tiến như bagging, rừng ngẫu nhiên (random forests) và gradient boosting
Có rất nhiều thuật toán phân loại như ID3, C4.5, C5.0, CART… việc chọn thuật toán nào phụ thuộc vào rất nhiều yếu tố, trong đó cấu trúc dữ liệu ảnh hưởng rất lớn đến kết quả của các thuật toán ID3 và CART cho hiệu quả phân lớp rất cao đối với
XÂY DỰNG PHƯƠNG PHÁP NGHIÊN CỨU VÀ HIỆN TRẠNG TẠI KHOA CNTT
Quy trình nghiên cứu
Dựa trên cơ sở lý thuyết và đặc trưng của bài toán đang thực hiện trong luận văn này, tác giả đề xuất quy trình nghiên cứu để triển khai bài toán như sau :
Hình 4.1 : Quy trình nghiên cứu Quy trình nghiên cứu được triển khai thông qua các giai đoạn sau : a Tiền xử lý dữ liệu
Là quá trình chuyển đổi dữ liệu phù hợp với mô hình bài toán Dữ liệu thô thường có nhiều dạng và hình thức hiển thị khác nhau nên cần phải chuyển đổi theo định dạng phù hợp để đạt được kết quả hoạt động tối ưu cho thuật toán học của mô hình Đây là các giai đoạn quan trọng nhất trong bất kỳ ứng dụng máy học nào b Phân chia tập dữ liệu Đây là giai đoạn cần thiết trong bất kỳ mô hình Máy học nào và cũng ảnh hưởng đến kết quả thực hiện của mô hình c Xây dựng mô hình Cây quyết định
Là quá trình huấn luyện mô hình học tập và đổ dữ liệu vào mô hình để mô hình học tập và thực hiện dự đoán d Đánh giá mô hình
Sử dụng các phép đo lường để đánh giá kết quả thực hiện của mô hình, thư viện scikit-learn cung cấp các hàm đo lường hỗ trợ rất tốt để đánh giá mô hình e Tối ưu cây quyết định
Sử dụng các phương pháp cắt tỉa Cây quyết định để tổng quát hóa mô hình.
Tổng quan khoa Công nghệ thông tin
Khoa CNTT trường đại học Tài chính – Marketing tiền thân là khoa Tin học quản lý Năm 2019, khoa Tin học quản lý được đổi tên thành khoa Công nghệ thông tin theo quyết định số 1613/QĐ-ĐHTCM ngày 13/10/2010 của Hiệu trưởng nhà trường Từ giai đoạn này, hoạt động của khoa dần đi vào ổn định và chủ động được công tác đào tạo cùng nhà trường thực hiện mục tiêu đa dạng hóa các lĩnh vực và cấp độ đào tạo
Là một trong những khoa có bề dày lịch sử gắn liền với quá trình hình thành và phát triển của trường đại học Tài chính - Marketing Khoa chính thức đào tạo ngành CNTT từ năm 1992 với nhiệm vụ đào tạo CNTT trong môi trường chuyên đào tạo về kinh tế, mục tiêu của khoa là đào tạo chuyên sâu về ngành Hệ thống thông tin quản lý với 02 chuyên ngành đào tạo là Tin học quản lý và Hệ thống thông tin kế toán để cung cấp nguồn nhân lực ứng dụng CNTT vào lĩnh vực quản trị doanh nghiệp, phục vụ mục tiêu tin học hóa trên mọi mặt kinh tế, xã hội theo chủ trương chung của Đảng và Chính phủ Để nâng cao chất lượng đào tạo của Khoa và cũng để cung cấp nguồn nhân lực đáp ứng nhu cầu của doanh nghiệp, xã hội, Khoa đã tích cực và chủ động ký kết, liên kết và gắn bó chặt chẽ với các doanh nghiệp, các doanh nghiệp cũng tham gia giảng dạy, tập huấn và tạo điều kiện cho sinh viên của Khoa tham quan, tìm hiểu, thực tập, tham dự các dự án và đặt vấn đề cung cấp nguồn nhân lực với Khoa Các doanh nghiệp đã ký kết hợp đồng liên kết đồng giảng dạy có thể kể đến như công ty TNHH Giải pháp phần mềm Tường Minh (TMA), công ty CP MISA, công ty CP phần mềm quản lý doanh nghiệp FAST, công ty CP Fujinet Systems, công ty TNHH Tin học và Phần mềm Sài Gòn Tâm Điểm (Saigon Point)
Khoa CNTT hiện nay đào tạo 02 chuyên ngành Tin học quản lý và Hệ thống thông tin kế toán Cả 02 chuyên ngành đào tạo này đều hướng tới việc cung cấp nguồn nhân lực trong lĩnh vực quản trị - quản lý với mục tiêu cung cấp kiến thức cả về chuyên môn nghiệp vụ và kiến thức tin học nhằm cung cấp sinh viên có khả năng nắm bắt và tin học hóa các quy trình nghiệp vụ tại nơi làm việc Chương trình đào tạo đẩy mạnh tính ứng dụng của kiến thức được giảng dạy vào các lĩnh vực chuyên môn cụ thể Khoa cũng định kỳ tổ chức các cuộc hội thảo chuyên đề có sự tham gia của các chuyên gia từ doanh nghiệp để cung cấp thêm những định hướng và xu hướng phát triển của công nghệ nhằm giúp sinh viên nhận diện và học chuyên sâu thêm các kiến thức chuyên ngành phù hợp với khả năng của mình, quan trọng nhất là giúp sinh viên tự trang bị thêm những kiến thức cần thiết sau khi tốt nghiệp để đáp ứng yêu cầu của xã hội Hiện nay khoa đã và đang triển khai chương trình đào tạo đặc thù để gắn chặt chương trình đào tạo với yêu cầu của doanh nghiệp, tạo điều kiện cho sinh viên trở thành nguồn lực cung cấp cho doanh nghiệp và cho xã hội, từng bước nâng tầm của Khoa CNTT Mỗi lớp đều có 01 giảng viên của khoa làm Cố vấn học tập nhằm giám sát, đánh giá và hỗ trợ sinh viên trong suốt quá trình học tập tại trường
Mặc dù được sự quan tâm, tạo điều kiện tối đa của Ban Giám hiệu nhà trường, của lãnh đạo khoa CNTT và sự tận tâm của lực lượng giảng viên trong Khoa nhưng tình hình chung về học tập của sinh viên Khoa chưa thực sự đạt được kỳ vọng
Số liệu đào tạo 05 khóa gần nhất của sinh viên khoa CNTT được thể hiện trong bảng sau :
TT Tuyển sinh Tốt nghiệp Tỷ lệ tốt nghiệp
Việc làm Năm Số lượng Năm Số lượng Có Tỷ lệ Chưa có Tỷ lệ
Bảng 6 : Số liệu đào tạo 05 khóa gần nhất của sinh viên Khoa CNTT
(Nguồn : Phòng Đào tạo – trường đại học Tài chính - Marketing)
Lưu ý : Số liệu tốt nghiệp là sinh viên tốt nghiệp đúng hạn
Tỷ lệ sinh viên tốt nghiệp đúng thời hạn rất thấp và tỷ lệ này ít được cải thiện qua nhiều năm Qua đó cho thấy tỷ lệ này xuất phát từ nhiều nguyên nhân có thể là sinh viên chưa có thái độ học tập đúng đắn, chưa có động cơ học tập tốt, kế hoạch học tập không phù hợp, các môn học khó, trình độ Anh văn không đạt chuẩn đầu ra của ngành đào tạo theo quy định dẫn tới hiện tượng sinh viên bỏ học, tâm lý chán nản, buông xuôi, việc tiếp thu tri thức và rèn luyện chuyên môn chỉ mang tính đối phó nhằm vượt qua môn học từ đó trình độ sinh viên không đáp ứng được yêu cầu của chương trình đào tạo, không tìm được việc làm sau khi tốt nghiệp hoặc nếu có việc làm cũng không gắn liền với kiến thức được đào tạo tại trường
Nếu tình trạng này kéo dài và không được cải thiện triệt để sẽ ảnh hưởng rất nhiều tới Khoa nói riêng, nhà trường nói chung, ảnh hưởng đến khả năng tuyển sinh của ngành Vì thế việc giám sát, đánh giá quá trình học tập của sinh viên nhằm giúp sinh viên cải thiện kết quả học tập là một trong những yêu cầu cấp bách đang được đặt ra đối với lãnh đạo khoa và giảng viên trong khoa Khó khăn nhất trong việc giám sát, đánh giá quá trình học tập của mỗi sinh viên trong khoa đó là số lượng sinh viên hiện nay khá lớn, dữ liệu sinh viên ngày càng tăng khiến cho việc giám sát, đánh giá thủ công hiện tại tồn tại rất nhiều hạn chế Việc xây dựng công cụ tự động hóa công tác giám sát, đánh giá là cần thiết trong tình hình hiện nay tại khoa CNTT.
Tiền xử lý dữ liệu
Tập dữ liệu của bài toán là file chứa điểm kết thúc học phần của sinh viên, bao gồm toàn bộ điểm thi kết thúc học phần của tất cả các ngành mà sinh viên đang theo học tại trường đại học Tài chính – Marketing trong phạm vi từ khóa 2011 - khóa 2015 Điểm thi kết thúc học phần của sinh viên được lưu trữ theo dòng trong bảng tính Excel, mỗi dòng tương ứng với duy nhất một môn học, một mã lớp học phần sinh viên đăng ký học trong học kỳ
Tập dữ liệu được trích xuất từ hệ thống quản lý sinh viên và được lưu trữ với định dạng Excel, phiên bản 2019, bao gồm 02 sheet với các thông tin sau : a Dòng dữ liệu
Tổng = 696.633 dòng b Cột dữ liệu
Thông tin cột : Mã số sinh viên, Họ và tên, Ngày sinh, Nơi sinh, Lớp,
Năm học, Học kỳ, Mã học phần, Mã lớp học phần, Tên học phần, Số TC (Số tín chỉ của môn học/học phần), Điểm HP10_1, Điểm 10_2, Điểm HP4_1, Điểm HP4_2, Điểm chữ_1, Điểm chữ_2, Đạt trong đó, Điểm HP10_1, Điểm 10_2 : Điểm theo hệ số 10 Điểm HP4_1, Điểm HP4_2 : Điểm theo hệ số 4 (Quy đổi từ điểm hệ số 10) Điểm chữ_1, Điểm chữ_2 : Điểm theo chữ (Quy đổi từ điểm hệ số 4) Đạt : Đánh giá kết quả môn học theo 02 mức độ Đạt (x) và Không đạt
Cột điểm của mô hình bài toán được xác định dựa trên số tín chỉ tích lũy theo từng học kỳ Sự chính xác của cột "Đạt" được kiểm tra dựa vào quy chế đào tạo của Bộ Giáo dục - Đào tạo, đảm bảo rằng các giá trị tại cột "Đạt" phản ánh chính xác tình trạng đạt/không đạt của học viên theo quy định.
Côt “Đạt” là cơ sở để tính số tín chỉ tích lũy theo từng học kỳ của sinh viên
Hình 4.2 : Dữ liệu điểm của sinh viên trong sheet 1
Do phạm vi của bài toán này chỉ giới hạn xem xét sinh viên của khoa Công nghệ thông tin từ khóa 11 – khóa 15 nên thực hiện thu thập như sau :
Hình 4.4 : Sơ đồ thu thập dữ liệu sinh viên ngành CNTT khóa 2011 - 2015 Tập dữ liệu điểm sinh viên khoa CNTT gồm 16.195 dòng và 18 cột
4.3.2 Yêu cầu của bài toán về dữ liệu
Do yêu cầu của bài toán là đánh giá khả năng tốt nghiệp đúng hạn hay không (04 năm = 08 học kỳ và đạt đủ số lượng tín chỉ tích lũy theo quy định của chương trình đào tạo) nên các cột dữ liệu điểm số không cần xét tới mà chỉ cần xét cột Đạt của tập dữ liệu để xác định số lượng tín chỉ sinh viên tích lũy được qua các học kỳ Sau đó ta sẽ xây dựng tập dữ liệu về số lượng tín chỉ tích lũy của mỗi sinh viên theo từng học kỳ và sẽ là tập dữ liệu đưa vào mô hình Cây quyết định
Tiến hành xóa các cột không cần thiết và chuyển đổi kiểu dữ liệu theo đúng định dạng nhằm tránh sai sót không cần thiết khi xử lý dữ liệu :
ID object (Mã số sinh viên)
Name object (Họ tên sinh viên)
Class object (Lớp) yearSchool object (Năm học)
Semester object (Học kỳ) subjectID object (Mã môn học/Học phần) subjectClassID object (Mã lớp môn học/Học phần) subjectName object (Tên môn học)
Credits uint8 (Số tín chỉ của môn học/Học phần)
11DTH_1 11DTH_2 Sheet1 Sheet2 year11
12DTK_1 12DTK_2 Sheet1 Sheet2 year12
13DTK_1 13DTK_2 Sheet1 Sheet2 year13
14DTH_1 14DTH_2 Sheet1 Sheet2 year14
Lưu ý : Cột “Đạt” mang ý nghĩa sinh viên có kết quả đánh giá môn học đạt yêu cầu hay không theo quy chế đào tạo của Bộ Giáo dục – Đào tạo
Nếu đạt yêu cầu thì giá trị của cột “Đạt” sẽ là dấu “x”
Theo quy chế đào tạo :
- Hệ niên chế, điểm đạt >= 05
- Hệ tín chỉ, điểm đạt >= 04 (2.0 của hệ điểm 4, F của hệ điểm chữ) Đánh giá sơ bộ tập dữ liệu : a Dữ liệu dư thừa
Là tình trạng sinh viên đăng ký học nhiều môn ngoài những môn bắt buộc và môn tự chọn theo chương trình đào tạo của ngành quy định
Lý do : Nhà trường tạo điều kiện cho sinh viên tích lũy kiến thức ngoài ngành để phục vụ nhu cầu học tập của sinh viên và tích lũy kiến thức cho công việc sau khi tốt nghiệp
Giải pháp : Xóa những dòng dữ liệu của những môn học ngoài quy định của ngành, của chương trình đào tạo b Dữ liệu trùng lặp
Là tình trạng một sinh viên nhưng có 02 dòng dữ liệu có giá trị trùng nhau ở tất cả các cột, ngoại trừ cột subjectClassID (Mã lớp môn học/Học phần)
Lý do : Theo đánh giá chủ quan của tác giả thì có thể đây là lỗi của nhân viên nhập điểm vào hệ thống
Giải pháp : Xóa dòng dữ liệu bị trùng lặp, chỉ giữ lại dòng dữ liệu đầu tiên c Dữ liệu trùng lặp một phần
Là tình trạng sinh viên đã đạt một hoặc nhiều môn học những vẫn đăng ký lại một hoặc nhiều môn học đó để cải thiện điểm số
Giải pháp : Ta sẽ xem xét khi xem xét trong tập dữ liệu về số lượng tín chỉ tích lũy để đánh giá khả năng tốt nghiệp đúng hạn hay không, vì nếu tổng số tín chỉ tích lũy 4 năm học (08 học kỳ) đạt đủ hoặc nhiều hơn theo quy định của chương trình đào tạo thì không ảnh hưởng d Thời gian học kéo dài
Là tình trạng sinh viên có thời gian học tập kéo dài, thậm chí có nhiều sinh viên có thời gian học tập kéo dài tới 14 học kỳ (07 năm) Đây có lẽ chính là nguyên nhân khiến cho tỷ lệ tốt nghiệp đúng hạn trung bình của sinh viên của khoa CNTT trong
Văn bản về chương trình đào tạo của ngành Công nghệ thông tin theo các khóa
4.3.3 Tập dữ liệu Tín chỉ tích lũy
Trên cơ sở tập dữ liệu điểm số thu thập được và đã giải quyết các lỗi về dữ liệu như kể trên, ta thu được tập dữ liệu về số tín chỉ tích lũy của mỗi sinh viên theo từng học kỳ như sau :
Hình 4.5 : Tập dữ liệu về số tín chỉ tích lũy theo từng học kỳ
Thông tin về tập dữ liệu Tín chỉ : a Tổng số dòng dữ liệu = 325 b Tổng số cột dữ liệu = 17 c Ý nghĩa các cột
ID object (Mã số sinh viên)
Name object (Họ tên sinh viên)
HK01 int64 (Số tín chỉ tích lũy của Học kỳ 01)
HK02 int64 (Số tín chỉ tích lũy của Học kỳ 02)
HK03 int64 (Số tín chỉ tích lũy của Học kỳ 03)
HK04 int64 (Số tín chỉ tích lũy của Học kỳ 04)
HK05 int64 (Số tín chỉ tích lũy của Học kỳ 05)
HK06 int64 (Số tín chỉ tích lũy của Học kỳ 06)
HK07 int64 (Số tín chỉ tích lũy của Học kỳ 07)
HK08 int64 (Số tín chỉ tích lũy của Học kỳ 08) first4semesters int64 (Số tín chỉ tích lũy của 04 học kỳ đầu tiên) total4years int64 (Số tín chỉ tích lũy của 04 năm học) curricular4years int64 (Số tín chỉ tích lũy quy định của chương trình đào tạo trong 04 năm học = 08 học kỳ) qualify4years int64 (Số tín chỉ thừa/thiếu sau 04 năm học) Graduation object (Tốt nghiệp đúng hạn)
Lưu ý : Do ta chỉ xét xem sinh viên có tốt nghiệp đúng hạn hay không nên ta chỉ xét phạm vi 04 năm học (08 học kỳ đầu tiên) mà không cần quan tâm đến những học kỳ khác (từ học kỳ 09 trở đi)
Giải thích ý nghĩa các cột mới : a HK01, HK02, HK03, HK04, HK05, HK06, HK07, HK08
Phân chia tập dữ liệu
Việc huấn luyện mô hình bằng cách đưa tập dữ liệu Tín chỉ vào mô hình, sau đó tiến hành xây dựng Cây quyết định và tối ưu Cây quyết đinh Trong 02 giai đoạn xây dựng Cây quyết định ban đầu và xây dựng Cây quyết định tối ưu đều cần phải thực hiên tác vụ phân chia tập dữ liệu trước khi đưa tập dữ liệu vào mô hình Ở mỗi giai đoạn có thể có chiến lược phân chia tập dữ liệu khác nhau để phù hợp với chiến lược xây dựng Cây quyết định tại mỗi giai đoạn nhằm giúp mô hình đạt được kết quả tốt có độ chính xác cao
Trong giai đoạn xây dựng Cây quyết định ban đầu này, chiến lược phân chia tập dữ liệu được thể hiện như sau :
Hình 4.29 : Minh họa tác vụ phân chia dữ liệu xây dựng cây ban đầu
Tỷ lệ phân chia = 80/20 (80% là train dataset, 20% là test dataset)
Sử dụng hàm train_test_split() trong thư viện scikit-learn phân chia tập dữ liệu và định nghĩa dữ liệu theo các biến xTrain, xTest, yTrai, yTest như trên
Thiết lập các thông số của hàm train_test_split() như sau : train_test_split(*array, test_size, train_size, random_state, shuffle, stratify) trong đó *array : Tập dữ liệu các đặc trưng từ tập dữ liệu Tín chỉ test_size = 20% train_size = 80% random_state = 42 shuffle = True strafify = None Đối với tham số random_state có ý nghĩa phân chia train dataset và kiểm tra một cách ngẫu nhiên có thể có ảnh hưởng tới chất lượng mô hình Giá trị 42 có thể được thay đổi theo mỗi giai đoạn để đảm bảo tính ngẫu nhiên và chất lượng của mô hình trong tác vụ dự đoán.
Cây quyết định sơ bộ
4.5.1 Xây dựng Cây quyết định sơ bộ
Trong môi trường Python kết hợp cùng thư viên scikit-learn để xây dựng cây quyết định sơ bộ bằng hàm DecisionTreeClassifier() Thư viện scikit-learn sử dụng phiên bản tối ưu của thuật toán CART xây dựng Cây quyết định [20]
Lưu ý các tham số trong hàm DecisionTreeClassifier() sau :
Tùy chọn 02 hệ số chia (phân nhánh) là gini, entropy
Hệ số mặc đinh là gini, dù vậy thì kết quả của thu được từ hàm trên vẫn tương đương nhau nên ta vẫn sử dụng hệ số gini trong hàm này [15][16]
Thông tin về Cây quyết định sơ bộ :
3 Đặc trưng first4semesters được chọn làm nút gốc với ngưỡng để chia (phân nhánh) là 66,5 Ngưỡng này gần với giá trị trong phần đánh giá sự tương quan giữa các đặc trưng với biến mục tiêu (mục 4.3.5.4) là 70
Cây quyết định sơ bộ (preliminary tree) thu được như sau :
Hình 4.30 : Cây quyết định sơ bộ
4.5.2 Tầm quan trong của các đặc trưng
Dựa vào kết quả của Cây quyết định sơ bộ trên, ta cần xem xét tầm quan trọng của mỗi đặc trưng khi thuật toán đánh giá để xây dựng Cây quyết định sơ bộ trên Ta thu được kết quả sau : featureNames importantValue
Hình 4.31 : Biểu đồ minh họa tầm quan trọng của các đặc trưng
Biểu đồ trên cho thấy đặc trưng first4semesters có tầm quan trọng lớn nhất và được xếp hạng nhất Tuy nhiên, kết quả này chỉ là một cây quyết định đã được xây dựng nên không thể khẳng định rằng các đặc trưng khác không quan trọng, nó chỉ không quan trọng khi không cần, không được sử dụng trong cây quyết định này Các đặc trưng khác có giá trị thấp hơn đáng kể so với đặc trưng first4semesters, điều này dự báo kết quả của bài toán phân loại này có thể sẽ rất đơn điệu, đơn giản Nói cách khác, cây quyết định được tối ưu có thể sẽ rất đơn giản
Tầm quan trọng của đặc trưng (Feature Importance) là quá trình tìm ra đặc trưng quan trọng nhất đối với biến mục tiêu, có thể ảnh hưởng tới biến mục tiêu Một thay đổi trong đặc trưng được xem là quan trọng sẽ ảnh hưởng nghiêm trọng biến mục tiêu Đối với bài toán phức tạp hơn với số lượng đặc trưng lớn, thì Tầm qaun trọng của các đặc trưng sẽ giúp mô hình lựa chọn được những đặc trưng có lợi ích
Đánh giá mô hình
Sử dụng các hàm đo lường do thư viện scikit-learn cung cấp để đánh giá mô hình Tuy nhiên ta sẽ sử dụng những phép đo phù hợp với bài toán phân loại theo đề xuất của thư viện scikit-learn như sau : a Độ chính xác trung bình của tập dữ liệu kiểm tra với các nhãn (labels) : tree.score(X, y, sample_weight = None) = 94,15% b Hệ số precision là phép tính toán trực quan tỷ lệ số điểm True Positive trong tổng số những điểm được phân loại là Positive (True Positive + False Positive) precision_score(yTest, yPredict, average = “macro”) = 79,59%
Giá trị của hệ số precision dao động trong phạm vi [0, 1], nếu giá trị của precision càng cao, tức là kết quả dự đoán tốt c Hệ số recall là phép tính toán trực quan tỷ lệ số điểm True Positive trong tổng số những điểm thực sự là Positive (True Positive + False Negative) recall_score(yTest, yPredict, average = “macro”) = 79,82%
Giá trị của hệ số recall dao động trong phạm vi [0, 1], nếu giá trị của recall càng cao, tức là kết quả dự đoán tốt d Hệ số F1 còn được gọi là hệ số F cân bằng hoặc phép đo lường F
Dù 02 hệ số precision và recall có giá trị là 1 thì vẫn chưa thể khẳng định là mô hình tốt hay không, nên hệ số F1 được sử dụng để giúp đánh giá thêm mô hình
Hệ số F1 có thể xem là trọng số trung bình của 02 hệ số precision và recall f1_score(yTest, yPredict, average = “macro”) = 79,69%
Giá trị của hệ số F1 dao động trong phạm vi [0, 1], nếu giá trị của F1 càng cao, tức là kết quả dự đoán tốt
Dựa vào kết quả của các phép đo trên có thể đánh giá rằng mô hình thực hiện tác vụ phân loại với kết quả tốt khi giá trị các hệ số luôn đạt từ 80% trở lên e Tổng hợp các hệ số trên ta sử dụng báo cáo các hệ số đo lường trong phân loại với hàm classification_report() precision recall f1-score support
Accuracy 0.82 65 macro avg 0.81 0.82 0.81 65 weighted avg 0.82 0.82 0.82 65 f Sử dụng phép đo là confusion matrix để tính toán độ chính xác khi phân loại Các phép đo ở trên chỉ cho biết được tỷ lệ dữ liệu được phân loại đúng mà không thể hiện cụ thể dữ liệu được phân loại thế nào, lớp nào được phân loại đúng nhiều nhất và dữ liệu thuộc lớp nào thường bị phân loại nhầm vào lớp khác Confusion maxtrix được sử dụng giải quyết được yêu cầu này print(confusion_matrix(yTest, yPredict))
Kết quả trên cho thấy có 22 + 30 = 52 quan sát đã được phân lớp đúng và có tổng cộng 6 + 7 = 13 quan sát được phân lớp không đúng
Hình 4.32 : Biểu đồ minh họa kết quả của confusion matrix
Lưu ý : Tập dữ liệu Tín chỉ có tổng cộng 325 dòng dữ liệu (quan sát) nhưng trong confusion matrix thể hiện chỉ có 22 + 6 + 7 + 30 = 65 quan sát là do tình trạng các dòng dữ liệu bị trùng nhau nên chỉ nhận 01 quan sát để tính toán chung.
Tối ưu Cây quyết định sơ bộ
Cây quyết định sơ bộ cho thấy cấu trúc quá phức tạp với 46 tập luật được sinh ra nên không thể tổng quát hóa được kết quả cuối cùng của mô hình Cây quyết định sơ bộ cần được tối ưu hóa để đạt được kết quả mang tính tổng quát cao nhất có thể
Có 02 chiến lược tối ưu hóa cây quyết đinh Pre-prune và Post-prune, ta sẽ lần lượt thực hiện cả hai chiến lược này để tìm ra kết quả cuối cùng tốt nhất
Là dùng các phương pháp để tìm ra giá trị tối ưu của tham số max_depth rồi từ đó quy định độ cao của cây trong quá trình xây dựng cây
4.7.1.1.1 Sử dụng độ chính xác của test dataset
Ta có biểu đồ minh họa độ chính xác của tập dữ liệu kiểm tra với các giá trị của tham số chiều cao (max_depth) của cây như sau :
Hình 4.33 : Độ chính xác của tập dữ liệu kiểm tra và chiều cao của cây
Biểu đồ trên cho thấy độ chính xác của tập dữ liệu kiểm tra cao nhất khi chiều cao của cây có giá trị là 7 hoặc 8 Giá trị này tương đương với chiều cao của Cây quyết định sơ bộ (10) nên không thể chấp nhận phương pháp này
4.7.1.1.2 Sử dụng độ chính xác của test dataset với thư viện tqdm() tqdm là một thư viện thực hiện vòng lặp, ở đây là sẽ thực hiện việc lặp lại các giá trị của tham số max_depth trong phạm vi [1 - 15] (do chiều cao của cây sơ bộ là
10 nên ta thiết lập phạm vi này) để tìm ra độ chính xác của tập dữ liệu kiểm tra cao nhất với giá trị nào của tham số max_depth
Hình 4.34 : Độ chính xác của tập dữ liệu kiểm tra và chiều cao của cây cùng việc sử dụng thư viện tqdm
Biểu đồ trên cho thấy độ chính xác của test dataset đạt giá trị cao nhất khi giá trị của tham số max_depth = 4
Sử dụng giá trị của tham số max_depth = 4 cho lớp DecisionTreeClassifier() này để xây dựng cây ta có kết quả : Đặc trưng HK04 bất ngờ được sử dụng làm nút gốc, kết quả này trái ngược với kết quả của cây sơ bộ khi lấy đặc trưng first4semesters làm nút gốc
Cây quyết định sơ bộ cũng gán cho đặc trưng first4semester giá trị cao nhất so với các đặc trưng còn lại khi đánh giá tầm quan trọng của các đặc trưng
Ta sẽ tiến hành đánh giá tầm quan trọng của các đặc trưng với Cây tối ưu này
Hình 4.35 : Cây quyết định có chiều cao = 4
Tiến hành kiểm tra Tầm quan trọng của đặc trưng ta có : featureName importantValue
Hình 4.36 : Tầm quan trọng của đặc trưng với cây quyết định có chiều cao = 4 Ở phương pháp này, đặc trưng HK03 được đánh giá kém nhất với chỉ số của tầm quan trọng = 0 Đặc trưng first4semesters vẫn có giá trị của tầm quan trọng cao nhất so với các đặc trưng còn lại nhưng không được chọn làm nút gốc, dù giá trị ở Cây tối ưu này thấp hơn so với giá trị của Cây sơ bộ
Sự mâu thuẫn khi đánh giá tầm quan trọng của đặc trưng với kết quả xây dựng Cây tối ưu khiến cho phương pháp này kém tin cậy
Cây quyết định được xây dựng khi khống chế sự phát triển bằng giá trị max_depth = 4 có kết quả trái ngược với kết quả khi đánh giá tầm quan trọng của các đặc trưng, vậy nên ta không chấp nhận phương pháp này
4.7.1.1.3 Sử dụng độ chính xác của train dataset và test dataset
Khi sử dụng độ chính xác của 02 tập dữ liệu là train dataset và test dataset để tìm ra giá trị tối ưu của tham số max_depth ta có kết quả sau :
Hình 4.37 : Độ chính xác của 02 tập dữ liệu và chiều cao của cây
Biểu đồ cho thấy khi giá trị của biến depth là 10 (chiều cao của cây là 10) thì độ chính xác của 02 tập dữ liệu là cao nhất, đây là chiều cao của Cây sơ bộ chứng tỏ phương pháp này không cải thiện được kết quả của Cây sơ bộ nên không chấp nhận phương pháp này
4.7.1.1.4 Siêu tham số với hàm RandomizedSearchCV
Hàm RandomizedSearchCV() sử dụng phương pháp cross_val_score() để tìm giá trị tối ưu của các tham số trong DecisionTreeClassifier() để tối ưu cây sơ bộ Các bước thực hiện như sau : a Xác định giá trị của tham số cv trong hàm cross_val_score()
Do số lượng tập dữ liệu nhỏ (325 dòng) và độ chính xác của test dataset là 78% nên giá trị cv = 5 b Tạo một lớp DecisionTreeClassifier() trống
Là việc thiết lập giá trị cho các tham số của lớp DecisionTreeClassifier() ở mức tối thiểu hoặc rỗng c Lập danh sách gồm phạm vị của giá trị các tham số
Tóm tắt chương 4
Hai chiến lược tối ưu hóa Cây quyết định sơ bộ đã được thực hiện với nhiều phương pháp khác nhau và đã chọn được 02 phương pháp cho kết quả khả thi nhất Các phép đo lường đã cho thấy độ chính xác của 02 phương pháp đã giảm so với cây quyết định sơ bộ nhưng tính tổng quát của mô hình đã đạt được
Cần phải dựa trên nhiều yếu tố như đặc điểm, đặc trưng của tập dữ liệu đầu vào, đặc điểm của bài toán và yêu cầu của đề tài luận văn để lựa chọn phương pháp tối ưu.
ĐÁNH GIÁ KẾT QUẢ NGHIÊN CỨU
So sánh 02 phương pháp
5.1.1 Sử dụng các phép đo
Ta có bảng so sánh với các tiêu chí là các phương pháp đo lường như sau :
Preliminary RandomizedSearchCV Cost Complexity Pruning max_depth 10 3 3 accuracy score 94,15% 76,923% 76,923% precision 79,59% 76,750% 77,226% recall 79,82% 75,820% 75,386% f1-score 79,69% 76,109% 75,800%
Bảng : So sánh 02 phương pháp tối ưu cây quyết định sơ bộ
Bảng so sánh cho thấy kết quả của 02 phương pháp được đánh giá bằng các phép đo có độ tương đồng, có thể nói là giống nhau Vì sự chênh lệch giữa các giá trị của những phép đo lường rất nhỏ, không đáng kể, xấp xỉ 1,5% Vì thế không đủ cơ sở để quyết định phương pháp nào tốt hơn
Bảng so sánh cũng cho thấy kết quả từ 02 phương pháp cắt tỉa cây có độ chính xác của cây quyết định tối ưu giảm so với độ chính xác của cây quyết định sơ bộ, nhưng tính tổng quát của mô hình đã được xây dựng, giúp mô hình có hiệu quả đối với tập dữ liệu mới trong công tác dự đoán
Kết quả của 02 phương pháp cũng cho thấy, bài toán phân loại của luận văn này còn nhiều hạn chế như kích thước tập dữ liệu nhỏ, số lượng đặc trưng ít và yếu, có sự trùng lặp trong tập dữ liệu dù chỉ mang tính khách quan… những hạn chế này cũng góp phần khiến cho kết quả thực hiện của bài toán không đạt kỳ vọng của tác giả và cũng làm cho các phương pháp sử dụng trong bài toán này không mang lại sẽ khác biệt rõ ràng giữa các phương pháp
Mô hình Cây quyết định rất nhạy cảm với dữ liệu vì thế để mô hình có thể triển khai và hoạt động tốt thì cần phải có tập dữ liệu đủ lớn
Ta có tập luật sau : a IF (first4semesters > 67) AND (HK03 > 21) AND (HK04 > 18) THEN “Yes” b IF (first4semesters < 67) THEN “No”
5.1.2.2 Phương pháp Cost-Complexity-Pruning
Ta có tập luật sau : a IF (first4semesters > 67) THEN “Yes” b IF (first4semesters < 67) AND (HK03 < 16) THEN “Yes”
Tập luật của 02 phương pháp chỉ có 02 luật, trong đó a RandomizedSearchCV sử dụng 03 đặc trưng là first4semesters, HK03, HK04 b Cost-Complexity-Pruning sử dụng 02 đặc trưng là first4semesters và HK03
Tập luật của cả 02 phương pháp cũng có sự tương đồng, giống nhau, mức độ chênh lệch rất nhỏ, không đáng kể Vì thế cũng không đủ cơ sở để đánh giá phương pháp nào tốt hơn Do tập dữ liệu nhỏ và tất cả các đặc trưng cùng bản chất, trong đó các đặc trưng nhỏ (HK01, HK02, HK03, HK04) phụ thuộc quá nhiều vào đặc trưng lớn (first4semesters) khiến cho đặc trưng lớn chiếm vai trò quan trọng tối đa trong quá trình xây dựng và tối ưu mô hình, dẫn tới cấu trúc cây quyết định và tập luật của cây quyết định cũng bị ảnh hưởng nặng nề
Dù xuất hiện tình huống các thuộc tính phụ thuộc khiến cho tập luật sinh ra từ kết quả của mô hình bằng 02 phương pháp khác nhau là đơn giản nhưng vẫn cho thấy vai trò của các thuộc tính trong kết quả phản ánh đúng thực tiễn xảy ra trong quá trình học tập của sinh viên Đối với phương pháp RandomizeSearchCV thì tập luật không thể hiện cụ thể như tập luật của phương pháp Cost-Complexity-Pruning Luật 2 của tập luật trong kết quả của phương pháp Cost-Complexity-Pruning đã minh họa rõ ràng dù các thuộc tính của mô hình hiện tại phụ thuộc chặt chẽ với nhau với tầm quan trọng đóng góp vào kết quả mô hình khác nhau, sự chênh lệch về tầm quan trọng giữa các thuộc tính này rất lớn, cụ thể là thuộc tính first4semester có tầm quan trọng rất cao, 0,933, trong khi thuộc tính HK3 chỉ là 0,067, còn thuộc tính HK1, HK2, HK4 thì tầm quan trọng gần như không đáng kể Mặc dù vậy, trong luật 2 của tập luật vẫn sử dụng thuộc tính HK3 trong kết quả mô hình để phản ánh tình huống thực tế là sinh viên đã nỗ lực trong 04 học kỳ cuối để hoàn thành số lượng tín chỉ theo yêu cầu để tốt nghiệp đúng hạn dù khả năng thành công rất thấp (3,46%), nhưng đây là tình huống có thật trong thực tiễn và mô hình đã thể hiện đầy đủ các tình huống Đây chính là tính thực tiễn cao của mô hình đối với bài toán thực tiễn hiện nay của khoa CNTT trường đại học Tài chính – Marketing Vì thế các thuộc tính HK1, HK2, HK3, HK4 vẫn cần thiết trong việc xây dựng mô hình để thể hiện và giải quyết được các tình huống trong thực tiễn đang diễn ra, đặc biệt trong trường hợp số lượng dữ liệu tăng lên và được bổ sung vào mô hình thì sẽ làm nổi bật vai trò của các thuộc tính này cũng như độ chính xác của mô hình bài toán trong môi trường thực tiễn.
Lựa chọn phương pháp
Tương tự như việc so sánh các phép đo lường của 02 phương pháp, việc so sánh tập luật của 02 phương pháp cũng không giúp đánh giá phương pháp nào tốt hơn Tuy nhiên vẫn có 03 điểm khác biệt giữa 02 phương pháp này : a Cây quyết định của phương pháp Cost-Complexity-Pruning đơn giản hơn so với Cây quyết định của phương pháp RandomizedSearchCV b Cây quyết đinh của phương pháp RandomizedSearchCV phân nhánh rõ rệt thành 02 phần khác nhau hoàn toàn với luật đơn giản như sau :
Luật 1 IF (first4semesters > 67) THEN “Yes” ELSE “No”
Cây quyết định của phương pháp Cost-Complexity-Pruning có thêm 01 luật xử lý thêm 01 tình huống minh họa rõ ràng thực tiễn đang diễn ra, có thể tóm tắt như sau :
Luật 1 IF (first4semesters > 67) THEN “Yes”
Luật 2 IF (first4semesters < 67) AND (HK03 < 16) THEN “Yes” c Các phương pháp cắt tỉa cây của chiến lược pre-pruning rất hiệu quả nhưng không phải luôn chính xác như các phương pháp cắt tỉa cây của chiến lược post-pruning [17]
Ngoài ra, các phương pháp thuộc chiến lược pre-prune có thể được xem là rất tiện lợi và mạnh mẽ dùng để tinh chỉnh các giá trị của các siêu tham số trong mô hình, nhưng đây cũng được xem là cách tiếp cận can thiệp thô bạo vào quá trình xây dựng mô hình với chi phí tính toán cao Trong các bài toán có số lượng biến nhiều hơn và tính độc lập cao hơn cũng như độ phức tạp của bài toán cao hơn sẽ giảm độ chính xác của kết quả bài toán phân loại
Như vậy dựa vào 03 khác biệt trên, dù rất nhỏ, tác giả cuối cùng chọn phương pháp Cost-Complexity-Pruning để tối ưu cây quyết định sơ bộ của luận văn này cùng với tập luật của phương pháp Cost-Complexity-Pruning sinh ra.
Tóm tắt chương 5
Hai phương pháp tối ưu cây quyết định sơ bộ có sự tương đồng về kết quả thực hiện cả về kết quả các phép đo và tập luật sinh ra từ mô hình Nguyên nhân chủ quan và lớn nhất là do tập dữ liệu nhỏ và các đặc trưng giống nhau về bản chất nên số lượng đặc trưng tham gia vào quá trình tối ưu cây quyết định sơ bộ bị giảm nhiều, khiến cho kết quả của mô hình quá đơn giản, dù đã tổng quát hóa được mô hình.