Trong tình hình thực tế hiện nay, việc quản lý dữ liệu đào tạo là một thách thức lớn đối với các tổ chức đào tạo. Họ phải đối mặt với lượng dữ liệu lớn và đa dạng, từ thông tin học viên, khóa học, kết quả đào tạo, đánh giá, phản hồi từ học viên, và nhiều yếu tố khác. Tuy nhiên, chỉ đơn thuần thu thập và lưu trữ dữ liệu không đủ để tạo ra giá trị thực sự. Đây là lúc nghiên cứu Data Mining vào phân tích dữ liệu quản lý đào tạo trở nên cực kỳ cấp thiết. Bằng cách áp dụng các phương pháp và công nghệ Data Mining, chúng ta có thể khai thác tri thức ẩn chưa được khám phá từ dữ liệu. Nó giúp chúng ta hiểu rõ hơn về học viên, xu hướng đào tạo, yêu cầu của thị trường lao động, và các vấn đề khác liên quan đến quản lý đào tạo.Thông qua việc áp dụng các kỹ thuật Data Mining như phân tích cụm, phân loại, gợi ý, và dự đoán, chúng ta có thể tạo ra những thông tin quan trọng để đưa ra quyết định. Ví dụ, dựa trên phân tích dữ liệu đào tạo, chúng ta có thể xác định khóa học phổ biến, đối tượng học viên tiềm năng, và điều chỉnh chương trình đào tạo để đáp ứng nhu cầu thị trường. Chúng ta cũng có thể dự đoán hiệu suất học tập của học viên, phát hiện ra mô hình học tập tốt nhất, và cung cấp phản hồi cá nhân để tăng cường hiệu quả học tập. Việc áp dụng Data Mining trong quản lý đào tạo không chỉ giúp chúng ta tối ưu hóa quy trình quản lý và nâng cao chất lượng đào tạo, mà còn đóng góp vào sự cạnh tranh và phát triển của tổ chức đào tạo. Các quyết định dựa trên dữ liệu số liệu và tri thức khai thác từ Data Mining giúp tổ chức đào tạo thích ứng nhanh chóng với thị trường đang biến đổi và đáp ứng mọi yêu cầu của học viên. Tóm lại, nghiên cứu Data Mining để phân tích dữ liệu quản lý đào tạo và ra quyết định không chỉ là một yêu cầu cấp thiết trong thời đại số hóa, mà còn là một công cụ quan trọng để tạo ra giá trị và sự phát triển bền vững cho các tổ chức đào tạo.
NỘI DUNG
Data mining (khai phá dữ liệu) là quá trình tìm kiếm và khám phá các thông tin có giá trị và tri thức tiềm ẩn từ tập dữ liệu lớn Nó bao gồm sử dụng các phương pháp, kỹ thuật và công cụ phân tích để khám phá mô hình, quy luật, xu hướng và mẫu ẩn trong dữ liệu Mục tiêu chính của data mining là trích xuất thông tin hữu ích từ dữ liệu để hỗ trợ quyết định, dự đoán và khám phá tri thức mới
Hình 1.1: Machine learning and data mining [1]
Data Mining được thực hiện bởi các nhà khoa học dữ liệu, chuyên gia phân tích kinh doanh, giám đốc điều hành, quản trị viên hay những người dùng khác Một số yếu tố chính được sử dụng trong quá trình phân tích đó là học máy, AI, phân tích thống kê và các nhiệm vụ quản lý dữ liệu Các yếu tố này giúp tự động hoá nhiều quy trình hơn và cho phép khai thác các tập dữ liệu lớn như cơ sở dữ liệu khách hàng, hồ sơ giao dịch, tệp nhật ký và ứng dụng di động Data Mining hoạt động dựa trên quy trình gồm 3 giai đoạn chính: Tiền xử lý dữ liệu, phân tích dữ liệu, đánh giá và ứng dụng [2]
DATA MINING
Khái niệm Data Mining
Data mining (khai phá dữ liệu) là quá trình tìm kiếm và khám phá các thông tin có giá trị và tri thức tiềm ẩn từ tập dữ liệu lớn Nó bao gồm sử dụng các phương pháp, kỹ thuật và công cụ phân tích để khám phá mô hình, quy luật, xu hướng và mẫu ẩn trong dữ liệu Mục tiêu chính của data mining là trích xuất thông tin hữu ích từ dữ liệu để hỗ trợ quyết định, dự đoán và khám phá tri thức mới
Hình 1.1: Machine learning and data mining [1]
Phương pháp Data Mining
Data Mining được thực hiện bởi các nhà khoa học dữ liệu, chuyên gia phân tích kinh doanh, giám đốc điều hành, quản trị viên hay những người dùng khác Một số yếu tố chính được sử dụng trong quá trình phân tích đó là học máy, AI, phân tích thống kê và các nhiệm vụ quản lý dữ liệu Các yếu tố này giúp tự động hoá nhiều quy trình hơn và cho phép khai thác các tập dữ liệu lớn như cơ sở dữ liệu khách hàng, hồ sơ giao dịch, tệp nhật ký và ứng dụng di động Data Mining hoạt động dựa trên quy trình gồm 3 giai đoạn chính: Tiền xử lý dữ liệu, phân tích dữ liệu, đánh giá và ứng dụng [2]
Hình 1.2: Các bước trong Data Minning [3]
1.2.1 Tiền xử lý dữ liệu
➢ Thu thập dữ liệu: Gom nhặt dữ liệu từ nhiều nguồn khác nhau, bao gồm cả cơ sở dữ liệu, tệp tin và nguồn dữ liệu trực tuyến
➢ Chuẩn bị dữ liệu: Làm sạch dữ liệu bằng cách xử lý các giá trị bị thiếu, nhiễu và không chính xác Chuyển đổi dữ liệu thành định dạng phù hợp cho việc phân tích
➢ Phân tích tổng quan: Khám phá và mô tả dữ liệu bằng cách sử dụng các phép đo thống kê, biểu đồ và biểu đồ phân phối
➢ Clustering (phân cụm): Nhóm các đối tượng dữ liệu tương tự vào các nhóm dựa trên sự tương đồng giữa chúng
➢ Classification (phân loại): Xây dựng mô hình để dự đoán lớp hoặc nhãn của đối tượng dữ liệu dựa trên các thuộc tính đã biết
➢ Association rule mining (khai phá quy tắc liên kết): Tìm kiếm các mẫu và quy tắc tương quan giữa các mục tiêu trong dữ liệu
➢ Regression (hồi quy): Xây dựng mô hình để dự đoán giá trị số lượng của biến phụ thuộc dựa trên các biến độc lập
1.2.3 Đánh giá và ứng dụng
➢ Đánh giá mô hình: Đánh giá độ chính xác và hiệu suất của mô hình dự đoán trên dữ liệu kiểm tra
➢ Ứng dụng mô hình: Sử dụng mô hình đã xây dựng để dự đoán, phân loại hoặc khám phá tri thức từ dữ liệu mới.
Lợi ích Data Mining
Data mining có rất nhiều ứng dụng trong nhiều lĩnh vực khác nhau, bao gồm:
❖ Kinh doanh và Marketing: Phân tích hành vi khách hàng, dự đoán xu hướng và mô hình hóa thị trường, phân loại và gợi ý sản phẩm
❖ Tài chính và Ngân hàng: Phát hiện gian lận, quản lý rủi ro, dự đoán giá cổ phiếu và tiền tệ
❖ Y tế và Dược phẩm: Đưa ra dự đoán về bệnh tật, phân loại bệnh nhân, quản lý dữ liệu y tế
❖ Giao thông vận tải: Dự đoán tình trạng giao thông, phân loại vận chuyển và tối ưu hóa lộ trình
❖ Khoa học xã hội và Chính phủ: Phân tích dữ liệu xã hội, dự đoán và phân loại tình trạng xã hội, tìm kiếm tri thức từ dữ liệu công cộng
❖ Giáo dục và chương trình đào tạo: Data mining cũng có ứng dụng quan trọng trong lĩnh vực giáo dục như: dự đoán thành tích học tập, phân loại học sinh, đề xuất nội dung học, dự đoán việc bỏ học, … [3]
MÔ TẢ TẬP DỮ LIỆU
Nguồn dữ liệu
Tập dữ liệu “Predict students' dropout and academic success” lấy từ Kaggle: https://www.kaggle.com/datasets/thedevastator/higher-education-predictors-of- student-retention
Giới thiệu tập dữ liệu
Tập dữ liệu này cung cấp một cái nhìn toàn diện về các sinh viên đang theo học các ngành đại học khác nhau tại một cơ sở giáo dục cao hơn Nó bao gồm dữ liệu về dân số học, yếu tố xã hội kinh tế và thông tin về thành tích học tập có thể được sử dụng để phân tích những yếu tố có thể dự đoán sự bỏ học và thành công học tập của sinh viên Tập dữ liệu này chứa nhiều cơ sở dữ liệu không liên kết nhau bao gồm thông tin liên quan có sẵn tại thời điểm nhập học, chẳng hạn như phương thức đăng ký, tình trạng hôn nhân, khóa học đã chọn và nhiều hơn nữa Ngoài ra, dữ liệu này có thể được sử dụng để ước tính thành tích tổng thể của sinh viên vào cuối mỗi học kỳ bằng cách đánh giá các môn học đã hoàn thành/đăng ký/đánh giá/phê duyệt cũng như điểm số tương ứng
Cuối cùng, tỷ lệ thất nghiệp, lạm phát và GDP của một khu vực cung cấp những thông tin bổ sung về ảnh hưởng của các yếu tố kinh tế đến tỉ lệ bỏ học và thành tích học tập của sinh viên Công cụ phân tích này sẽ giúp xác định các yếu tố thúc đẩy sinh viên tiếp tục hoặc bỏ học trong các lĩnh vực khác nhau như nông nghiệp, thiết kế, giáo dục, y tế, báo chí, quản lý, dịch vụ xã hội hoặc công nghệ.
Mô tả chi tiết về tập dữ liệu
Thuộc tính Role Type Mô tả
1 – Độc thân; 2 – Đã kết hôn; 3 – Góa phụ;
4 – Ly dị; 5 – Hợp pháp; 6 – Ly thân
Application mode Feature Discrete Các chế độ đắng kí
Thứ tự đăng ký (từ 0 - lựa chọn đầu tiên; đến 9 - lựa chọn cuối cùng)
Course Feature Discrete Mã khóa học
Daytime/evening attendance Feature Discrete 1 – Học ban ngày; 0 - Học ban tối
Previous qualification Feature Discrete Trình độ học vấn trước đó của sinh viên Previous qualification
(grade) Feature Continuous Điểm trung bình của trình độ học vấn trước đó (từ 0 đến 200)
Nationality Feature Discrete Quốc tịch
Mother's qualification Feature Discrete Trình độ học vấn của mẹ
Father's qualification Feature Discrete Trình độ học vấn của cha
Mother's occupation Feature Discrete Nghề nghiệp của mẹ
Father's occupation Feature Discrete Nghề nghiệp của cha
Admission grade Feature Continuous Điểm xét tuyển (từ 0 đến 200)
1 – Có hoàn cảnh khó khăn; 0 – Không hoàn cảnh khó khăn
Educational special needs Feature Discrete
1 – Có nhu cầu đặc biệt về giáo dục; 0 – Không có nhu cầu đặc biệt
Debtor Feature Discrete 1 – Nợ học phí; 0 – Không nợ học phí
Tuition fees up to date Feature Discrete
1 – Đã thanh toán học phí; 0 – Chưa thanh toán học phí
Gender Feature Discrete 1 – Nam; 0 – Nữ
1 – Được hưởng học bổng; 0 – Không được hưởng học bổng
Age at enrollment Feature Discrete Tuổi của sinh viên khi nhập học
International Feature Discrete 1 – Quốc tế; 0 – Không quốc tế
Curricular units 1st sem (credited) Feature Discrete
Số môn học đã được ghi nhận trong học kỳ
Curricular units 1st sem (enrolled) Feature Discrete Số môn học đã đăng ký trong học kỳ 1 Curricular units 1st sem (evaluations) Feature Discrete
Số lượng bài đánh giá cho các môn học trong học kỳ 1
Curricular units 1st sem (approved) Feature Discrete
Số môn học đã được chấp thuận trong học kỳ 1 Curricular units 1st sem (grade) Feature Discrete Điểm trung bình các môn học trong học kỳ
1 (từ 0 đến 20) Curricular units 1st sem (without evaluations) Feature Discrete
Số môn học không có bài đánh giá trong học kỳ 1
Curricular units 2nd sem (credited) Feature Discrete
Số môn học đã được ghi nhận trong học kỳ
2 Curricular units 2nd sem (enrolled) Feature Discrete Số môn học đã đăng ký trong học kỳ 2 Curricular units 2nd sem (evaluations) Feature Discrete
Số lượng bài đánh giá cho các môn học trong học kỳ 2
Curricular units 2nd sem (approved) Feature Discrete
Số môn học đã được chấp thuận trong học kỳ Curricular units 2nd sem (grade) Feature Discrete Điểm trung bình các môn học trong học kỳ
2 (từ 0 đến 20) Curricular units 2nd sem (without evaluations) Feature Discrete
Số môn học không có bài đánh giá trong học kỳ 2
Unemployment rate Feature Continuous Tỷ lệ thất nghiệp (%)
Inflation rate Feature Continuous Tỷ lệ lạm phát (%)
GDP Feature Continuous GDP (Tổng sản phẩm quốc nội)
Mục tiêu Vấn đề được sắp xếp dưới dạng một nhiệm vụ phân loại ba loại (từ bỏ,
11 đăng ký và tốt nghiệp) vào cuối thời gian bình thường của khóa học
Bảng 2.1: Mô tả thuộc tính của tập dữ liệu
Lớp thuộc tính Thuộc tính Loại
Dữ liệu dân số Marital status Numeric/discrete
Age at enrollment Numeric/discrete
Dữ liệu xã hội Mother’s qualification Numeric/discrete
Father’s qualification Numeric/discrete Mother’s occupation Numeric/discrete Father’s occupation Numeric/discrete Educational special needs Numeric/binary
Tuition fees up to date Numeric/binary
Dữ liệu kinh tế Scholarship holder Numeric/binary
Dữ liệu học thuật khi nhập học
Daytime/evening attendance Numeric/binary
Dữ liệu học thuật cuối kỳ 1
Curricular units 1st sem (credited) Numeric/discrete Curricular units 1st sem (enrolled) Numeric/discrete
Curricular units 1st sem (evaluations)
Curricular units 1st sem (approved) Numeric/discrete Curricular units 1st sem (grade) Numeric/continuous
Curricular units 1st sem (without evaluations)
Dữ liệu học thuật cuối kỳ 2
Curricular units 2nd sem (credited) Numeric/discrete Curricular units 2nd sem (enrolled) Numeric/discrete
Curricular units 2nd sem (evaluations)
Curricular units 2nd sem (approved)
Curricular units 2nd sem (grade) Numeric/continuous
Curricular units 2nd sem (without evaluations)
Bảng 2.2: Mô tả lớp thuộc tính trong tập dữ liệu
DECISION TREE
Khái niệm tổng quát mô hình Decision Tree
Decision Tree (Cây quyết định) là một thuật toán quan trọng trong lĩnh vực Machine Learning và Data Mining Nó là một phương pháp học có giám sát, được sử dụng rộng rãi để phân loại và dự đoán trên cơ sở các quyết định nhị phân Decision Tree được xây dựng dưới dạng cây, trong đó các nút đại diện cho các thuộc tính và các cạnh đại diện cho quyết định dựa trên các giá trị thuộc tính
Hình 3.1: Mô hình Decision Tree [5]
Trong lĩnh vực máy học, cây quyết định là một phương pháp dự báo, nơi mỗi quan sát được ánh xạ đến một giá trị mục tiêu thông qua quá trình phân loại và quyết định dựa trên các biến đầu vào Cây quyết định được biểu diễn bằng cấu trúc cây, trong đó mỗi nút trong cây đại diện cho một biến, và các đường đi từ gốc đến các nút
Cây quyết định là cấu trúc lưu trữ dữ liệu không tham số biểu thị một hàm số từ đầu vào đến mục tiêu Các nút lá là các giá trị cụ thể của biến mục tiêu và đại diện cho các giá trị được dự đoán dựa trên các giá trị của biến đầu vào trong đường dẫn từ gốc đến nút lá đó Quá trình học cây quyết định, còn được gọi là học bằng cây quyết định, là một kỹ thuật phổ biến trong lĩnh vực học máy.
Cây quyết định được ứng dụng rộng rãi trong khai phá dữ liệu Chúng mô phỏng cấu trúc cây, trong đó nút lá thể hiện phân loại, nhánh thể hiện tổ hợp thuộc tính dẫn tới phân loại đó Cây quyết định được xây dựng bằng cách chia tập dữ liệu thành tập con dựa trên kiểm tra giá trị thuộc tính Quá trình này được lặp lại đệ quy cho đến khi tập con không thể chia tiếp hoặc có thể áp dụng phân loại cho tất cả mẫu trong tập Đôi khi, một bộ phân loại rừng ngẫu nhiên sử dụng nhiều cây quyết định để nâng cao hiệu suất phân loại.
Cây quyết định cũng có khả năng tính toán các xác suất có điều kiện và được sử dụng trong việc mô tả, phân loại và tổng quát hóa dữ liệu
Dữ liệu được biểu diễn dưới dạng các bản ghi (x, y), trong đó x là các biến đầu vào và y là biến mục tiêu mà chúng ta quan tâm đến, phân loại hoặc tổng quát hóa Các biến đầu vào x1, x2, x3 được sử dụng để thực hiện quá trình phân loại và dự đoán giá trị của biến mục tiêu
Cây quyết định còn có hai tên khác:
❖ Cây hồi quy (Regression tree) ước lượng các hàm giá có giá trị là số thực thay vì được sử dụng cho các nhiệm vụ phân loại (ví dụ: ước tính giá một ngôi nhà hoặc khoảng thời gian một bệnh nhân nằm viện)
❖ Cây phân loại (Classification tree), nếu y là một biến phân loại như: giới tính (nam hay nữ), kết quả của một trận đấu (thắng hay thua).
Decision Tree (cây quyết định)
Hình 3.2: Bài toán phân lớp sử dụng decision tree [5]
Trong hình 3.2a, chúng ta có hai lớp dữ liệu được biểu diễn bằng màu lục và màu đỏ trên không gian hai chiều Mục tiêu của chúng ta là tìm một ranh giới đơn giản để phân chia hai lớp này Điều này có nghĩa là chúng ta cần xây dựng một bộ phân lớp để quyết định xem một điểm dữ liệu mới thuộc vào lớp nào
Qua quan sát hình 3.2a, ta thấy ranh giới giữa hai lớp là khá đơn giản - đó là các đường song song với các trục tọa độ Chúng ta có thể đưa ra quyết định dựa trên các ngưỡng (threshold) sau đây:
• Nếu thành phần thứ nhất, x1, nhỏ hơn ngưỡng t1, ta quyết định rằng điểm đó thuộc vào lớp màu lục
• Nếu thành phần thứ hai, x2, lớn hơn ngưỡng t2, ta quyết định rằng điểm đó thuộc vào lớp màu lục
• Nếu thành phần thứ nhất, x1, lớn hơn ngưỡng t3, ta quyết định rằng điểm đó thuộc vào lớp màu lục
Các điểm không thoả mãn các điều kiện trên sẽ được xếp vào lớp màu đỏ Quyết định về việc một điểm dữ liệu thuộc vào lớp nào được mô tả trên cây quyết định trong hình 3.2b
Trong cây quyết định, các ô màu xám, lục và đỏ trên hình 3.2 được gọi là các nút (node) Các nút thể hiện kết quả đầu ra (màu lục và đỏ) được gọi là nút lá (leaf node hoặc terminal node) Các nút thể hiện câu hỏi là các nút non-leaf Nút non-leaf đầu tiên (câu hỏi đầu tiên) được gọi là nút gốc (root node) Các nút non-leaf thường có hai hoặc nhiều nút con (child node) Các nút con này có thể là nút lá hoặc nút non-leaf khác Các nút con cùng cha được gọi là sibling node Nếu tất cả các nút non-leaf chỉ có hai nút con, ta nói đó là một cây quyết định nhị phân (binary decision tree) Các câu hỏi trong cây quyết định nhị phân đều có thể được trả lời là đúng hoặc sai Các cây quyết định mà một nút lá có nhiều nút con cũng có thể được chuyển đổi thành cây quyết định nhị phân Điều này có thể thực hiện được vì hầu hết các câu hỏi có thể được đưa về dạng câu hỏi đúng hoặc sai
Ví dụ, ta có thể xác định tuổi của một người dựa trên nhiều câu hỏi đúng hoặc sai như: Tuổi của bạn lớn hơn x đúng không? (Đây chính là thuật toán tìm kiếm nhị phân - binary search.)
Cây quyết định là một mô hình học có giám sát (supervised learning) và có thể được áp dụng cho cả bài toán phân loại và dự đoán (regression) Xây dựng một cây quyết định trên tập dữ liệu huấn luyện là quá trình xác định các câu hỏi và thứ tự của chúng Một điểm đáng lưu ý của cây quyết định là nó có thể làm việc với các đặc trưng (trong tài liệu về cây quyết định, các đặc trưng thường được gọi là thuộc tính - attribute) dạng phân loại (categorical), thường là dạng rời rạc và không có thứ tự Ví dụ, mưa, nắng hoặc xanh, đỏ, v.v Cây quyết định cũng có thể làm việc với dữ liệu có vector đặc trưng bao gồm cả thuộc tính dạng phân loại và dạng số (numeric) Một điểm đáng lưu ý khác là cây quyết định ít yêu cầu việc chuẩn hoá dữ liệu [6]
Ưu điểm và nhược điểm
Cây quyết định (Decision Tree) tạo ra một cấu trúc dạng cây dễ hiểu và dễ diễn giải, giúp người dùng hiểu rõ quyết định được đưa ra Điều này góp phần làm cho Decision Tree trở thành một phương pháp ra quyết định dễ tiếp cận cho nhiều người dùng, ngay cả những người không có kiến thức chuyên sâu về học máy.
• Xử lý dữ liệu không đồng nhất: Decision Tree có khả năng xử lý dữ liệu không đồng nhất trong các thuộc tính, bao gồm cả dữ liệu rời rạc và dữ liệu liên tục
Decision Tree là một thuật toán học máy có khả năng phân loại đa lớp Điều này cho phép xử lý các bài toán phân loại dữ liệu vào hơn hai nhãn khác nhau Nhờ vậy, Decision Tree trở thành sự lựa chọn phù hợp cho những tình huống đòi hỏi phân loại phức tạp với nhiều lớp nhãn.
Cây quyết định dễ bị quá khớp với dữ liệu huấn luyện, điều này có thể dẫn đến hiệu suất kém khi áp dụng vào dữ liệu mới.
• Nhạy cảm với biến đổi nhỏ trong dữ liệu: Decision Tree có thể thay đổi cấu trúc cây và kết quả dự đoán khi có những biến đổi nhỏ trong dữ liệu đầu vào.
Ứng dụng
Một số ứng dụng của Decision Tree:
Hệ thống đề xuất sử dụng Decision Tree có thể dự đoán sở thích và nhu cầu của người dùng dựa trên lịch sử mua hàng và các thuộc tính của họ Bằng cách phân tích dữ liệu này, Decision Tree gợi ý những sản phẩm phù hợp, tạo ra trải nghiệm mua sắm trực tuyến được cá nhân hóa và hiệu quả hơn.
- Phân tích tín dụng (Credit Scoring): Decision Tree có thể được sử dụng để đánh giá rủi ro tín dụng của khách hàng trong lĩnh vực ngân hàng Dựa vào các thuộc tính như thu nhập, lịch sử tín dụng, số lần vay, v.v., Decision Tree có thể phân loại khách hàng thành các nhóm rủi ro khác nhau, từ đó giúp ngân hàng đưa ra quyết định về việc cấp hay từ chối khoản vay
- Phân loại bệnh (Disease Classification): Decision Tree có thể được sử dụng trong lĩnh vực y tế để xây dựng các mô hình phân loại bệnh Dựa vào các đặc điểm và triệu chứng của bệnh nhân, Decision Tree có thể giúp đưa ra dự đoán về loại bệnh và đề xuất phương pháp điều trị phù hợp
- Quản lý rủi ro (Risk Management): Decision Tree có thể được sử dụng để đánh giá rủi ro trong các ngành công nghiệp như bảo hiểm Dựa vào các thuộc tính
Cây quyết định phân loại khách hàng thành các nhóm rủi ro dựa trên các biến số như tuổi, giới tính, tiền sử bệnh lý, Từ đó, cây quyết định hỗ trợ đưa ra quyết định chấp thuận hoặc từ chối bảo hiểm cho từng khách hàng cụ thể.
- Hỗ trợ quyết định (Decision Support): Decision Tree có thể được sử dụng trong các hệ thống hỗ trợ quyết định để đưa ra các quyết định trong các lĩnh vực như kinh doanh, quản lý nguồn nhân lực, marketing, chương trình đào tạo,v.v Dựa vào các thuộc tính và điều kiện, Decision Tree có thể hỗ trợ quyết định trong việc lựa chọn chiến lược, ưu tiên công việc, v.v
RANDOM FOREST
Khái niệm tổng quát mô hình Random Forest
Random forests (rừng quyết định ngẫu nhiên) là một phương pháp học tập tổ hợp được sử dụng trong phân loại, hồi quy và các tác vụ khác bằng cách xây dựng một loạt các cây quyết định trong quá trình huấn luyện Đối với các tác vụ phân loại, kết quả của rừng quyết định ngẫu nhiên là lớp được chọn bởi phần lớn cây quyết định Đối với các tác vụ hồi quy, trung bình hoặc giá trị dự đoán của các cây riêng lẻ được trả về Random forests được tạo ra để khắc phục khả năng quá khớp dữ liệu huấn luyện của cây quyết định Random forests thường vượt trội hơn so với cây quyết định, nhưng độ chính xác của chúng thấp hơn so với cây tăng cường gradient Tuy nhiên, các đặc điểm của dữ liệu có thể ảnh hưởng đến hiệu suất của chúng
Hình 4.1: Mô hình Random Forest [7]
Thuật toán đầu tiên cho rừng quyết định ngẫu nhiên được Tin Kam Ho phát triển vào năm 1995 bằng phương pháp không gian ngẫu nhiên Breiman và Cutler sau đó mở rộng thuật toán này bằng cách kết hợp phương pháp đóng túi của Breiman và lựa chọn ngẫu nhiên các thuộc tính, ban đầu được Ho và sau đó là Amit và Geman đề xuất độc lập Kết quả là tạo ra một tập hợp các cây quyết định với sự thay đổi được kiểm soát.
Random forest thường được sử dụng như các mô hình "hộp đen" trong doanh nghiệp vì chúng tạo ra dự đoán hợp lý trên một loạt dữ liệu trong khi yêu cầu ít cấu hình.
Phát triển ban đầu của ý tưởng rừng quyết định ngẫu nhiên bị ảnh hưởng bởi công trình của Amit và Geman, người đã giới thiệu ý tưởng tìm kiếm trên một tập con ngẫu nhiên các quyết định có sẵn khi chia một nút trong quá trình xây dựng cây đơn lẻ Ý tưởng về việc chọn không gian con ngẫu nhiên từ Ho cũng có ảnh hưởng đến thiết kế của rừng quyết định ngẫu nhiên Trong phương pháp này, một rừng các cây được xây dựng và sự biến thiên giữa các cây được tạo ra bằng cách chiếu dữ liệu huấn luyện vào một không gian con được chọn ngẫu nhiên trước khi phù hợp với mỗi cây hoặc mỗi nút Cuối cùng, ý tưởng về tối ưu hóa nút ngẫu nhiên, trong đó quyết định tại mỗi nút được chọn bằng một quy trình ngẫu nhiên, chứ không phải là một quy trình tối ưu hóa xác định, đã được giới thiệu lần đầu bởi Thomas G Dietterich
Bài báo quan trọng của Leo Breiman đã giới thiệu chính thức về rừng quyết định ngẫu nhiên Bài báo này mô tả một phương pháp xây dựng một rừng cây không tương quan bằng cách sử dụng một quy trình giống CART, kết hợp với tối ưu hóa nút ngẫu nhiên và bagging Ngoài ra, bài báo này kết hợp nhiều yếu tố, một số đã được biết trước và một số mới, tạo nên cơ sở của thực tiễn hiện đại của rừng quyết định ngẫu nhiên, bao gồm sử dụng lỗi ngoài túi làm ước lượng lỗi tổng quát và đo lường độ quan trọng của biến thông qua việc chế ngự Báo cáo này cũng cung cấp kết quả lý thuyết đầu tiên cho rừng quyết định ngẫu nhiên dưới dạng một giới hạn về lỗi tổng quát phụ thuộc vào sức mạnh của cây trong rừng và sự tương quan của chúng
Ưu và nhược điểm của Random Forest
• Khả năng xử lý dữ liệu lớn: Random Forest có thể xử lý các tập dữ liệu lớn với số lượng đặc trưng và mẫu lớn mà không gặp vấn đề về hiệu suất Việc chia nhỏ dữ liệu và xây dựng các cây quyết định độc lập làm cho thuật toán có thể hoạt động hiệu quả
• Khả năng xử lý đặc trưng rời rạc và liên tục: Random Forest có thể làm việc với cả các đặc trưng rời rạc và liên tục trong dữ liệu đầu vào mà không yêu cầu sự tiền xử lý đặc trưng phức tạp
• Khả năng xử lý dữ liệu nhiễu: Random Forest có tính ổn định đối với dữ liệu nhiễu và có khả năng giảm thiểu ảnh hưởng của dữ liệu nhiễu trên kết quả dự đoán
• Độ quan trọng của đặc trưng: Random Forest cung cấp một đánh giá độ quan trọng của từng đặc trưng trong quá trình huấn luyện Điều này giúp hiểu được đặc trưng nào có ảnh hưởng lớn nhất đến kết quả và giúp trong việc lựa chọn đặc trưng để tạo mô hình
• Tính đa dạng: Random Forest tạo ra một tập hợp các cây quyết định độc lập, mỗi cây được huấn luyện trên một tập con ngẫu nhiên của dữ liệu Việc kết hợp các cây này giúp giảm thiểu hiện tượng overfitting và tăng tính tổng quát của mô hình
• Tính phức tạp tính toán: Random Forest yêu cầu một lượng tính toán lớn hơn so với một số thuật toán học máy khác, đặc biệt là khi số lượng cây trong rừng lớn Điều này có thể làm tăng thời gian huấn luyện và dự đoán
• Dễ hiểu và diễn giải: Random Forest tổng hợp thông tin từ nhiều cây quyết định, làm cho mô hình khá phức tạp và khó hiểu Điều này làm giảm khả năng diễn giải của mô hình, đặc biệt đối với các bài toán yêu cầu giải thích dễ hiểu
• Quan hệ giữa đặc trưng: Random Forest không xử lý tốt những quan hệ phức tạp giữa các đặc trưng Điều này có nghĩa là nếu có sự phụ thuộc tuyến tính mạnh hoặc quan hệ phi tuyến phức tạp giữa các đặc trưng, Random Forest có thể không hiệu quả như các mô hình khác được thiết kế đặc biệt cho việc xử lý quan hệ đó
• Overfitting với số lượng cây lớn: Trái với các thuật toán như cây tăng cường gradient, Random Forest có thể dễ dàng bị overfitting nếu số lượng cây trong rừng quá lớn Việc có quá nhiều cây có thể dẫn đến mô hình chỉ tập trung vào nhiễu trong dữ liệu huấn luyện, dẫn đến hiệu suất dự đoán kém trên dữ liệu mới.
Random Forest (Rừng quyết định ngẫu nhiên)
Thuật toán Random Forest là một thuật toán học máy phổ biến được sử dụng trong bài toán phân loại và hồi quy Nó là một phương pháp dựa trên việc xây dựng một tập hợp các cây quyết định độc lập, được gọi là "rừng", và kết hợp kết quả từ các cây để đưa ra dự đoán cuối cùng
Một trong những đặc điểm quan trọng nhất của thuật toán Random Forest là nó có khả năng xử lý tập dữ liệu chứa các biến liên tục, như trong bài toán Hồi quy, và các biến phân loại, như trong bài toán Phân loại Nó có hiệu suất tốt cho các bài toán Phân loại và Hồi quy Trong hướng dẫn này, chúng ta sẽ hiểu cách làm việc của thuật toán Random Forest và thực hiện nó trên một bài toán phân loại bằng cách sử dụng thư viện scikit-learn
4.3.1 Hoạt động của thuật toán rừng ngẫu nhiên
Thuật toán Rừng ngẫu nhiên là một kỹ thuật học tập ensemble, được xây dựng từ một tập hợp các cây quyết định Thay vì chỉ sử dụng một cây quyết định duy nhất để dự đoán, Rừng ngẫu nhiên kết hợp dự đoán từ nhiều cây quyết định được xây dựng từ các tập dữ liệu con khác nhau và các tập hợp tính năng ngẫu nhiên.
Ensemble sử dụng hai loại phương pháp:
Đóng gói (Bagging)**: Tạo một tập hợp đào tạo con khác biệt so với dữ liệu đào tạo mẫu, có thay thế và kết quả cuối cùng dựa trên biểu quyết đa số Ví dụ: Rừng ngẫu nhiên.
➢ Boosting - Nó kết hợp những người học yếu thành những người học mạnh bằng cách tạo các mô hình tuần tự sao cho mô hình cuối cùng có độ chính xác cao nhất
Ví dụ: ADA BOOST, XG BOOST
Rừng ngẫu nhiên hoạt động theo nguyên tắc Bagging (đóng gói) Bagging, còn được gọi là tập hợp bootstrap, là kỹ thuật tập hợp được rừng ngẫu nhiên sử dụng Đóng gói chọn một mẫu ngẫu nhiên/tập hợp con ngẫu nhiên từ toàn bộ tập dữ liệu Do đó, mỗi mô hình được tạo từ các mẫu (Mẫu Bootstrap) do dữ liệu gốc cung cấp với sự thay thế được gọi là lấy mẫu hàng Bước lấy mẫu hàng có thay thế này được gọi là bootstrap Bây giờ mỗi mô hình được đào tạo độc lập, tạo ra kết quả Kết quả cuối cùng dựa trên biểu quyết đa số sau khi kết hợp kết quả của tất cả các mô hình Bước này liên quan đến việc kết hợp tất cả các kết quả và tạo đầu ra dựa trên biểu quyết đa số, được gọi là aggregation
Boosting (tăng cường) là một trong những kỹ thuật sử dụng khái niệm học tập đồng bộ Thuật toán tăng cường kết hợp nhiều mô hình đơn giản (còn được gọi là trình học yếu hoặc công cụ ước tính cơ sở) để tạo ra kết quả cuối cùng Nó được thực hiện bằng cách xây dựng một mô hình bằng cách sử dụng các mô hình yếu theo chuỗi Có một số thuật toán tăng cường; AdaBoost là thuật toán tăng cường thực sự thành công đầu tiên được phát triển cho mục đích phân loại nhị phân AdaBoost là tên viết tắt của Adaptive Boosting và là một kỹ thuật tăng cường phổ biến kết hợp nhiều “bộ phân loại yếu” thành một “bộ phân loại mạnh” duy nhất Có các kỹ thuật Tăng cường khác Để biết thêm, bạn có thể truy cập
Thuật toán rừng ngẫu nhiên hoạt động theo các bước sau:
• Chuẩn bị tập dữ liệu huấn luyện: Thuật toán yêu cầu một tập dữ liệu huấn luyện được gắn nhãn, trong đó mỗi mẫu có các đặc trưng (biến đầu vào) và một nhãn (biến đầu ra)
• Xây dựng rừng cây quyết định: Thuật toán tạo ra một rừng gồm nhiều cây quyết định độc lập Số cây được xác định trước và là một siêu tham số của thuật toán Mỗi cây được huấn luyện trên một tập con của dữ liệu huấn luyện thông qua
Trong quá trình đóng gói (bagging), huấn luyện nên nhiều mô hình quyết định bằng cách chọn ngẫu nhiên các tập hợp dữ liệu huấn luyện và các tập hợp đặc trưng Mỗi mô hình này được xây dựng bằng cách sử dụng một phần dữ liệu huấn luyện được lấy mẫu ngẫu nhiên (mẫu bootstrap) và một tập hợp các đặc trưng ngẫu nhiên (phương pháp random subspace).
Mỗi cây trong rừng cây quyết định được huấn luyện tuần tự theo nguyên tắc chia tách dữ liệu dựa trên các đặc trưng để tạo ra các quyết định phân loại hoặc hồi quy Quá trình chia dữ liệu này tiếp tục cho đến khi đạt được các điều kiện dừng xác định trước, chẳng hạn như đạt đến độ sâu tối đa của cây hoặc không thể chia dữ liệu thêm nữa do không tìm thấy các đặc trưng phân chia phù hợp.
• Dự đoán: Sau khi rừng cây quyết định được xây dựng, thuật toán có thể dùng để dự đoán nhãn (phân loại) hoặc giá trị (hồi quy) cho các mẫu mới Đối với phân loại, thuật toán sử dụng phương pháp biểu quyết đa số trên các cây trong rừng để xác định nhãn dự đoán Đối với hồi quy, thuật toán tính trung bình các giá trị dự đoán từ các cây để đưa ra kết quả cuối cùng
• Đánh giá và tinh chỉnh: Kết quả dự đoán được đánh giá bằng các phép đo độ chính xác (cho phân loại) hoặc độ sai số (cho hồi quy) Nếu kết quả chưa đạt yêu cầu, có thể tinh chỉnh các siêu tham số của thuật toán như số cây trong rừng, độ sâu của cây, hay các phương pháp chia dữ liệu để cải thiện hiệu suất
4.3.2 Sự khác biệt giữa Decision Tree và Random Forest
Decision Tree (Cây quyết định) Random Forest (Rừng ngẫu nhiên)
Thường gặp vấn đề overfitting nếu không kiểm soát
Giúp giảm overfitting thông qua việc lấy trung bình/phiếu bầu đa số
Tính toán nhanh hơn Tính toán chậm hơn
Tạo ra các quy tắc dự đoán dựa trên các đặc trưng
Ngẫu nhiên chọn quan sát, xây dựng cây quyết định và lấy trung bình kết quả
Các cây riêng lẻ có thể thiếu sự đa dạng
Sự đa dạng của các cây đóng góp vào sự thành công tổng thể
Bảng 4.1: Sự khác biệt giữa Decision Tree và Random Forest [9]
Rừng ngẫu nhiên giải quyết các hạn chế của cây quyết định bằng cách tạo ra một tập hợp các cây đa dạng và kết hợp kết quả của chúng Điều này cải thiện tính mạnh mẽ
27 và độ chính xác của thuật toán, làm cho nó trở thành lựa chọn phổ biến trong các nhiệm vụ học máy.
Ứng dụng Random Forest vào dự báo
4.4.1 Ý tưởng của phương pháp Ý tưởng của phương pháp rừng ngẫu nhiên là kết hợp dự đoán của nhiều cây quyết định độc lập để tạo ra một dự đoán cuối cùng Mỗi cây quyết định được xây dựng bằng cách sử dụng một tập dữ liệu con ngẫu nhiên từ tập dữ liệu huấn luyện Các cây này được xây dựng độc lập lẫn nhau, có thể sử dụng các phương pháp như bootstrap hoặc lấy mẫu hàng để tạo ra sự đa dạng
4.4.2 Thiết lập dữ liệu để dùng huấn luyện, thử nghiệm a Trường hợp gặp phải sau khi huấn luyện (Overfiting và Underfiting)
Mô hình sau khi huấn luyện có thể không như mong muốn khi dự đoán với một tập dữ liệu mới Nguyên nhân này xảy ra khi chúng ta chưa khái quát hóa được với toàn bộ tập dữ liệu mà mình đưa vào, bởi vì tập dữ liệu chúng ta đưa vào chưa phải là tập dữ liệu đại diện cho toàn bộ tập dữ liệu, ngoài ra còn các dữ liệu bị nhiễu hay không có giá trị cho mô hình Thường mọi người sẽ chia làm hai nguyên nhân chính đó là Overfiting và Underfiting
Overfitting xảy ra khi mô hình học quá khớp với tập dữ liệu huấn luyện, nhưng lại không thể khái quát hóa hiệu quả cho các tập dữ liệu mới Nguyên nhân có thể do lượng dữ liệu không đủ để mô hình đánh giá chính xác dữ liệu mới hoặc do mô hình quá phức tạp, dẫn đến việc thực hiện các dự đoán kém chính xác khi tiếp xúc với dữ liệu mà nó chưa từng thấy trước đó.
Mô hình là thiếu khớp (underfitting) khi chưa thể thích ứng với toàn bộ dữ liệu huấn luyện và dự đoán trên dữ liệu mới Điều này thường xảy ra vì độ phức tạp của mô hình còn hạn chế, chưa đủ để xử lý tổng quát bài toán.
Nói chung cả hai hiện tượng trên đều có ảnh hưởng đến mô hình chúng ta xây dựng và dẫn đến việc mô hình dự đoán cho kết quả không chính xác Hiện tượng trong hiện nay đa số mọi người khi đánh giá bằng mô hình học máy gặp phải đó là Overfiting,
28 nó thực sự là vấn đề quan trọng bởi vì nó cho ra kết quả thực khác biệt với việc chúng ta đánh giá độ chính xác của tổng thể Chính vì điều đó để tránh xảy ra hiện tượng trên, ta có giải pháp là sử dụng hai kỹ thuật quan trọng trong việc đánh giá mô hình học máy là Validation và Cross-validation b) Tập huấn luyện (Training dataset)
Tập dữ liệu huấn liệu (Training dataset) là một tập dữ liệu dùng để huấn luyện cho mô hình của thuật toán học máy Các thuật toán học máy sẽ học các mô hình từ tập dữ liệu training này Tùy vào các thuật toán và mô hình sử dụng khác nhau việc học cũng sẽ khác nhau Ví dụ khi sử dụng mô hình hồi quy tuyến tính (Linear Regresion), các điểm trong tập dữ liệu được sử dụng để tìm ra hàm số hay đường phù hợp nhất mô tả quan hệ giữa đầu ra và đầu vào của tập dữ liệu huấn luyện bằng cách sử dụng một số phương pháp tối ưu hoặc các thuật toán tối ưu gần đúng như gradient descent hay stochastic gradient descent Trong thuật toán KNN, các điểm trong tập huấn luyện là những điểm có thể là hàng xóm của nhau (nghĩa là gần nhau) được học theo các phương pháp tham lam Trong thực tế, tập dữ liệu huấn luyện thương bao gồm các cặp vector dầu vào và đầu ra tương ứng, trong đó vector đầu ra thường được gọi là nhãn Các thuật toán nói chung sẽ tìm ra cách tối ưu sai số dự đoán trên tập huấn luyện đến mức tốt nhất c) Tập kiểm thử (Testing dataset)
Mục tiêu của machine learning là tạo ra những mô hình có khả năng dự đoán tổng quát hóa để dự đoán tốt trên cả dữ liệu không nằm trong tập huấn luyện Do đó để biết một thuật toán có tố hay không thì sau khi huấn luyện, mô hình sẽ được đánh giá hiệu quả thông qua bộ dữ liệu kiểm thử Bộ dữ liệu này được sử dụng để tính độ chính xác hoặc sai số của mô hình dự đoán đã được huấn luyện Chúng ta biết kết quả đầu ra hay còn gọi là nhãn của mọi điểm dữ liệu Nhưng để đánh giá chính xác hơn chúng ta sẽ giả vờ không biết và đưa các giá trị đầu vào của tập vào mô hình dự đoán để nhận kết quả đầu ra Sau đó chúng ta có thể nhìn vào kết quả dự đoán vừa rồi và các nhãn thực sự để so sánh và xem liệu rằng các mô hình có dự đoán đúng hay không Việc tính tổng trung bình của các lỗi này, từ đó có thể tính toán được lỗi dự đoán trên cả tập kiểm thử
Các lỗi dự đoán được đánh giá thông qua nhiều chỉ số khác nhau như RMSE, MAE,v.v… Một điều lưu ý là quá trình huấn luyện và kiểm thử là hoàn toàn khác biệt nhau
Tập dữ liệu kiểm thử được cho là đạt kết quả tốt khi một tập dữ liệu độc lập với tập dữ liệu huấn luyện (Tập này không tham gia vào quá trình huấn luyện) nhưng nó tuân thủ theo cùng một phân phối xác xuất Điều này giúp cho việc đánh giá không thiên vị Nếu một mô hình phù hợp với tập training nhưng lại sai khác trên tập testing thì rất có khả năng bị overfiting Ngược lại sai số không quá nhiều thì thường chúng là một mô hình phù hợp
Hình 4.4: Lỗi dự đoán trên tập training và tập testing [10]
Nhìn vào hình trên, ta có thể thấy với mô hình xanh lá, lỗi dự đoán trên tập train và test là không chênh lệch nhau quá nhiều, ngược lại với mô hình màu cam, lỗi dự đoán trên cả hai tập chênh lệch nhau lớn hơn nhiều Vì thế ta có thể dự đoán mô hình màu cam nhiều khả năng bị overfiting hơn mô hình xanh lá d) Tập Validation
Chúng ta đã quen với việc khi chia một tập dữ liệu ta thường chia thành hai phần như giới thiệu ở trên đó là: tập training data và tập testing data Nhưng với việc chia tập dữ liệu thành hai phần thì làm cách nào để chúng ta biết được chất lượng của mô hình với các dữ liệu chưa được nhìn thấy bao giờ
Phương pháp đơn giản nhất là trích từ tập training data ra một tập con nhỏ và thực hiện đánh giá mô hình trên tập con này, và tập con nhỏ được trích ra từ tập training được gọi là validation set Lúc này tập training set là phần còn lại của tập training ban đầu sau khi đã trích ra một phần làm tập validation Train error được tính dựa trên training set mới này, tương tự cho validation error (nghĩa là được tính trên tập validation để ra lỗi)
Để tìm ra mô hình tối ưu, cần cân bằng cả train error và validation error ở mức độ nhỏ Phương pháp này áp dụng được cho nhiều mô hình để tìm ra mô hình nào có validation error nhỏ nhất Bắt đầu với các mô hình đơn giản và tăng dần độ phức tạp Ngay khi validation error tăng lên, hãy chọn mô hình trước đó Tuy nhiên, lưu ý rằng khi độ phức tạp của mô hình tăng, train error có xu hướng giảm.
Ta lấy một ví dụ để hình dung rõ hơn về những nhận định trên với bậc của đa thức tăng từ 1 đến 8 Tập validation bao gồm 10 điểm được lấy ra từ tập training ban đầu.
Mục đích của từng tập dữ liệu trong cả mô hình
Hình 4.5: Lựa chọn mô hình dựa trên tập Validation [10]
Chúng ta hãy nhìn vào đường màu xanh và màu đỏ tương ứng với train error và validation error Khi bậc của đa thức tăng lên train error có xu hướng giảm dần vì đa thức càng cao thì các dữ liệu sẽ càng khớp với nhau hơn Quan sát đường màu đỏ (validation error) ta có thể thấy khi bậc đa thức là 3 hoặc 4 thì validation error thấp sau đó tăng dần, vậy ta có thể phán đoán rằng bậc cần chọn là 3 hoặc 4 NHìn vào đường màu xanh lá cây (test error) tại bậc 3 hoặc 4 cũng cho kết quả đạt giá trị nhỏ nhất sau đó tăng lên Vậy cách làm này đã thật sự đạt hiệu quả
EXTREME GRADIENT BOOSTING
Khái niệm tổng quát về mô hình eXtreme Gradient Boosting (Xgboost) 32 5.2 Ưu điểm của XGBoost
XGBoost ban đầu được phát triển như một dự án nghiên cứu bởi Tianqi Chen trong nhóm Cộng đồng máy học phân tán (sâu) (DMLC) Ban đầu, nó là một ứng dụng có thể được định cấu hình bằng tệp cấu hình libsvm XGBoost trở nên nổi tiếng trong cộng đồng học máy sau khi được sử dụng trong giải pháp chiến thắng của Thử thách Học máy Higgs
Sau đó, các gói Python và R đã được phát triển và hiện tại XGBoost có các triển khai cho Java, Scala, Julia, Perl và các ngôn ngữ khác Điều này đã thu hút sự quan tâm từ nhiều nhà phát triển và làm cho XGBoost trở nên phổ biến trong cộng đồng Kaggle, nơi nó đã được sử dụng trong nhiều cuộc thi
XGBoost đã được tích hợp với các gói phổ biến khác nhằm tạo sự thuận tiện cho người dùng trong các cộng đồng tương ứng Nó đã được tích hợp với scikit-learn cho người dùng Python và với gói dấu nháy cho người dùng R Ngoài ra, XGBoost có thể tích hợp vào các framework xử lý dữ liệu như Apache Spark, Apache Hadoop và Apache Flink thông qua việc sử dụng Rabit trừu tượng và XGBoost4J Ngoài ra, XGBoost cũng có sẵn trên OpenCL cho FPGA
Mặc dù mô hình XGBoost thường đạt được độ chính xác cao hơn so với một cây quyết định đơn lẻ, nhưng nó đánh đổi khả năng diễn giải nội tại của cây quyết định Việc theo dõi quá trình ra quyết định của một cây quyết định là đơn giản và dễ hiểu, nhưng theo dõi quá trình của hàng trăm hoặc hàng nghìn cây quyết định là phức tạp hơn nhiều Để kết hợp cả hiệu suất và khả năng diễn giải, đã có một số kỹ thuật nén mô hình cho phép chuyển đổi XGBoost thành một cây quyết định duy nhất xấp xỉ với chức năng quyết định tương tự
XGBoost có một số tính năng nổi bật giúp nó khác biệt và hiệu quả hơn so với các thuật toán gradient boosting khác:
✓ Hình phạt thông minh của cây: XGBoost sử dụng hình phạt thông minh để điều chỉnh việc tạo cây quyết định, giúp tránh overfitting và tăng tính tổng quát của mô hình
✓ Một sự thu hẹp tỷ lệ của các nút lá: XGBoost áp dụng một quá trình gọi là thu hẹp tỷ lệ (shrinkage) để giảm kích thước của các nút lá, từ đó cải thiện khả năng tổng quát hóa của mô hình
✓ Tăng tốc Newton: XGBoost sử dụng phương pháp tăng tốc Newton để tối ưu hóa hàm mất mát, giúp tăng tốc quá trình huấn luyện và cải thiện độ chính xác của mô hình
✓ Tham số ngẫu nhiên bổ sung: XGBoost cho phép sử dụng thêm các tham số ngẫu nhiên để tạo ra sự đa dạng trong quá trình xây dựng cây quyết định, giúp tăng tính ngẫu nhiên và khả năng tổng quát của mô hình
XGBoost có thể được triển khai trên nhiều hệ thống, bao gồm hệ thống đơn lẻ, phân tán và tính toán ngoài lõi Điều này cho phép tăng tốc đáng kể tốc độ tính toán và xử lý dữ liệu dung lượng lớn.
✓ Lựa chọn tính năng tự động: XGBoost cung cấp khả năng lựa chọn tính năng tự động, cho phép mô hình tự động chọn ra các tính năng quan trọng trong quá trình huấn luyện
✓ Phác thảo lượng tử có trọng số hợp lý: XGBoost sử dụng phác thảo lượng tử với trọng số hợp lý để tính toán hiệu quả các cây quyết định và giảm độ phức tạp tính toán
✓ Tăng cường cấu trúc cây song song với độ thưa thớt: XGBoost có thể tăng cường cấu trúc cây quyết định song song với độ thưa thớt, giúp tăng tốc độ tính toán và giảm bộ nhớ sử dụng
✓ Cấu trúc khối có thể lưu trong bộ nhớ cache hiệu quả: XGBoost sử dụng cấu trúc khối để lưu trữ cây quyết định trong bộ nhớ cache, giúp tăng tốc quá trình huấn luyện và dự đoán
Những tính năng này khiến XGBoost trở thành một thuật toán mạnh mẽ và linh hoạt, có khả năng xử lý dữ liệu lớn và đạt được độ chính xác cao trong các bài toán phân loại và hồi quy.
Nhược điểm của XGBoost
✓ Những thách thức về giải thích và trực quan hóa
✓ Nếu các biến không được đặt phù hợp, việc trang bị quá mức là không thể tránh khỏi
✓ Khó điều chỉnh hơn do có quá nhiều siêu đường kính.
Extreme Gradient Boosting (XGBoost)
XGBoost hoạt động như Newton-Raphson trong không gian chức năng không giống như tăng cường độ dốc hoạt động như giảm dần độ dốc trong không gian chức
35 năng, xấp xỉ Taylor bậc hai được sử dụng trong hàm mất mát để tạo kết nối với phương pháp Newton Raphson
Một thuật toán XGBoost chung không chính quy là: Đầu vào:
• Tập huấn luyện hàm mất khả vi và một số người học cơ sở yếu M và một tỷ lệ học tập α
• Khởi tạo model với giá trị không đổi:
• Phù hợp với một người học cơ sở (hoặc người học yếu, ví dụ như cây) bằng cách sử dụng tập huấn luyện bằng cách giải bài toán:
5.4.2 Quy trình hoạt động XGBoost
Hình 5.2: Quy trình hoạt động của XGBoost [13]
XGBoost là một thuật toán tăng cường độ dốc (gradient boosting) mạnh mẽ và hiệu quả trong học máy Quy trình hoạt động của XGBoost bao gồm các bước sau:
• Khởi tạo mô hình: Ban đầu, mô hình XGBoost được khởi tạo với giá trị dự đoán ban đầu Thông thường, giá trị này được lấy là trung bình của tất cả các nhãn huấn luyện
• Tính toán đạo hàm và đạo hàm bậc hai: Tiếp theo, XGBoost tính toán đạo hàm (gradient) và đạo hàm bậc hai (hessian) của hàm mất mát (loss function) đối với các điểm dữ liệu trong tập huấn luyện Đạo hàm đo lường độ lớn và hướng của thay đổi hàm mất mát, trong khi đạo hàm bậc hai đo lường độ cong của hàm mất mát
• Xây dựng cây quyết định: XGBoost sử dụng các cây quyết định để tạo ra các mô hình tăng cường Mỗi cây quyết định được xây dựng bằng cách chia tập huấn luyện thành các tập con, sao cho mỗi tập con có dự đoán tốt hơn so với dự đoán trước đó Quá trình xây dựng cây này tiếp tục cho đến khi đạt được số lượng cây quyết định đã được xác định trước
• Tìm kiếm các cây tốt nhất: XGBoost sử dụng thuật toán tối ưu hóa để tìm kiếm cây quyết định tốt nhất cho mỗi bước tăng cường Thuật toán này sẽ tìm kiếm các cây có đạo hàm tốt nhất và đạt được giá trị mất mát thấp nhất Quá trình tối ưu hóa này sẽ cải thiện dần dần dự đoán của mô hình
• Cập nhật mô hình: Sau khi tìm kiếm cây tốt nhất, mô hình XGBoost sẽ cập nhật giá trị dự đoán bằng cách thêm dự đoán của cây mới vào dự đoán trước đó Quá trình cập nhật này giúp mô hình ngày càng cải thiện và tiếp tục học từ dữ liệu
Kiểm tra điều kiện dừng là một phần quan trọng trong thuật toán XGBoost XGBoost kiểm tra các tiêu chuẩn dừng để xác định liệu quá trình huấn luyện có nên tiếp tục hay không Các tiêu chuẩn này có thể bao gồm số lượng cây tăng cường đã đạt được, độ lớn của sự thay đổi giữa các bước hoặc giá trị mất mát không còn được cải thiện Bằng cách kiểm tra các tiêu chuẩn này, XGBoost có thể tránh tình trạng quá khớp và đảm bảo rằng quá trình huấn luyện dừng lại khi mô hình đã đạt đến hiệu suất tối ưu.
• Đưa ra dự đoán: Sau khi quá trình huấn luyện hoàn tất, mô hình XGBoost sẽ được sử dụng để đưa ra dự đoán cho các điểm dữ liệu mới Dự đoán được tính bằng cách kết hợp dự đoán của tất cả các cây quyết định trong mô hình [14]
Ứng dụng của XGBoost
Thuật toán này có thể được áp dụng cho bất kỳ vấn đề nào liên quan đến phân loại, đặc biệt nếu có nhiều biến liên quan Kỹ thuật tính năng là bắt buộc nếu có nhiều giá trị dữ liệu không đầy đủ hoặc bị thiếu hoặc nếu dữ liệu chứa các giá trị ngoại lai Nó có thể là một giải pháp thay thế có thể chấp nhận được đối với quy trình kỹ thuật tính năng Thuật toán này phải được ghi nhớ trong khi cố gắng giải quyết bất kỳ nhiệm vụ phân loại nào vì nó luôn chiến thắng hầu hết các thử thách
CÀI ĐẶT DEMO VÀ THỰC NGHIỆM ĐÁNH GIÁ MÔ HÌNH
Môi trường và dữ liệu thực nghiệm
Chúng tôi tiến hành thực nghiệm và đánh giá các mô hình trên máy tính Acer Nitro
5, AMD Ryzen 5 PRO 5650U with Radeon Graphics 2.30 GHz, 32GB RAM, hệ điều hành Windows 11 Sử dụng thư viện streamlit để tạo giao diện cho chương trình và ngôn ngữ chúng tôi chọn để thực nghiệm chạy chương trình là Python version: 3.10.7.
Tiền xử lý dữ liệu
6.2.1 Thống kê cơ bản tập dữ liệu
Thông qua việc quan sát các thông số toán học của các thuộc tính để cân nhắc việc chuẩn hóa dữ liệu cho các thuộc tính
Features name count mean std min 25% 50% 75% max
Marital status 4424 1.18 0.61 1.00 1.00 1.00 1.00 6.00 Application mode 4424 6.89 5.30 1.00 1.00 8.00 12.00 18.00 Application order 4424 1.73 1.31 0.00 1.00 1.00 2.00 9.00 Course 4424 9.90 4.33 1.00 6.00 10.00 13.00 17.00 Daytime/evening attendance 4424 0.89 0.31 0.00 1.00 1.00 1.00 1.00 Previous qualification 4424 2.53 3.96 1.00 1.00 1.00 1.00 17.00 Nacionality 4424 1.25 1.75 1.00 1.00 1.00 1.00 21.00 Mother's qualification 4424 12.32 9.03 1.00 2.00 13.00 22.00 29.00 Father's qualification 4424 16.46 11.04 1.00 3.00 14.00 27.00 34.00 Mother's occupation 4424 7.32 4.00 1.00 5.00 6.00 10.00 32.00
Father's occupation 4424 7.82 4.86 1.00 5.00 8.00 10.00 46.00 Displaced 4424 0.55 0.50 0.00 0.00 1.00 1.00 1.00 Educational special needs 4424 0.01 0.11 0.00 0.00 0.00 0.00 1.00
Tuition fees up to date 4424 0.88 0.32 0.00 1.00 1.00 1.00 1.00
Scholarship holder 4424 0.25 0.43 0.00 0.00 0.00 0.00 1.00 Age at enrollment 4424 23.27 7.59 17.00 19.00 20.00 25.00 70.00 International 4424 0.02 0.16 0.00 0.00 0.00 0.00 1.00 Curricular units 1st sem (credited) 4424 0.71 2.36 0.00 0.00 0.00 0.00 20.00 Curricular units 1st sem (enrolled) 4424 6.27 2.48 0.00 5.00 6.00 7.00 26.00 Curricular units 1st sem (evaluations) 4424 8.30 4.18 0.00 6.00 8.00 10.00 45.00 Curricular units 1st sem (approved) 4424 4.71 3.09 0.00 3.00 5.00 6.00 26.00 Curricular units 1st sem (grade) 4424 10.64 4.84 0.00 11.00 12.29 13.40 18.88 Curricular units 1st sem (without evaluations) 4424 0.14 0.69 0.00 0.00 0.00 0.00 12.00 Curricular units 2nd sem (credited) 4424 0.54 1.92 0.00 0.00 0.00 0.00 19.00 Curricular units 2nd sem (enrolled) 4424 6.23 2.20 0.00 5.00 6.00 7.00 23.00
Curricular units 2nd sem (evaluations) 4424 8.06 3.95 0.00 6.00 8.00 10.00 33.00 Curricular units 2nd sem (approved) 4424 4.44 3.01 0.00 2.00 5.00 6.00 20.00 Curricular units 2nd sem (grade) 4424 10.23 5.21 0.00 10.75 12.20 13.33 18.57 Curricular units 2nd sem (without evaluations) 4424 0.15 0.75 0.00 0.00 0.00 0.00 12.00 Unemployment rate 4424 11.57 2.66 7.60 9.40 11.10 13.90 16.20 Inflation rate 4424 1.23 1.38 -0.80 0.30 1.40 2.60 3.70
Bảng 6.1: Thống kê cơ bản tập dữ liệu
Chúng tôi nhận thấy rằng không có sự chênh lệch giá trị quá đáng kể giữa các thuộc tính nên không cần tiến hành chuẩn hóa dữ liệu
6.2.2 Mối tương quan giữa các thuộc tính với biến mục tiêu
Khi hai biến có độ tương quan cao, chúng thường có xu hướng biến động cùng nhau Điều này có thể khiến mô hình gặp khó khăn trong việc phân biệt tác động của từng biến lên biến mục tiêu Hậu quả là mô hình có thể không xác định được tác động riêng lẻ của các biến, dẫn đến dự đoán không chính xác.
Ngoài ra, sự hiện diện của các biến có độ tương quan cao có thể dẫn đến hiện tượng quá khớp (overfitting) trong mô hình Quá khớp xảy ra khi mô hình học rất tốt trên dữ liệu huấn luyện, nhưng không thể tổng quát hoá và dự đoán tốt trên dữ liệu mới Điều này có thể làm giảm khả năng dự đoán chính xác của mô hình trên dữ liệu thực tế
Bằng cách loại bỏ các biến có độ tương quan cao với biến mục tiêu, chúng ta giảm bớt trùng lắp thông tin trong dữ liệu đầu vào, tạo ra mô hình đơn giản hơn Từ đó, mô hình có khả năng diễn giải và dự đoán được cải thiện.
42 đó, việc giảm số lượng biến cũng giúp tiết kiệm thời gian và tài nguyên tính toán khi huấn luyện và triển khai mô hình
Hình 6.1: Mối tương quan giữa các thuộc tính với biến mục tiêu
Chúng tôi nhận thấy trong tập dữ liệu không có sự tương quan quá đáng kể giữa các thuộc tính và biến mục tiêu Vì vậy chúng tôi không tiến hàng xem xét để loại bỏ các thuộc tính có độ tương quan cao
6.2.3 Phân phối lớp trong biến mục tiêu
Hình 6.2: Số lượng của biến mục tiêu theo phân loại
Hình 6.3: Tỷ lệ của biến mục tiêu theo phân loại
Để giải quyết tình trạng mất cân bằng giữa các lớp trong biến đích, cần cân bằng biến đích cho các mô hình dự đoán bị ảnh hưởng bởi tình trạng mất cân bằng này.
6.2.4 Phân chia tập dữ liệu
Với mỗi tập dữ liệu, chúng tôi sẽ chia tập dữ liệu thành 2 phần lớn Cụ thể chúng tôi sẽ chia 80 % cho tập train và 20 % để sử dụng cho việc test
Trong mỗi mô hình dự đoán chúng tôi thực hiện 5-fold cross validation để đánh giá mô hình.
Cài đặt chương trình
6.3.1 Cài đặt các thư viện cần thiết và import vào chương trình from sklearn.ensemble import RandomForestClassifier from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import GridSearchCV from xgboost import XGBClassifier from lightgbm import LGBMClassifier from sklearn.metrics import accuracy_score from joblib import dump, load import multiprocessing from sklearn.model_selection import train_test_split import xgboost as xgb import matplotlib.pyplot as plt from build_model import RandomForestModel, DecisionTreeModel,
XGBoostModel, LightGBM_Model from sklearn.metrics import f1_score, accuracy_score from streamlit_option_menu import option_menu from sklearn.tree import plot_tree, export_text, export_graphviz import altair as alt from PIL import Image import base64 import io import graphviz import pandas as pd import numpy as np import seaborn as sns import streamlit as st
Triển khai chương trình bằng cách chạy câu lệnh với cú pháp : streamlit run main.py
Sau khi chương trình triển khai hoàn tất, ta xem được kết quả trên trình duyệt:
Nhận xét kết quả từ các mô hình
Hình 4.5: Kết quả dự đoán của các mô hình
Với kết quả thực nghiệm thu được qua quá trình huấn luyện mô hình cho thấy mô hình Random Forest cho hiệu suất tốt nhất với chỉ số F1-score là 73.7% và Accuracy là 80.7%
6.4.2 Các thuộc tính quan trọng của mô hình
Các thuộc tính quan trọng trong mô hình dự đoán có ý nghĩa đặc biệt vì chúng đóng vai trò quan trọng trong việc ảnh hưởng đến kết quả dự đoán của mô hình Các thuộc tính này cung cấp thông tin về sự tương quan và tác động của chúng đến khả năng sinh viên bỏ học hoặc thành công trong quản lý đào tạo
Hình 6.6: Các thuộc tính quan trọng của mô hình Decision Tree
Hình 6.7: Các thuộc tính quan trọng của mô hình Random Forest
Hình 6.8: Các thuộc tính quan trọng của mô hình eXtreme Gradient Boosting
6.4.3 Cây quyết định từ các mô hình
Cây quyết định giúp hiểu quá trình ra quyết định của mô hình dự đoán một cách rõ ràng và dễ hiểu Bằng cách trực quan hóa cây, chúng ta có thể quan sát cách mô hình đưa ra các quyết định dựa trên các thuộc tính Mỗi nút của cây đại diện cho một thuộc tính và các nhánh kết nối các giá trị của thuộc tính đó Điều này giúp chúng ta nhìn thấy quy trình phân loại và dự đoán dựa trên các điều kiện và luồng quyết định
Cây quyết định cũng cho phép chúng ta xác định các thuộc tính quan trọng và yếu tố quyết định Chúng giúp chúng ta nhận biết những thuộc tính có ảnh hưởng lớn nhất đến kết quả dự đoán Bằng cách quan sát các nút và nhánh của cây, chúng ta có thể hiểu rõ hơn về tác động và vai trò của từng thuộc tính trong quyết định
Một lợi ích khác của cây quyết định là khả năng giải thích kết quả Bằng cách theo dõi đường đi từ gốc cây đến các nhánh cuối cùng, chúng ta có thể giải thích lý do mô hình đưa ra một quyết định cụ thể và những thuộc tính nào đóng vai trò quan trọng trong việc dự đoán Điều này giúp chúng ta có thể chứng minh và giải thích quyết định dựa trên mô hình
Cuối cùng, cây quyết định có thể được sử dụng để tạo ra quy tắc và phân loại dựa trên các luật và điều kiện đã được học từ dữ liệu Bằng cách sử dụng cây quyết định, chúng ta có thể phân loại các mẫu dữ liệu mới dựa trên luồng quyết định đã học từ mô hình
Hình 6.9: Cây quyết định trong mô hình Decision Tree
Hình 6.10: Cây quyết định trong mô hình Random Forest
Hình 6.11: Cây quyết định trong mô hình eXtreme Gradient Boosting