1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tư vấn chọn ngành học tại học viện cntt niit ict hn sử dụng phương pháp học máy

92 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tư Vấn Chọn Ngành Học Tại Học Viện CNTT NIIT-ICT HN Sử Dụng Phương Pháp Học Máy
Tác giả Nguyễn Hùng Cường
Người hướng dẫn PGS.TS. Nguyễn Quang Hoan
Trường học Trường Đại Học Mở Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Luận Văn Thạc Sĩ
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 92
Dung lượng 5,89 MB

Cấu trúc

  • 1. Lý do chọn đề tài (13)
  • 2. Mục tiêu, đối tượng và phạm vi nghiên cứu (0)
  • 3. Bố cục luận văn (14)
  • CHƯƠNG 1. PHƯƠNG PHÁP PHÂN LỚP DỮ LIỆU 1.1. Phân lớp dữ liệu (15)
    • 1.2. Các phương pháp ứng dụng trong phân lớp dữ liệu (17)
    • 1.3. Một số vấn đề liên quan đến phân lớp dữ liệu (18)
      • 1.3.1. Chuẩn bị dữ liệu cho việc phân lớp (18)
      • 1.3.2. Một số phương pháp đánh giá độ chính xác mô hình phân lớp (18)
    • 1.4. Sử dụng cây quyết định trong phân lớp dữ liệu (20)
      • 1.4.1. Các giai đoạn trong quá trình xây dựng cây quyết định (21)
      • 1.4.2. Các đặc trưng trong phân lớp dữ liệu sử dụng cây quyết định (21)
        • 1.4.2.1. Tránh hiện tượng overfitting (0)
        • 1.4.2.2. Thao tác với thuộc tính liên tục ............ Error! Bookmark not defined. 1.5. Các nghiên cứu giải thuật hiện nay (0)
    • 1.6. Phát biểu bài toán của luận văn (22)
    • 1.7. Kết luận chương 1 (22)
  • CHƯƠNG 2. GIẢI THUẬT C4.5 VÀ GIẢI THUẬT RANDOM FOREST 2.1. Giải thuật C4.5 (23)
    • 2.1.1. Tổng quan (23)
    • 2.1.3. C4.5 chọn thuộc tính phân loại tốt nhất (23)
    • 2.1.4. Xử lý những giá trị thiếu trong C4.5 (24)
    • 2.2. Ưu nhược điểm của cây quyết định trong phân lớp dữ liệu (25)
      • 2.2.1. Ưu điểm của cây quyết định (25)
      • 2.2.2. Nhược điểm của cây quyết định (25)
      • 2.3.1. Giới thiệu tổng quan về giải thuật Random Forest (26)
      • 2.3.2. Các giả định đối với Random Forest . Error! Bookmark not defined. 2.3.3. Lý do sử dụng Random Forest (0)
      • 2.3.4. Cơ chế làm việc của giải thuật Random Forest (0)
      • 2.3.5. Những đặc điểm thiết yếu của giải thuật Random Forest (0)
      • 2.3.6. Ứng dụng của giải thuật Random Forest (0)
      • 2.3.7. Khi nào không sử dụng Random Forest (0)
      • 2.3.8. Ưu điểm của giải thuật Random Forest ........... Error! Bookmark not defined. 2.3.9. Nhược điểm của giải thuật Random Forest ..... Error! Bookmark not defined. 2.3.10. Các hyperparameter quan trọng (0)
    • 2.4. Đánh giá độ hiệu quả của thuật giải dùng ma trận nhầm lẫn (32)
    • 2.5. Kết luận chương 2 (34)
  • CHƯƠNG 3. PHÂN LỚP DỮ LIỆU HỌC VIÊN PHỤC VỤ CHO CÔNG TÁC TƯ VẤN CHỌN NGÀNH HỌC 3.1. Khảo sát và thu thập dữ liệu (35)
    • 3.2. Xử lý dữ liệu (35)
      • 3.2.1. Trích chọn đặc trưng (35)
      • 3.2.2. Chuyển đổi dữ liệu (35)
      • 3.2.3. Làm sạch dữ liệu (37)
      • 3.3.1. Áp dụng giải thuật (39)
      • 3.3.2. Xây dựng cây quyết định (40)
        • 3.3.2.1. Chọn nút gốc (40)
        • 3.3.2.2. Chọn các Node trong cấp 1 (43)
        • 3.3.2.3. Chọn các Node trong cấp 2 (46)
      • 3.3.3. Kết quả của việc áp dụng giải thuật (53)
    • 3.4. Phân lớp học viên sử dụng giải thuật Random Forest (54)
    • 3.5. Giới thiệu một số ngôn ngữ trong khai phá dữ liệu (56)
      • 3.5.1. Giới thiệu về ngôn ngữ R (56)
      • 3.5.2. Giới thiệu về ngôn ngữ Python (56)
      • 3.5.3. Giới thiệu về phần mềm Weka (56)
    • 3.6. Kết quả thực nghiệm (57)
      • 3.6.1. Chạy giải thuật J48 trên ngôn ngữ Weka (57)
      • 3.6.2. Chạy giải thuật Random Forest trên công cụ Weka (60)
    • 3.7 Ứng dụng demo (62)
    • 3.8. Áp dụng kết quả đề tài vào thực tiễn Học viện NIIT-ICT HN (86)
      • 3.8.1. Thực trạng hiện tại (86)
      • 3.8.2. Kết quả sau khi áp dụng kết quả đề tài (86)
    • 3.9. Kết luận chương 3 (86)
  • KẾT LUẬN (14)
  • TÀI LIỆU THAM KHẢO (88)

Nội dung

Bố cục luận văn

Luận văn được chia thành ba chương có nội dung như sau:

Luận văn gồm các phần chính sau:

- Chương 1: Phương pháp phân lớp dữ liệu

- Chương 2: Giải thuật C4.5 và Random Forest

- Chương 3: Phân lớp dữ liệu học viên phục vụ cho công tác tư vấn chọn ngành học tại Học viện đào tạo CNTT NIIT-ICT HN

- Kết luận: Tổng kết các kết quả đã đạt được của luận văn và hướng nghiên cứu tiếp theo

PHƯƠNG PHÁP PHÂN LỚP DỮ LIỆU 1.1 Phân lớp dữ liệu

Các phương pháp ứng dụng trong phân lớp dữ liệu

Dưới đây là một tập hợp các giải thuật phân lớp thông dụng:

Tập dữ liệu kiểm tra

Bộ phân lớp (Mô hình)

Một số vấn đề liên quan đến phân lớp dữ liệu

1.3.1 Chuẩn bị dữ liệu cho việc phân lớp

Trước khi tiến hành phân lớp dữ liệu, bước tiền xử lý dữ liệu (Data Preprocessing) là vô cùng quan trọng Tiền xử lý dữ liệu không chỉ là một công việc bắt buộc mà còn quyết định đến khả năng áp dụng mô hình phân lớp Đây là bước cần thiết để đảm bảo bộ dữ liệu đạt yêu cầu, từ đó nâng cao độ chính xác và hiệu quả của mô hình phân lớp.

Quá trình thực hiện data preprocessing bao gồm các bước sau:

Làm sạch dữ liệu là quá trình điều chỉnh và xử lý các giá trị bị khuyết trong tập dữ liệu, bao gồm việc loại bỏ dữ liệu không chính xác, sai định dạng và không liên quan Các giá trị bị khuyết có thể được thay thế bằng giá trị mode hoặc mean dựa trên thống kê, trong khi dữ liệu số có thể sử dụng giá trị median để thay thế Quá trình này giúp giảm thiểu lỗi và thiếu sót trong dữ liệu, từ đó cải thiện độ chính xác và hiệu quả trong việc xây dựng mô hình phân lớp.

Phân tích sự cần thiết của dữ liệu là bước quan trọng trong việc tối ưu hóa hệ thống phân lớp Cần lọc ra các thuộc tính không liên quan, như màu da, chiều cao và cân nặng của người học, vì chúng không hỗ trợ cho việc tư vấn chọn ngành học Những thuộc tính dư thừa này không chỉ làm giảm hiệu quả mà còn tốn kém tài nguyên xử lý Do đó, việc loại bỏ chúng khỏi tập dữ liệu là cần thiết để cải thiện hiệu suất của hệ thống.

Chuyển đổi dữ liệu là quá trình đơn giản hóa thông tin lên mức cao hơn và dễ hiểu hơn, từ đó giúp nâng cao hiệu suất của các thuật toán.

1.3.2 Một số phương pháp đánh giá độ chính xác mô hình phân lớp Ở đây ta sẽ tìm hiểu hai phương pháp đánh giá phổ biến nhất là holdout và k- fold cross-validation Hai cách thức này đều cho phép tiến hành chia tập đầu vào

Trong phương pháp này, dữ liệu đưa ra được chia một cách ngẫu nhiên thành

2 phần là: tập dữ liệu đào tạo và tập dữ liệu kiểm tra

Hình 1 4 Ước lượng độ chính xác của mô hình phân lớp với phương pháp holdout

Phương pháp k-fold cross-validation

Dữ liệu ban đầu được chia ngẫu nhiên thành k tập con có kích thước tương đương A1, A2,…, Ak Trong mỗi lần thực hiện thứ i, tập A i được sử dụng làm dữ liệu kiểm tra (test data), trong khi các tập còn lại được dùng làm dữ liệu huấn luyện (train data) Cụ thể, ở lần đầu tiên, quá trình phân lớp sẽ diễn ra trên các tập A2, A3,…, Ak, và tập A1 sẽ được dùng để kiểm tra Quá trình này tiếp tục lặp lại với các tập còn lại, đảm bảo mỗi tập đều được sử dụng để kiểm tra một lần.

Tập dữ liệu đào tạo

Tập dữ liệu kiểm tra

Lấy từ bộ phân lớp Ƣớc lƣợng độ chính xác

Hình 1 5 Phương pháp k-fold cross-validation

(Nguồn: https://scikit-learn.org/stable/_images/grid_search_cross_validation.png)

Sử dụng cây quyết định trong phân lớp dữ liệu

Trong nhiều năm qua, đã xuất hiện nhiều mô hình phân lớp dữ liệu như mạng nơ ron, KNN và cây quyết định Trong số đó, cây quyết định nổi bật như một công cụ mạnh mẽ và phổ biến, mang lại nhiều ưu điểm và rất phù hợp cho các bài toán phân lớp dữ liệu.

Một số ưu điểm của cây quyết định:

- Cấu trúc cây đơn giản, dễ hiểu

- Dễ dàng cho các lập trình viên trong việc hiểu, cũng như trực quan hóa cây quyết định

Ví dụ về cây quyết định:

Hình 1 6 Minh hoạ cây quyết định

1.4.1 Các giai đoạn trong quá trình xây dựng cây quyết định

Gồm 2 giai đoạn: phát triển cây và cắt tỉa cây

1.4.2 Các đặc trưng trong phân lớp dữ liệu sử dụng cây quyết định

Overfitting, hay còn gọi là quá khớp dữ liệu, xảy ra khi cây quyết định học quá nhiều đặc trưng riêng của tập dữ liệu đào tạo Điều này dẫn đến việc mô hình đạt độ chính xác cao khi kiểm tra trên chính tập dữ liệu này, nhưng lại có thể cho kết quả thấp hoặc không đạt yêu cầu khi áp dụng cho dữ liệu mới, chưa biết.

Quá vừa dữ liệu là một vấn đề nghiêm trọng trong quá trình phân lớp dựa trên cây quyết định, đặc biệt khi tập đào tạo có ít dữ liệu hoặc dữ liệu bị lỗi Để tránh hiện tượng này, có hai phương pháp hiệu quả có thể áp dụng.

Dừng cây quyết định sớm hơn so với bình thường là một phương pháp quan trọng trong việc quản lý sự phát triển của cây trồng Để áp dụng phương pháp này hiệu quả, việc ước lượng chính xác thời điểm dừng phát triển của cây là rất cần thiết.

Kỹ thuật cắt tỉa cây quyết định, hay còn gọi là pruning, cho phép cây phát triển và xử lý dữ liệu quá mức trước khi tiến hành cắt tỉa.

Nghành = Kiểm thử Nghành = Lập trình

Phương pháp thứ nhất gặp khó khăn trong việc xác định thời điểm dừng phát triển cây, trong khi phương pháp thứ hai cho thấy kết quả thực nghiệm thành công hơn Ngoài ra, kỹ thuật prunning còn giúp cải thiện độ chính xác của mô hình phân lớp.

1.5 Các nghiên cứu giải thuật hiện nay

Trong bài toán phân lớp, hai yếu tố quan trọng cần xác định là thuộc tính tốt nhất và phương pháp chia dữ liệu Để thực hiện điều này, chúng ta có thể áp dụng tiêu chuẩn Gini-Index hoặc sử dụng Information-Gain theo nghiên cứu của Quinlan (1993).

Phát biểu bài toán của luận văn

Cơ sở dữ liệu của Học viện đào tạo CNTT NIIT-ICT HN bao gồm danh sách học viên đầu vào với 5 đặc trưng chính: giới tính, vùng miền, trình độ, độ tuổi và thiên hướng Học viện tập trung vào 2 đầu ra chính là Lập trình và Kiểm thử, nhằm đáp ứng nhu cầu thị trường công nghệ thông tin.

Áp dụng giải thuật học máy C4.5 và RandomForest để phân lớp dữ liệu học viên tuyển sinh đầu vào của Học viện, chúng tôi sẽ so sánh kết quả và đánh giá độ chính xác của hai giải thuật này Đồng thời, chúng tôi sẽ xây dựng một ứng dụng phần mềm tích hợp hai giải thuật trên cùng với một số chức năng mở rộng nhằm phục vụ cho công tác thực tiễn tại Học viện.

Kết luận chương 1

Chương 1 của luận văn trình bày khái quát về mô hình phân lớp dữ liệu, bao gồm các bước xây dựng cây quyết định Đồng thời, chương này cũng đánh giá những điểm mạnh và yếu của cây quyết định trong phân lớp dữ liệu Ngoài ra, một số thuật toán phổ biến hiện nay trong các mô hình phân lớp cũng được giới thiệu Chương 1 còn nêu rõ mục tiêu, đối tượng, phạm vi nghiên cứu và phát biểu bài toán của luận văn.

GIẢI THUẬT C4.5 VÀ GIẢI THUẬT RANDOM FOREST 2.1 Giải thuật C4.5

Tổng quan

Giải thuật C4.5 là một giải thuật học máy bằng cây quyết định được phát triển bởi Ross Quinlan J.Ross Quinlan đã phát triển giải thuật C4.5 với khoảng

9000 dòng lệnh C Cây quyết định được tạo ra bởi C4.5 có thể được sử dụng cho bài toán phân lớp [20]

Giải thuật C4.5 đã có nhiều cải tiến so với giải thuật ID3 như:

Cho phép xử lý cả các thuộc tính tiếp diễn và rời rạc

Xử lý được những thiếu sót trong training data với những giá trị thiếu

Giải thuật J48, một phiên bản của C4.5, được triển khai bằng Java và sử dụng trong công cụ Weka, hỗ trợ hiệu quả trong việc xử lý cắt tỉa cây (pruning tree) sau khi tạo.

Giải thuật C4.5 là một phương pháp phân lớp dữ liệu dựa trên cây quyết định, nổi bật nhờ hiệu quả và tính phổ biến trong các ứng dụng xử lý dữ liệu nhỏ C4.5 thích hợp cho các cơ sở dữ liệu nhỏ và có khả năng sắp xếp lại dữ liệu tại mỗi nút trong quá trình xây dựng cây quyết định.

C4.5 chọn thuộc tính phân loại tốt nhất

Trong quá trình xây dựng cây quyết định, việc chọn thuộc tính tốt nhất để phân hoạch dữ liệu là nhiệm vụ quan trọng nhất Để tạo ra cây nhỏ nhất, cần phân hoạch dữ liệu sao cho các nút thuần khiết nhất được hình thành Chúng ta sẽ tìm hiểu và áp dụng giải thuật học máy dựa trên cây quyết định, đặc biệt là giải thuật C4.5 của Quinlan Dưới đây là công thức (2.1):

Dưới đây là công thức tính độ đo hỗn loạn (2.2):

( 2.2) Độ lợi thông tin (informartion gain) khi chọn thuộc tính A phân hoạch dữ liệu S thành v phần được tính theo công thức (2.3) [2]:

Khi dữ liệu có thuộc tính với nhiều giá trị hơn các thuộc tính khác, độ lợi thông tin sẽ tăng lên trên các thuộc tính có nhiều giá trị phân hoạch Cụ thể, nếu thuộc tính A phân hoạch dữ liệu S thành v phần, thông tin của phân phối dữ liệu có thể được tính theo công thức (2.4).

Và tỉ số độ lợi được tính như công thức (2.5):

Xử lý những giá trị thiếu trong C4.5

Trong quá trình xử lý dữ liệu, việc gặp phải dữ liệu thiếu là điều không thể tránh khỏi, từ những bài toán đơn giản đến phức tạp Dữ liệu thiếu xảy ra khi giá trị của thuộc tính không có do lỗi trong quá trình nhập bản ghi vào cơ sở dữ liệu, có thể thông qua biểu mẫu ứng dụng hoặc nhập trực tiếp.

Khi đó độ đo độ lợi thông tin của test B giảm vì chúng ta không phân được lớp nào từ các case trong S 0 và được tính theo công thức 2.6:

| | ( ) ( ) Ý nghĩa của các thông số trong công thức trên:

Tập con S 0 là tập con các case trong S mà có giá trị thuộc tính A a không biết

S i biễu diễn các case với đầu ra là b i trong B

Từ đó P(S, B) cũng thay đổi như sau:

Ưu nhược điểm của cây quyết định trong phân lớp dữ liệu

2.2.1 Ưu điểm của cây quyết định

Cây quyết định nổi bật với khả năng tạo ra các quy tắc dễ hiểu, giúp người dùng dễ dàng chuyển đổi chúng sang tiếng Anh hoặc chuyển thành các câu lệnh SQL.

Từ đó sẽ khiến cho quá trình phân lớp trở nên dễ hiểu và dễ mô tả hơn

Cây quyết định hỗ trợ khả năng tính toán dễ dàng trong quá trình phân lớp, nhờ vào các giải thuật tạo ra cây với số phân nhánh thấp và các test đơn giản tại từng node Ưu điểm này trở nên nổi bật trong môi trường thương mại, nơi các mô hình dự đoán thường được áp dụng để phân lớp trên lượng dữ liệu khổng lồ, có thể lên đến hàng tỉ bản ghi.

2.2.2 Nhược điểm của cây quyết định

Cây quyết định, mặc dù có nhiều ưu điểm, vẫn tồn tại một số điểm yếu đáng chú ý Một trong những hạn chế lớn nhất của nó là không phù hợp cho việc dự đoán giá trị của các thuộc tính liên tục như doanh số, thu nhập và lãi suất.

Khi sử dụng cây quyết định, việc có quá nhiều lớp có thể dẫn đến khó khăn và phát sinh lỗi Hơn nữa, một số cây quyết định chỉ phù hợp cho các bài toán phân lớp nhị phân, điều này cần được lưu ý để đảm bảo hiệu quả trong quá trình phân tích.

- Tốn kém khi đào tạo

Khi quyết định sử dụng cây quyết định, chúng ta cần chấp nhận rằng việc tính toán sẽ tốn kém, vì mỗi nút trong cây yêu cầu tính toán một độ đo cho từng thuộc tính.

2.3.1 Giới thiệu tổng quan về giải thuật Random Forest

Random Forest là một thuật toán học máy phổ biến thuộc loại học có giám sát, trong đó dự đoán được thực hiện trên nhiều cây quyết định thay vì chỉ một Kết quả cuối cùng được xác định dựa trên những dự đoán chiếm ưu thế từ các cây này Quan trọng là, số lượng cây trong rừng càng nhiều thì độ chính xác của mô hình càng cao và vấn đề overfitting sẽ được hạn chế.

Hình 2 1 Minh họa cơ chế làm việc của giải thuật Random Forest

(Nguồn: https://www.javatpoint.com/machine-learning-random-forest-algorithm)

2.3.2 Lý do sử dụng Random Forest

There are several reasons to consider using the Random Forest algorithm, one of which is its shorter training time compared to other algorithms.

Giải thuật Random Forest đưa ra dự đoán kết quả với độ chính xác cao, đồng thời hiệu quả ngay cả với các tệp dữ liệu lớn

Có độ chính xác cao, thậm chí cho phép duy trì độ chính xác ngay cả khi có một lượng lớn dữ liệu bị thiếu

Giảm thiểu độ rủi ro của vấn đề overfitting

2.3.3 Cơ chế làm việc của giải thuật Random Forest

Giải thuật Random Forest hoạt động qua hai giai đoạn chính Giai đoạn đầu tiên là xây dựng một rừng ngẫu nhiên bằng cách kết hợp N cây quyết định Giai đoạn thứ hai liên quan đến việc đưa ra dự đoán dựa trên từng cây đã được tạo ra trong giai đoạn trước.

Giải thuật Random Forest hoạt động qua các bước sau: đầu tiên, nó chọn ngẫu nhiên các mẫu từ tập dữ liệu đào tạo Tiếp theo, các cây quyết định được xây dựng dựa trên các dữ liệu đào tạo đã được chọn.

Bước 3: Tiến hành voting bằng cách chia trung bình

Bước 4: Chọn kết quả dự đoán được vote nhiều nhất để làm kết quả dự đoán cuối cùng

Quá trình kết hợp của nhiều mô hình này còn được gọi là Ensemble Ensemble sử dụng hai phương pháp sau:

Bagging là phương pháp tạo ra các tập con dữ liệu đào tạo khác nhau từ tập dữ liệu gốc thông qua kỹ thuật lấy mẫu có hoàn lại Kết quả cuối cùng được xác định dựa trên giá trị bỏ phiếu chủ yếu, giúp cải thiện độ chính xác và giảm thiểu độ thiên lệch trong mô hình học máy.

Boosting là phương pháp kết hợp các weak learners thành strong learners thông qua việc xây dựng các mô hình tuần tự, giúp nâng cao độ chính xác của mô hình cuối cùng Hai ví dụ tiêu biểu của phương pháp này là ADA BOOST và XG BOOST.

Hình 2 2 Biểu diễn về hai phương pháp Bagging và Boosting

(Nguồn: https://www.simplilearn.com/tutorials/machine-learning-tutorial/random-forest-algorithm)

Giải thuật Random Forest áp dụng phương pháp Bagging, hay còn gọi là Bootstrap Aggregation Quá trình này khởi đầu từ dữ liệu gốc ngẫu nhiên, sau đó được sắp xếp và tổ chức thành các mẫu, được gọi là Bootstrap Sample Quá trình tổ chức này được biết đến với tên gọi Bootstraping.

Hình 2 3 Biểu diễn phương pháp Bagging

(Nguồn: https://www.simplilearn.com/tutorials/machine-learning-tutorial/random-forest-algorithm)

2.3.4 Những đặc điểm thiết yếu của giải thuật Random Forest

- Tính lung tung: Mỗi cây có một thuộc tính duy nhất, có các đặc điểm và tính đa dạng liên quan đến các cây khác

Tính song song trong việc xây dựng random forest cho phép sử dụng CPU hiệu quả, bởi vì mỗi cây trong rừng được tạo ra tự động từ các dữ liệu và tính năng khác nhau.

Trong giải thuật Random Forest, việc phân chia dữ liệu thành tập đào tạo và tập kiểm tra không cần thiết, vì cây quyết định chỉ tiếp cận tối đa 30% dữ liệu.

Tính ổn định trong phương pháp Bagging cho thấy rằng kết quả cuối cùng được xác định dựa trên hình thức biểu quyết đa số hoặc giá trị trung bình.

2.3.5 Ứng dụng của giải thuật Random Forest

Giải thuật Random Forest có thể được sử dụng trong các lĩnh vực sau:

Đánh giá độ hiệu quả của thuật giải dùng ma trận nhầm lẫn

Ma trận nhầm lẫn (confusion matrix) là công cụ thiết yếu trong việc đo lường và đánh giá hiệu quả của thuật toán phân lớp, cung cấp nhiều thông số quan trọng.

Bảng 2 2 Ma trận nhầm lẫn (Confusion Matrix)

(Nguồn: https://manisha-sirsat.blogspot.com/2019/04/confusion-matrix.html)

Điều kiện dương (P) là số lượng các trường hợp thực sự tích cực trong dữ liệu, trong khi điều kiện phủ định (N) đại diện cho số lượng các trường hợp tiêu cực thực sự.

Dương tính thực (True positive) (TP): Sự chính xác Âm tính thực (True negative) (TN): Sự từ chối chính xác

Dương tính giả (False positive - FP) là hiện tượng báo động nhầm, thường được gọi là lỗi loại I, trong khi sai âm tính (False negative - FN) là tình trạng bỏ sót, hay còn gọi là lỗi loại II.

Tỷ lệ thực dương (TPR) còn được gọi là Độ nhạy (sensitivity), thu hồi (recall), tỷ lệ đạt

Cụ thể hoặc tỷ lệ tiêu cực thực sự (specificity or true negative rate) (TNR)

“Giá trị tiên đoán chính xác hoặc tích cực (precision or positive predictive value) (PPV)

Giá trị tiên đoán âm (negative predictive value) (NPV)

Tỷ lệ bỏ sót hoặc tỷ lệ sai âm (Miss Detection Rate or false negative rate) (FNR)

Tỷ lệ báo động nhầm hoặc tỷ lệ dương tính giả (False Alarm Rate or false positive rate ) (FPR)

Tỷ lệ khám phá sai (false discovery rate ) (FDR)

Tỷ lệ bỏ sót sai (false omission rate) (FOR)

 (2.38) Độ chính xác (accuracy) (ACC)

  (2.39) Điểm số F1 (F1 score): Là trung bình hài hòa của độ chính xác và độ nhạy

PPV TPR TP PPV TPR TP F F

Hệ số tương quan Matthews (Matthews correlation coefficient ) (MCC)

TP FP TP FN TN F TN FN

Để tính độ chính xác của người dự kiến, bạn chỉ cần lấy tổng các phần tử trên đường chéo [i, j] của ma trận confusion và chia cho tổng số phần tử Số phần tử không nằm trên đường chéo sẽ đại diện cho các dự đoán sai của ma trận confusion Tuy nhiên, ma trận confusion chỉ áp dụng cho hai trường hợp cụ thể.

- Các mẫu ra và mẫu dự đoán cùng số lượng.

Kết luận chương 2

Giải thuật C4.5 là một phương pháp học máy mạnh mẽ, giúp xây dựng cây quyết định hiệu quả và chặt chẽ Nó có khả năng xử lý dữ liệu lỗi, quản lý các giá trị thiếu và giảm thiểu vấn đề overfitting Hơn nữa, C4.5 hỗ trợ chuyển đổi cây quyết định thành luật, từ đó nâng cao độ chính xác và tính dễ hiểu của kết quả phân loại Vì vậy, C4.5 được coi là một trong những giải thuật hiệu quả nhất trong lĩnh vực học máy với cây quyết định.

Giải thuật Random Forest là một phương pháp phân lớp mạnh mẽ, bao gồm nhiều cây quyết định độc lập Bằng cách áp dụng kỹ thuật bagging và tính ngẫu nhiên trong quá trình xây dựng các cây quyết định, Random Forest tạo ra một "rừng cây" không có tương quan, giúp cải thiện độ chính xác của dự đoán Kết quả cuối cùng từ rừng cây thường chính xác hơn so với bất kỳ cây quyết định đơn lẻ nào.

Giải thuật Random Forest nổi bật với khả năng xử lý hiệu quả các giá trị thiếu (missing data) bằng cách thay thế chúng bằng các biến phổ biến nhất trong một node cụ thể Trong số các phương pháp phân lớp hiện có, Random Forest mang lại độ chính xác cao nhất.

Giải thuật Random Forest có khả năng xử lý dữ liệu lớn và tự động cân bằng các tập dữ liệu khi một lớp xuất hiện không thường xuyên so với các lớp khác Ngoài ra, giải thuật này còn cho phép xử lý các biến một cách nhanh chóng, làm cho Random Forest trở thành lựa chọn lý tưởng cho các tác vụ phức tạp.

PHÂN LỚP DỮ LIỆU HỌC VIÊN PHỤC VỤ CHO CÔNG TÁC TƯ VẤN CHỌN NGÀNH HỌC 3.1 Khảo sát và thu thập dữ liệu

Xử lý dữ liệu

Trong 15 đặc trưng của học viên trong CSDL tác giả chọn 5 đặc trưng tiêu biểu có liên quan đến việc chọn ngành học tại học viện, bao gồm: vùng miền, giới tính, trình độ, độ tuổi, thiên hướng

Với 5 đặc trưng được lựa chọn được chuyển đổi dữ liệu theo mục đích sử dụng theo thứ tự như sau:

 Vùng miền (VM): Là đặc trưng mô tả về vùng miền quê quán của học viên như sau:

+ TP: Học viên đến từ thành phố

+ NT: Học viên đến từ nông thôn

 Giới tính (GT): Là đặc trưng mô tả về giới tính của học viên như sau: + Nam: Giới tính nam

 Trình độ (TĐ): Là đặc trưng mô tả về trình độ của học viên, gồm các trình độ như sau:

+ PTTH: Học viên có trình độ Phổ thông trung học

+ CDDH: Học viên có trình độ Cao đẳng – Đại học

+ CH: Học viên có trình độ Cao học trở lên

 Độ tuổi (ĐT): Là đặc trưng mô tả về độ tuổi của học viên, gồm 3 độ tuổi như sau:

+ Tre: Học viên có độ tuổi từ 18 tuổi trở xuống

+ Thanhnien: Học viên có độ tuổi nằm trong khoảng 19 – 34 tuổi

+ Trungnien: Học viên có độ tuổi từ 35 tuổi trở lên

 Thiên hướng (TH): Là đặc trưng mô tả về thiên hướng của học viên Bao gồm 2 thiên hướng như sau

+ KHTN: Học viên có thiên hướng khoa học tự nhiên (thông qua kết quả của các môn học tự nhiên như: Toán, Lý, Hoá)

+ KHXH: Học viên có thiên hướng khoa học xã hội (Thông qua kết quả của các môn học xã hội như Văn, Sử, Địa)

Nhƣ vậy, ta có các giá trị của 5 đặc trƣng nhƣ sau:

TĐ = {PTTH; CDDH; CH} ĐT = {Tre; Thanhnien; Trungnien}

Quá trình này bao gồm việc loại bỏ các đặc trưng không cần thiết và dữ liệu không phù hợp với 5 đặc trưng chính, chẳng hạn như loại bỏ học viên đến từ những vùng sâu, vùng xa, biên giới hải đảo có ít tuyển sinh, cũng như loại bỏ các tiêu chí về tài chính.

- Sắp xếp dữ liệu theo 5 cấp tương ứng với 5 đặc trưng đã chọn để tìm ra các bản ghi trùng nhau, loại bỏ ra khỏi tập dữ liệu

Sau khi tiến hành làm sạch dữ liệu, chúng ta có được bảng dữ liệu với 217 bản ghi và 5 đặc trưng Dựa trên tập thuộc tính này, chúng ta sẽ thực hiện phân lớp để dự đoán giá trị cho thuộc tính đích là Ngành học (NH).

- Đối với ngành học (NH): Ta chia làm 2 ngành như sau:

Dựa vào dữ liệu và kinh nghiệm tuyển sinh của học viện trong những năm trước, chúng ta có thể xác định căn cứ để dự báo và gán nhãn cho thuộc tính NH.

Bảng 3 1 Bảng cơ sở tri thức

TT Tên thuộc tính Tiêu chuẩn Ngành học

1 VM TP Phụ thuộc vào các yếu tố khác

NT Phụ thuộc vào các yếu tố khác

Nu Phụ thuộc vào các yếu tố khác

THTN Phụ thuộc vào các yếu tố khác KHXH Phụ thuộc vào trình độ

PTTH Phụ thuộc vào các yếu tố khác

DH Phụ thuộc vào các yếu tố khác

CH Phụ thuộc vào các yếu tố khác

5 ĐT Tre Phụ thuộc vào tuổi và các yếu tố khác

Trungnien Phụ thuộc vào tuổi và các yếu tố khác Thanhnien Phụ thuộc vào các yếu tố khác

Qua quá trình phân tích, làm sạch và dự báo ở bước trên, ta xây dựng được bảng dữ liệu mẫu huấn luyện gồm 35 bản ghi như sau:

Bảng 3 2 Bảng dữ liệu mẫu huấn luyện

TT HỌ TÊN VM GT TĐ ĐT TH NH

Chung' TP Nam PTTH Tre KHTN Lậptrình

2 'Trần Tiểu Vy' TP Nu DH Tre KHXH Kiểmthử

3 'Trần Minh Trang' NT Nu DH Tre KHXH Kiểmthử

4 'Mai Ngọc' TP Nu DH Tre KHXH Kiểmthử

Khánh Vân' TP Nu DH Tre KHXH Kiểmthử

6 'Nguyễn Nhạc' TP Nu DH Tre KHXH Kiểmthử

7 'Nguyễn Phúc Minh' TP Nu DH Tre KHXH Kiểmthử

8 'Trần Thành' TP Nam DH Tre KHTN Lậptrình

9 'Trần Thành' NT Nam DH Trungniên KHTN Lậptrình

10 'Diệu Phương' NT Nu DH Trungniên KHXH Kiểmthử

11 'Diệu Bản' NT Nu PTTH Tre KHXH Lậptrình

12 'Diệu Nhã' NT Nu PTTH Tre KHXH Kiểmthử

13 'Cao Thái Hà' TP Nu DH Trungniên KHXH Kiểmthử

14 'Trương Ngọc ÿnh' TP Nu DH Trungniên KHXH Kiểmthử

15 'Nguyễn Văn Phong' TP Nam CH Trungniên KHTN Lậptrình

16 'Trịnh Văn Phú' TP Nam CH Trungniên KHXH Kiểmthử

17 'Hoàng Văn Thắng' NT Nam PTTH Tre KHTN Lậptrình

18 'Hoàng Văn Chinh' NT Nam DH Tre KHXH Kiểmthử

19 'Hoàng Dinh Phong' NT Nam DH Tre KHTN Lậptrình

TT HỌ TÊN VM GT TĐ ĐT TH NH

20 'Chu Văn Thái' NT Nam DH Tre KHTN Lậptrình

21 'Hoàng Văn 2ính' NT Nu CH Tre KHTN Kiểmthử

22 'Trần Tiểu Vy' NT Nam DH Tre KHTN Lậptrình

23 'Hoàng Văn Chính' NT Nam DH Tre KHTN Lậptrình

24 'Hoàng Văn Hoan' NT Nam DH Tre KHTN Kiểmthử

25 'Nguyễn Hồng Nhung' TP Nu DH Tre KHTN Kiểmthử

26 'Nguyễn Hồng Hoa' TP Nu DH Tre KHTN Kiểmthử

27 'Le Thanh Mai' TP Nu DH Tre KHTN Kiểmthử

28 'Diệu Nhã' TP Nu DH Tre KHTN Kiểmthử

29 'Trần Minh Trang' TP Nu DH Tre KHTN Kiểmthử

30 'Nguyễn Hồng Hoa' TP Nu DH Tre KHTN Kiểmthử

31 'Nguyễn Khánh My' TP Nu DH Tre KHTN Kiểmthử

32 'Nguyễn Hải Băng' NT Nu DH Tre KHTN Lậptrình

33 'Nguyễn Văn Phong' NT Nu DH Tre KHTN Lậptrình

34 'Võ Hoàng Bửu' NT Nam PTTH Tre KHTN Lậptrình

35 'Võ Hoàng Ba' NT Nam PTTH Tre KHTN Lậptrình

3 3 Sử dụng giải thuật C4.5 để tiến hành phân lớp dữ liệu học viên

Quá trình xây dựng cây quyết định bắt đầu từ nút gốc (root), được đánh số là nút 1 và tương ứng với mức level 0 Tiếp theo, chúng ta phát triển các nút con (child nodes) của nút gốc, tạo thành cấu trúc cây quyết định hoàn chỉnh.

1, và cứ tiến hành tiếp tục tương tự

Tại mỗi nút sẽ chứa các thông tin cơ bản sau đây:

Dữ liệu huấn luyện ứng với nút hiện tại

Thuộc tính phân tích nút hiện tại sẽ có giá trị rỗng nếu nút đó là nút lá Ngược lại, nếu nút hiện tại là nút nhánh, thuộc tính này sẽ bao gồm tên các nút con và các giá trị tương ứng phát sinh từ nút hiện tại.

Ứng dụng của thuộc tính trong phân tích nút hiện tại rất quan trọng Nếu nút hiện tại là nút lá, nó sẽ có thêm quyết định đầu ra Ngược lại, nếu không phải là nút lá, thông tin này sẽ không được chứa Dữ liệu huấn luyện tại mỗi nút sẽ thay đổi tùy thuộc vào các nút khác nhau.

3.3.2 Xây dựng cây quyết định Để có thể dựng nên cây quyết định ta phải xác định nút gốc để phân hoạch cây Ta sẽ tiến hành lựa chọn xem thuộc tính nào có độ lợi thông tin (information gain) lớn nhất sẽ được chọn làm nút gốc

3.3.2.1 Chọn nút gốc Đầu tiên ta gọi S là tập thuộc tính đích Có tất cả 35 mẫu và 5 thuộc tính là:

Vùng miền (VM); giới tính (GT); độ tuổi (ĐT); trình độ (TĐ); thiên hướng (TH)

Ta phân lớp “+” là lớp LT, lớp “ – ” là lớp KT trong đó:

LT “+” xuất hiện trong tập thuộc tính đích 13 lần

KT “ – ” xuất hiện trong tập thuộc tính đích 22 lần Áp dụng công thức tính Entropy, ta có:

- Độ hỗn loại trước khi phân hoạch

 Đối với thuộc tính TH :

Entropy của các tập con S được chia bởi các giá trị của thuộc tính “PLHV” như sau:

Entropy(S) phân theo Thiên hướng

- Entropy của S đối với thuộc tính “Thiên hướng” sau khi phân hoạch là:

- Độ lợi thông tin tương ứng là:

Gain (S,TH) = Entropy(S) – Entropy (S,TH) = 0.96 – 0.76 = 0,2

- Tỷ suất lợi ích Gain Ratio:

Với công thức tương tự, ta tiến hành tính tỉ suất lợi ích GainRatio của các thuộc tính còn lại

 Đối với thuộc tính Vùng miền :

 Đối với thuộc tính Giới tính:

 Đối với thuộc tính Trình độ:

 Đối với thuộc tính Độ tuổi:

Sau khi tính toán các kết quả, chúng tôi đã lập bảng so sánh GainRatio của các thuộc tính VM, GT, TĐ, ĐT và TH trong tập dữ liệu.

Bảng 3 3 Bảng so sánh kết quả GainRatio trong tập thuộc tính S

TT Thuộc tính Gain SplitInfor GainRatio

Dựa vào kết quả, GainRatio (S,TH) = 0,21 là giá trị cao nhất, cho thấy thuộc tính TH có khả năng phân hoạch tốt nhất Vì vậy, chúng ta chọn thuộc tính TH làm nút gốc để phân tách cây quyết định Kết quả là cây quyết định cấp 1 như được minh họa trong hình 3.1.

Hình 3 1 Cây quyết định cấp 1 3.3.2.2 Chọn các Node trong cấp 1

Đối với nhánh TH = KHTN, quá trình phân tách dữ liệu tiếp tục diễn ra, và dưới đây là bảng dữ liệu liên quan đến nhánh này.

Bảng 3 4 Bảng mẫu huấn luyện TH = KHTN

TT HỌ TÊN VM GT TĐ ĐT TH NH

1 'Nguyễn Huỳnh Chung' TP Nam PTTH Tre KHTN Lậptrình

2 'Trần Thành' TP Nam DH Tre KHTN Lậptrình

3 'Trần Thành' NT Nam DH Trungniên KHTN Lậptrình

4 'Nguyễn Văn Phong' TP Nam CH Trungniên KHTN Lậptrình

5 'Hoàng Văn Thắng' NT Nam PTTH Tre KHTN Lậptrình

6 'Hoàng Dinh Phong' NT Nam DH Tre KHTN Lậptrình

7 'Chu Văn Thái' NT Nam DH Tre KHTN Lậptrình

8 'Hoàng Văn 2ính' NT Nu CH Tre KHTN Kiểmthử

9 'Trần Tiểu Vy' NT Nam DH Tre KHTN Lậptrình

10 'Hoàng Văn Chính' NT Nam DH Tre KHTN Lậptrình

11 'Hoàng Văn Hoan' NT Nam DH Tre KHTN Kiểmthử

12 'Nguyễn Hồng Nhung' TP Nu DH Tre KHTN Kiểmthử

13 'Nguyễn Hồng Hoa' TP Nu DH Tre KHTN Kiểmthử

14 'Le Thanh Mai' TP Nu DH Tre KHTN Kiểmthử

15 'Diệu Nhã' TP Nu DH Tre KHTN Kiểmthử

TT HỌ TÊN VM GT TĐ ĐT TH NH

16 'Trần Minh Trang' TP Nu DH Tre KHTN Kiểmthử

17 'Nguyễn Hồng Hoa' TP Nu DH Tre KHTN Kiểmthử

18 'Nguyễn Khánh My' TP Nu DH Tre KHTN Kiểmthử

19 'Nguyễn Hải Băng' NT Nu DH Tre KHTN Lậptrình

20 'Nguyễn Văn Phong' NT Nu DH Tre KHTN Lậptrình

21 'Võ Hoàng Bửu' NT Nam PTTH Tre KHTN Lậptrình

22 'Võ Hoàng Ba' NT Nam PTTH Tre KHTN Lậptrình

Gọi S 1 là tập thuộc tính đích Có tất cả 22 mẫu, trong đó:

Ta tiến hành phân lớp và sử dụng ký hiệu “+” là lớp Laptrinh và lớp “ – ” là lớp Kiemthu, rồi ta thu được kết quả như sau:

Laptrinh “+” xuất hiện trong tập thuộc tính đích 13 lần

Kiemthu “ – ” xuất hiện trong tập thuộc tính đích 9 lần

Sau đó ta áp dụng công thức tính Entropy:

- Độ đo hỗn loạn trước khi phân hoạch là:

 Đối với thuộc tính Gioi tinh :

Entropy của các tập con S được chia bởi các giá trị của thuộc tính “GT” như sau:

Bảng Entropy(S) phân theo Gioi tinh

- Entropy của S đối với thuộc tính GT sau khi phân hoạch là:

- Độ lợi thông tin tương ứng là:

Gain (S,GT) = Entropy(S) – Entropy (S,GT) = 0.97 – 0.55 = 0,42

- Tỷ suất lợi ích Gain Ratio:

Sử dụng công thức tương tự, ta sẽ tính ra được GainRatio của các thuộc tính còn lại

Từ các giá trị như trên, ta thu thập và đưa ra bảng so sánh GainRatio của các thuộc tính: GT; VM; TĐ; ĐT như sau

Bảng 3 5 Bảng so sánh kết quả GainRatio trong tập thuộc tính S 1

Dựa vào bảng phân tích, GainRatio (S 1 , TĐ) = 0.47 là giá trị cao nhất, cho thấy thuộc tính Trình độ có khả năng phân hoạch tốt nhất Do đó, tại nhánh này, thuộc tính TĐ được chọn làm nút trong để tiếp tục phân tách cây quyết định Kết quả là cây quyết định tương ứng với nhánh GT = Nu, từ đó tạo ra các nhánh con như hình minh họa.

TT Thuộc tính Gain SplitInfor GainRatio

Trong cây quyết định cấp 2, nhánh GT = Nam có Entropy = 0, dẫn đến việc quá trình học dừng lại tại nút lá với nhãn "Laptrinh" Điều này có nghĩa là nếu Gioitinh = Nam, ngành học (nhãn) sẽ là "Laptrinh".

Như vậy, từ 1 nút lá ta sẽ viết được 1 luật quyết định tương ứng

Luật 1:IF TH = KHTN AND GT = Nam THEN NH = Laptrinh

3.3.2.3 Chọn các Node trong cấp 2

*) Xét nhánh GT = Nu ta có bảng dữ liệu :

Bảng 3 6 Bảng mẫu huấn luyện GT = Nu

TT HỌ TÊN VM GT TĐ ĐT TH NH

1 'Hoàng Văn 2ính' NT Nu CH Tre KHTN Kiểmthử

2 'Nguyễn Hồng Nhung' TP Nu DH Tre KHTN Kiểmthử

3 'Nguyễn Hồng Hoa' TP Nu DH Tre KHTN Kiểmthử

4 'Le Thanh Mai' TP Nu DH Tre KHTN Kiểmthử

5 'Diệu Nhã' TP Nu DH Tre KHTN Kiểmthử

6 'Trần Minh Trang' TP Nu DH Tre KHTN Kiểmthử

7 'Nguyễn Hồng Hoa' TP Nu DH Tre KHTN Kiểmthử

8 'Nguyễn Khánh My' TP Nu DH Tre KHTN Kiểmthử

9 'Nguyễn Hải Băng' NT Nu DH Tre KHTN Lậptrình

10 'Nguyễn Văn Phong' NT Nu DH Tre KHTN Lậptrình

Luật 2: IF TH = KHTN AND GT = Nu AND TĐ = PTTH THEN NH = Kiemthu Luật 3: IF TH = KHTN AND GT = Nu AND TĐ = CH THEN NH = Laptrinh

Gọi S 2.1 là tập thuộc tính đích Có tất cả 10 mẫu, trong đó:

Ta phân lớp “+” là lớp Laptrinh, lớp “ – ” là lớp Kiemthu, từ đó ta thu được: Laptrinh “+” xuất hiện 2 lần trong tập thuộc tính đích

Kiemthu “ – ” xuất hiện 8 lần trong tập thuộc tính đích

Tương tự như trên, ta áp dụng công thức tính Entropy:

- Độ đo hỗn loạn trước khi phân hoạch là:

Tiến hành tính Entropy cho các tập con S2.1 được phân chia theo các giá trị của thuộc tính Trình độ, tương tự như các bước trước đó.

- Entropy của S 2.1 đối với thuộc tính “Trình độ” sau khi phân hoạch là:

- Độ lợi thông tin tương ứng là:

Gain(S 2.1 ,TĐ) = Entropy(S 2.1 ) – Entropy(S 2.1 ,TĐ) = 0.72 – 0,68 = 0.04

- Tỷ suất lợi ích Gain Ratio:

Tương tự, ta tính Tỉ suất lợi ích GainRatio của các thuộc tính còn lại

 Đối với thuộc tính DO TUOI:

 Đối với thuộc tính VUNG MIEN:

Sau khi tính toán tỷ suất lợi nhuận, bảng 3.7 trình bày sự so sánh GainRatio của các thuộc tính: Trình độ, Độ tuổi và Vùng miền.

Bảng 3 7 Bảng so sánh kết quả GainRatio trong tập thuộc tính S 2.1

Phân lớp học viên sử dụng giải thuật Random Forest

Giải thuật RandomForest sử dụng để phân lớp dữ liệu từ dataset Trong quá trình này, cần khai báo một số hyperparameter nhằm thiết lập các thông số cần thiết cho việc phân lớp hiệu quả.

- Random_state = 15: Số nguyên để thiết lập random seed trong quá trình sinh ngẫu nhiên các cây quyết định

- N_estimators = 10: Nghĩa là sẽ tạo ra 10 cây quyết định mỗi lần thực thi phân lớp với giải thuật Random Forest

43 Tiếp theo, ta sử dụng giải thuật Random Forest đã được cài đặt trong thư viện scikit-learn để tiến hành phân lớp, với mã nguồn như sau:

Hình 3 6 Mã nguồn phân lớp dữ liệu với giải thuật RandomForest

Giới thiệu một số ngôn ngữ trong khai phá dữ liệu

3.5.1 Giới thiệu về ngôn ngữ R

R là một ngôn ngữ lập trình thông dịch và môi trường phần mềm, được thiết kế để thống kê thông tin, tạo báo cáo và trực quan hóa dữ liệu.

R không chỉ hỗ trợ các cấu trúc lập trình phổ biến như cấu trúc điều kiện và cấu trúc lặp, mà còn cho phép lập trình hướng thủ tục thông qua việc định nghĩa các hàm.

3.5.2 Giới thiệu về ngôn ngữ Python

Python là ngôn ngữ lập trình phổ biến trong kỷ nguyên dữ liệu hiện nay nhờ vào cú pháp đơn giản, dễ học và dễ gỡ lỗi Nó kế thừa nhiều ưu điểm từ các ngôn ngữ khác như dynamic typing, xử lý ngoại lệ, và OOP Python mạnh mẽ trong xử lý dữ liệu và cho phép phát triển đa dạng ứng dụng, bao gồm Desktop, Web, App và Game.

3.5.3 Giới thiệu về phần mềm Weka

Weka là công cụ được viết bằng ngôn ngữ Java và hỗ trợ tính khả chuyển (portable) rất tốt, cho phép tiến hành KPDL

Kết quả thực nghiệm

3.6.1 Chạy giải thuật J48 trên ngôn ngữ Weka Đầu tiên ta cần chuẩn bị file chứa dữ liệu ban đầu, đây chính là file dữ liệu tuyển sinh của Học viện NII-ICT HN, với dữ liệu đã được làm sạch, và đã được lưu với định dạng “.csv” Ta cũng dùng tệp dữ liệu đầu vào có tên luanvan.csv gồm 217 bản ghi

Tiếp theo ta khởi động phần mềm Weka > Chọn Explorer > Chọn Open file

> Chọn đến file dữ liệu đầu vào“luanvan.csv”

Phần mềm weka hỗ trợ nhiều định dạng file dữ liệu, nhưng ta chọn sử dụng định dạng csv để dễ thao tác và chỉnh sửa

Mở menu Classify trong Weka, ta thấy bộ phân lớp mặc định là ZeroR Nhấn nút Choose để chọn giải thuật, ở đây chọn J48, một cài đặt Java của giải thuật C4.5 Sau đó, nhấn Start để chạy chương trình và xem kết quả trong Classifier Output Đồng thời, chọn một trong các Test options trên màn hình.

Để xem kết quả trực quan của cây quyết định được sinh ra từ giải thuật C4.5, bạn chỉ cần nhấp chuột phải vào kết quả và chọn mục "Visualize tree" Hình ảnh cây quyết định sẽ được hiển thị, đáp ứng đúng mong đợi của bạn.

Hình 3 7 Cây quyết định sử dụng giải thuật C4.5 trong Weka

File dữ liệu ban đầu (đầu vào) là một file dữ liệu có tên là luanvan.csv chứa

Trong nghiên cứu này, đã có 217 bản ghi, bao gồm 35 bản ghi từ tập dữ liệu mẫu huấn luyện (Bảng 3.2) và 5 thuộc tính Cây quyết định được xây dựng cho thấy 8 luật tương tự như những luật được tính toán bằng tay (Bảng 3.16) Đánh giá độ chính xác của thuật toán C4.5 được thực hiện trên ngôn ngữ Weka cho thấy hiệu quả của phương pháp này.

Từ cửa sổ kết quả Classifer Output (Hình 3.10), ta có thể đọc được một số thông số nhằm đánh giá độ chính xác của giải thuật C4.5 như sau:

TP số dự đoán đúng Laptrinh 47

TN số dự đoán đúng Kiemthu 17

FP số dự đoán sai Laptrinh 1

FN số dự đoán sai Kiemthu 9

Tỉ suất sai trung bình: 13.51%

TPR(Laptrinh) Tỉ suất đúng Laptrinh: 0.979

TPR(Kiemthu) Tỉ suất đúng Kiemthu: 0.654

FPR Tỉ số sai từ Laptrinh sang Kiemthu 0.346

FPR Tỉ số sai từ Kiemthu sang Laptrinh 0.02

3.6.2 Chạy giải thuật Random Forest trên công cụ Weka

Tiếp theo, chúng ta sẽ thực hiện các bước tương tự để áp dụng thuật toán Random Forest, giống như khi chạy với thuật toán J48 Trong bài viết này, chúng ta sẽ chọn sử dụng thuật toán Random Forest.

Sau khi chọn Start để tiến hành phân lớp với giải thuật Random Forest, ta thu được kết quả như sau:

Hình 3.8 Kết quả Classifer Output giải thuật Random Forest Đánh giá độ chính xác của giải thuật Random Forest trên ngôn ngữ Weka:

Từ kết quả trên, ta có thể tính được một số thông số đánh giá độ chính xác của giải thuật Random Forest như sau:

TP số dự đoán đúng Laptrinh 46

TN số dự đoán đúng Kiemthu 14

FP số dự đoán sai Laptrinh 2

FN số dự đoán sai Kiemthu 12

Tỉ suất sai trung bình: 18.92%

TPR(Laptrinh) Tỉ suất đúng Laptrinh: 0.958

TPR(Kiemthu) Tỉ suất đúng Kiemthu: 0.538

FPR Tỉ số sai từ Laptrinh sang Kiemthu 0.462

FPR Tỉ số sai từ Kiemthu sang Laptrinh 0.042

Kết quả nghiên cứu cho thấy giải thuật C4.5 đạt độ chính xác 86%, vượt trội hơn so với Random Forest với 81% Mặc dù Random Forest thường mang lại kết quả chính xác hơn trên tập dữ liệu lớn, nhưng trong trường hợp tập dữ liệu nhỏ như nghiên cứu này, giải thuật C4.5 lại cho độ chính xác cao hơn.

Ứng dụng demo

Trong bài luận này, tác giả phát triển một ứng dụng nhỏ bằng ngôn ngữ Python, sử dụng thư viện scikit-learn, một thư viện mã nguồn mở tích hợp các thuật toán học máy Ngoài ra, ứng dụng còn áp dụng một số công nghệ và thư viện khác để nâng cao hiệu quả.

- MongoDB: Là CSDL NoSQL rất phổ biến, cho phép quản lý nosql và cho phép quản trị các CSDL NoSQL

- NumPy: Để cho phép xử lý các mảng và dữ liệu số

- PyMongo: Là thư viện cho phép kết nối giữa ứng dụng Python và CSDL NoSQL MongoDB

Dưới đây là giao diện chính của ứng dụng

Hình 3 9 Màn hình giao diện chính của ứng dụng demo

Để phân lớp dữ liệu, người dùng cần chọn chức năng phân lớp trên thanh menu chính và chọn file chứa dữ liệu Ứng dụng sẽ sử dụng thư viện scikit-learn và Pandas để xử lý dữ liệu Đầu tiên, dữ liệu được chia thành hai tập: training data và test data bằng hàm train_test_split(), với tỷ lệ 66% cho tập huấn luyện và 34% cho tập kiểm tra.

Hình 3 10 Mã nguồn phân lớp dữ liệu với giải thuật cây quyết định

Sau khi thực hiện phân lớp bằng giải thuật cây quyết định, chúng ta sẽ viết mã để tính toán và thu thập các thông số kết quả Đồng thời, chúng ta cũng sẽ hiển thị trực quan confusion matrix của giải thuật này.

Hình 3 11 Kết quả ma trận nhầm lẫn với giải thuật cây quyết định

Trong ứng dụng này, chúng tôi đã trực quan hóa ma trận nhầm lẫn (confusion matrix) và các thông số phân lớp Chúng tôi đã định nghĩa một hàm để tính toán hai chỉ tiêu quan trọng là Precision và Recall Đồng thời, chúng tôi cũng sử dụng các hàm có sẵn trong thư viện scikit-learn và nhận thấy rằng kết quả từ hàm tự định nghĩa và hàm của thư viện tương tự nhau.

Hình 3.12 Kết quả bảng thống kê các chỉ số với giải thuật cây quyết định

Mã nguồn dưới đây cho phép phân lớp và hiển thị các thông số, bao gồm confusion matrix, cũng như các chỉ số hiển thị sau khi thực hiện thuật toán cây quyết định.

Hình 3.13 Mã nguồn thống kê và hiển thị kết quả với giải thuật cây quyết định

Trong ứng dụng này, ta cũng định nghĩa function để tính ra các giá trị Precision và Recall như sau:

Hình 3.14 Hàm tự định nghĩa để tính toán ra chỉ số precision và recall

Tiếp theo, tương tự như trên, ứng dụng cũng sẽ tiến hành giải thuật Random Forest, và cũng hiển thị trực quan confusion matrix như hình sau:

Hình 3.15 Kết quả bảng thống kê các chỉ số với giải thuật RandomForest

Ứng dụng hiển thị kết quả sử dụng giải thuật Random Forest, cho thấy rằng kết quả giữa hàm tự định nghĩa và hàm của thư viện scikit-learn là tương đồng.

Biểu đồ trong Hình 3.16 cho thấy kết quả thống kê các chỉ số với giải thuật RandomForest, đặc biệt là sự phân bố ngành học theo độ tuổi Đối với nhóm tuổi Trẻ và Thanh niên, ngành lập trình chiếm ưu thế rõ rệt so với ngành kiểm thử Ngược lại, ở độ tuổi Trung niên, học viên có xu hướng chọn ngành kiểm thử nhiều hơn, có thể do áp lực công việc nhẹ hơn, mức độ khó khăn thấp hơn và tuổi nghề dài hơn.

Hình 3 17 Thống kê ngành học theo độ tuổi

Biểu đồ thống kê kết quả hai ngành học theo giới tính cho thấy: Học viên nam có tỷ lệ chọn ngành lập trình cao hơn nhiều so với ngành kiểm thử, trong khi đó, học viên nữ lại ưu tiên ngành kiểm thử hơn một chút.

Hình 3 8 Thống kê ngành học theo giới tính

Biểu đồ thống kê ngành học theo vùng miền cho thấy tỷ lệ học viên chọn ngành lập trình luôn cao hơn ngành kiểm thử, bất kể vùng miền nào.

Hình 3 19 Thống kê ngành học theo vùng miền

Ứng dụng hiển thị biểu đồ thống kê ngành học dựa trên đặc trưng trình độ Đối với nhóm người học có trình độ đại học, tỷ lệ chọn hai ngành học khá cân bằng so với hai nhóm còn lại.

Hình 3 80 Thống kê ngành học theo trình độ

Ứng dụng cung cấp biểu đồ thống kê ngành học theo đặc trưng Thiên hướng, cho thấy rằng người học có thiên hướng KHTN thường chọn ngành lập trình với tỷ lệ cao hơn, trong khi người học có thiên hướng KHXH có xu hướng chọn ngành kiểm thử nhiều hơn.

Hình 3 21 Thống kê ngành học theo thiên hướng

Chức năng export dữ liệu ra Excel

The following code function exports data from a dataset to an Excel file named student.xlsx This function utilizes the openpyxl library to export all dataset information into the Excel file It is triggered when the user selects the menu option: File → Export Data → Export to Excel.

Sau khi thực hiện xong, ta có thể mở file Excel được tạo ra để xem kết quả như hình bên dưới

Hình 3 22 Kết quả chức năng export dữ liệu ra Excel

Chức năng export dữ liệu ra file JSON

Hàm dưới đây thực hiện chức năng xuất dữ liệu từ dataset ra file JSON có tên luanvan.json Hàm này sẽ được kích hoạt khi người dùng chọn menu: File  Export dữ liệu  Export ra JSON.

Sau khi thực hiện xong, ta có thể mở file JSON được tạo ra để xem kết quả đã lưu thành công ra file JSON như hình bên dưới

Hình 3.23 Kết quả chức năng export dữ liệu ra JSON

Chức năng export dữ liệu ra CSDL NoSQL

Hàm mã nguồn dưới đây thực hiện chức năng xuất dữ liệu từ dataset ra cơ sở dữ liệu NoSQL-MongoDB có tên là luanvan Hàm này sẽ được kích hoạt khi người dùng chọn menu chức năng: File  Export dữ liệu  Export ra NoSQL-MongoDB.

Dữ liệu đã được lưu thành công ra CSDL với tên là luanvan, và được lưu trong collection có tên là sinhvien như hình bên dưới

Hình 3.24 Kết quả chức năng export dữ liệu ra MongoDB

Chức năng export dữ liệu ra CSDL SQLite

Hàm mã nguồn dưới đây thực hiện chức năng xuất dữ liệu từ dataset vào cơ sở dữ liệu SQLite có tên luanvan.sqlite Hàm này sẽ được kích hoạt khi người dùng chọn menu chức năng: File  Export dữ liệu  Export ra SQLite.

Áp dụng kết quả đề tài vào thực tiễn Học viện NIIT-ICT HN

- Việc tư vấn ngành học vẫn dựa chủ yếu vào cảm tính và phụ thuộc vào kỹ năng của nhân viên tư vấn tuyển sinh

- Điều đó dẫn đến vẫn có nhiều trường hợp lựa chọn sai ngành học, từ đó sẽ dẫn tới lãng phí thời gian, chi phí

3.8.2 Kết quả sau khi áp dụng kết quả đề tài

- Đối với cán bộ tư vấn:

Một công cụ trực quan mới sẽ được triển khai nhằm phân loại học viên mới, giúp cán bộ tư vấn chính xác và phù hợp hơn với nhu cầu của người học.

- Đối với lãnh đạo học viện:

Thông tin thống kê trực quan qua các năm sẽ giúp dễ dàng và chính xác hơn trong việc dự đoán xu hướng xã hội.

Ngày đăng: 09/12/2023, 09:58

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w