Dưới đây là một tổng quan về bài toán phân lớp dữ liệu: - Đầu vào Input: Tập dữ liệu huấn luyện: Bao gồm các mẫu dữ liệu đã được gán nhãn lớphoặc nhãn đã biết trước.. Với giaodiện đồ h
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC KINH TẾ TP HỒ CHÍ MINH
Gỉang viên: Đặng Ngọc Hoàng Thành
TP Hồ Chí Minh – Ngày 21 Tháng 3 năm 202
Trang 2MỤC LỤC
LỜI MỞ ĐẦU 3
CHƯƠNG 1: TỔNG QUAN 3
1.1 Tổng quan về bài toán phân lớp dữ liệu: 3
1.2 Giới thiệu về Python và phần mềm Orange: 4
1.3 Lý do lựa chọn đề tài: 5
CHƯƠNG 2: CÁC MÔ HÌNH PHÂN LỚP DỮ LIỆU 6
2.1 Các mô hình phân lớp dữ liệu 6
2.1.1 Mô hình Logistic Regression 6
2.1.2 Mô Hình Decision Tree 6
2.1.3 Mô Hình Support Vector Machine 7
2.1.4 Mô Hình Neural Network 8
2.2 Quy Trình Phân Lớp Dữ Liệu 9
2.2.1 Tiền Xử Lý Dữ Liệu 9
2.2.2 Phân Lớp Dữ Liệu 10
2.2.3 Đánh Giá Tính Hiệu Quả 12
CHƯƠNG 3 CÁC KẾT QUẢ THỰC NGHIỆM 12
3.1 Mô tả bài toán: 12
3.2 Mô tả dữ liệu: 12
3.3 Phân lớp dữ liệu 13
3.3.1 Xử lý dữ liệu 13
3.3.2 Sử dụng mô hình phân lớp dữ liệu 16
CHƯƠNG 4: KẾT LUẬN 25
4.1 Các Kết Quả Đạt Được 25
4.2 Những Hạn Chế và Hướng Phát Triển 25
LỜI KẾT 26
TÀI LIỆU THAM KHẢO 26
Trang 3LỜI MỞ ĐẦU
Lời đầu tiên, nhóm chúng em xin gửi lời cảm ơn chân thành đến thầy ĐặngNgọc Hoàng Thành Trong quá trình học tập, dưới sự chỉ dẫn tận tình của thầycùng với sự tìm hiểu nhiệt tình, năng nổ và làm việc ăn ý của nhóm đã giúpchúng em có cái nhìn sâu sắc về phần mềm Orange nói riêng và môn khoa học
dữ liệu nói chung Thông qua đồ án này, nhóm em xin trình bày về những kiếnthức và kỹ năng mà nhóm em đã thu hoạch được trong suốt quá trình học tập.Lần đầu tiếp cận nguyên cứu đề tài nên trong quá trình thực hiện đồ án sẽ cónhững thiếu sót Vì vậy, chúng em rất mong nhận được những lời nhận xét từthầy để góp phần hoàn thiện đồ án kết thúc môn học tốt nhất
Trang 4CHƯƠNG 1: TỔNG QUAN
1.1 Tổng quan về bài toán phân lớp dữ liệu:
Bài toán phân lớp dữ liệu là một trong những bài toán cơ bản và quan trọngtrong lĩnh vực khoa học dữ liệu Mục tiêu của bài toán này là dự đoán lớp hoặcnhãn của các mẫu dữ liệu mới dựa trên thông tin đã được học từ các mẫu dữliệu đã biết trước
Dưới đây là một tổng quan về bài toán phân lớp dữ liệu:
- Đầu vào (Input):
Tập dữ liệu huấn luyện: Bao gồm các mẫu dữ liệu đã được gán nhãn (lớphoặc nhãn đã biết trước)
Tập dữ liệu kiểm tra: Bao gồm các mẫu dữ liệu mà chúng ta muốn dự đoánlớp hoặc nhãn tương ứng
- Thuật toán Phân lớp (Classification Algorithms):
Logistic Regression
Support Vector Machines (SVM)
Decision Trees và Random Forests
K-Nearest Neighbors (KNN)
Neural Networks
Naive Bayes
Ensemble Methods (ví dụ: AdaBoost, Gradient Boosting)
- Huấn luyện (Training):
Sử dụng tập dữ liệu huấn luyện để xây dựng mô hình phân lớp
Thuật toán sẽ học từ các mẫu dữ liệu đã biết trước để tìm ra mối quan hệgiữa các đặc trưng và nhãn
- Đánh giá (Evaluation):
Sử dụng các phương pháp đánh giá như ma trận nhầm lẫn (confusionmatrix), độ chính xác (accuracy), độ chính xác cân bằng (balancedaccuracy), độ chính xác đa lớp (multiclass accuracy), độ chính xác nhóm(group accuracy) để đánh giá hiệu suất của mô hình
Có thể sử dụng kỹ thuật chia tập dữ liệu thành tập huấn luyện và tập kiểmtra để đánh giá hiệu suất mô hình
- Tinh chỉnh (Fine-tuning):
Tối ưu hóa các tham số của mô hình để cải thiện hiệu suất dự đoán trên tập
Trang 5và nhiều ứng dụng khác trong thực tiễn.
1.2 Giới thiệu về Python và phần mềm Orange:
Python là một ngôn ngữ lập trình thông dịch, mạnh mẽ và dễ học, được sửdụng rộng rãi trong nhiều lĩnh vực khác nhau bao gồm phân tích dữ liệu, trí tuệnhân tạo, phát triển web và nhiều ứng dụng khác Điều đặc biệt về Python là cúpháp gần gũi, dễ đọc, giúp cho việc phát triển và bảo trì mã nguồn trở nên dễdàng hơn so với nhiều ngôn ngữ lập trình khác Python cũng có một cộng đồnglớn mạnh mẽ, cung cấp hàng ngàn thư viện và khung phần mềm cho nhiều mụcđích khác nhau
Orange là một phần mềm mã nguồn mở được thiết kế để hỗ trợ trong quá trìnhkhai phá dữ liệu và phân tích dữ liệu một cách trực quan và dễ hiểu Với giaodiện đồ họa người dùng (GUI) thân thiện, Orange cung cấp một loạt các công
cụ và tính năng để thực hiện các nhiệm vụ như phân tích dữ liệu, trực quan hóa
dữ liệu, xây dựng mô hình dự đoán và nhiều công việc khác mà không yêu cầukiến thức chuyên sâu về lập trình hay khoa học dữ liệu
Một số điểm nổi bật về Orange:
Giao diện trực quan (GUI): Orange cung cấp một giao diện đồ họa ngườidùng (GUI) dễ sử dụng, cho phép người dùng thực hiện các thao tác phântích dữ liệu một cách trực quan
Công cụ và tính năng đa dạng: Orange cung cấp một loạt các công cụ vàtính năng cho việc phân tích dữ liệu, bao gồm trực quan hóa dữ liệu, tiền
xử lý dữ liệu, xây dựng và đánh giá mô hình dự đoán và nhiều hơn nữa
Orange hỗ trợ nhiều định dạng dữ liệu khác nhau bao gồm dữ liệu bảng, dữliệu văn bản, hình ảnh và âm thanh
Orange có một cộng đồng lớn với tài liệu phong phú và hỗ trợ từ cộngđồng người dùng
Orange và Python thường được sử dụng cùng nhau để thực hiện các dự án phântích dữ liệu và khoa học dữ liệu, giúp người dùng tiết kiệm thời gian và côngsức trong việc thực hiện các nhiệm vụ phức tạp
1.3 Lý do lựa chọn đề tài:
Trang 6Việc dự đoán ứng viên được tuyển dụng là một trong những vấn đề quan trọngtrong quản lý nhân sự và tuyển dụng Áp dụng khoa học dữ liệu và các công cụcủa Orange vào việc này có thể giúp cải thiện quy trình tuyển dụng, giảm thiểusai sót và tăng cường khả năng lựa chọn ứng viên phù hợp Việc sử dụng phầnmềm Orange cho phân tích dữ liệu cung cấp khả năng thực hiện phân tích và
dự đoán một cách nhanh chóng Điều này có thể hỗ trợ quy trình tuyển dụngbằng cách cung cấp phản hồi về các ứng viên một cách hiệu quả trong thời gianngắn.Đồng thời phần mềm Orange cung cấp các công cụ trực quan hóa dữ liệumạnh mẽ, giúp hiểu rõ hơn về thông tin từ các dữ liệu nhân sự Việc trực quanhóa dữ liệu có thể giúp cho việc xác định các mẫu và xu hướng quan trọngtrong dữ liệu tuyển dụng trở nên dễ dàng hơn Bên cạnh đó áp dụng khoa học
dữ liệu vào quy trình tuyển dụng có thể giúp tối ưu hóa quy trình này, từ việcthu thập thông tin ứng viên đến việc đưa ra quyết định cuối cùng Điều này cóthể giúp tăng cường hiệu suất của quy trình tuyển dụng và giảm thiểu chi phícũng như thời gian Và khi đã xây dựng được một hệ thống dự đoán hiệu quảchúng ta có thể mở rộng ứng dụng này để áp dụng vào các lĩnh vực khác như
dự đoán hiệu suất lao động, dự đoán nhu cầu nhân sự trong tương lai và nhiềuứng dụng khác trong quản lý nhân sự Tóm lại, việc lựa chọn đề tài này kết hợpgiữa nhu cầu thực tiễn trong lĩnh vực tuyển dụng, tiềm năng của công nghệkhoa học dữ liệu và phần mềm Orange để cải thiện quy trình tuyển dụng vàquản lý nhân sự
Trang 7CHƯƠNG 2: CÁC MÔ HÌNH PHÂN LỚP DỮ LIỆU
2.1 Các mô hình phân lớp dữ liệu
2.1.1 Mô hình Logistic Regression
Logistic Regression (Hồi quy Logistic) là một mô hình xác xuất dự đoángiá trị đầu ra rời rạc từ một tập các giá trị đầu vào (biểu diễn dưới dạngvector)
Có ba dạng hồi quy Logistic:
1 Hồi quy Logistic nhị phân: biến phụ thuộc chỉ có hai kết quả/ lớp cóthể xảy ra
2 Hồi quy Logistic đa thức: biến phụ thuộc chỉ có hai hoặc ba kết quả/lớp trở lên có thể có mà thứ tự được sắp xếp ngẫu nhiên
3 Hồi quy Logistic thông thường: biến phụ thuộc chỉ có hai hoặc nhiềuhơn ba kết quả/ lớp có thể có được sắp xếp theo đúng thứ tự
Hình 1.2 Minh họa mô hình Logistic Regression
2.1.2 Mô Hình Decision Tree
Trong lý thuyết quản trị, cây quyết định là đồ thị các quyết định cùng cáckết quả khả dĩ đi kèm nhằm hỗ trợ quá trình ra quyết định
Trang 8Trong lĩnh vực khai thác dữ liệu, cây quyết định là phương pháp nhằm mô
tả, phân loại và tổng quát hóa tập dữ liệu cho trước
Hình 2.2 Minh họa xây dựng mô hình cây quyết định
2.1.3 Mô Hình Support Vector Machine
SVM là một thuật toán có giám sát, SVM nhận dữ liệu vào, xem chúng nhưnhững các vector trong không gian và phân loại chúng vào các lớp khácnhau bằng cách xây dựng một siêu phẳng trong không gian nhiều chiều làmmặt phân cách các lớp dữ liệu
Để tối ưu kết quả phân lớp thì phải xác định siêu phẳng (hyperplane) cókhoảng cách đến các điểm dữ liệu (margin) của tất cả các lớp xa nhất cóthể SVM có nhiều biến thể phù hợp với các bài toán phân loại khác nhau
Phân lớp đa lớp (biên giữa các lớp là tuyến tính)
Kernel SVM Dữ liệu là phi tuyến
Trang 9Hình 3.2 Minh họa mô hình SVM
2.1.4 Mô Hình Neural Network
Phương pháp Neural Network là mạng lưới Nơ-ron nhân tạo Đây là chuỗithuật toán nhằm tìm kiếm quan hệ trong tập hợp dữ liệu hệ thống dựa theocách thức hoạt động não bộ con người Neural Network thích ứng với mọiđiều chỉnh từ đầu vào, cho ra kết quả đầu ra tốt nhất, nó có các đặc điểmnhư sau:
- Mạng lưới nơ-ron nhân tạo hoạt động như nơ-ron trong não bộ con người.Trong đó, mỗi nơ-ron là một hàm toán học, có chức năng thu thập và phânloại dữ liệu, thông tin theo cáu trúc chi tiết
- Neural Network tương đồng với những phương pháp thống kê theo đồ thịđường cong hoặc phân tích hồi quy Neural Network bao hàm các nút mạngliên kết với nhau
- Mỗi nút là một tập hợp các tri giác, cấu tạo tương tự hàm hồi quy đa tuyếntính, được sắp xếp liên kết với nhau Các lớp này sẽ thu thập thông tin, sau
đó phân loại và phát tín hiệu đầu ra tương ứng
Trang 10Hình 4.2 Minh họa mô hình Neural Network
2.2 Quy Trình Phân Lớp Dữ Liệu
2.2.1 Tiền Xử Lý Dữ Liệu
Là quá trình xử lý dữ liệu thô/gốc (raw/original data) nhằm cải thiện chấtlượng dữ liệu (quality of data) và do đó, cải thiện chất lượng của kết quảkhai phá
- Dữ liệu thô/gốc: có thể có cấu trúc hoặc không có cấu trúc; nằm ở nhiềuđịnh dạng khác nhau (tập tin hoặc CSDL)
- Chất lượng dữ liệu (data quality): tính chính xác, tính hiện hành, tính toànvẹn, tính nhất quán
Trang 11Hình 5.2 Các giai đoạn tiền xử lý dữ liệu
Làm sạch dữ liệu (data cleaning/ cleansing): loại bỏ nhiễu (remove noise),hiệu chỉnh những phần dữ liệu không nhất quán (correct datainconsistencies), bao gồm:
Tóm tắt hóa dữ liệu
Xử lý dữ liệu bị thiếu (missing data)
Xử lý dữ liệu bị nhiễu (noisy data)
2.2.2 Phân Lớp Dữ Liệu
Là quá trình phân một đối tượng dữ liệu vào một hay nhiều lớp (loại) đãcho trước nhờ một mô hình phân lớp Mô hình này được xây dựng dựa trênmột tập dữ liễu đã được gán nhãn trước đó (thuộc về lớp nào) Quá trìnhgán nhãn (thuộc lớp nào) cho đối tượng dữ liệu chính là quá trình phân lớp
dữ liệu
Trang 12Hình 6.2 Minh họa mô hình phân lớp dữ liệu
Quá trình phân lớp dữ liệu gồm 2 bước chính:
Bước 1: Xây dựng mô hình (hay còn gọi là giai đoạn “học” hoặc “huấnluyện”)
+ Dữ liệu đầu vào: là dữ liệu mẫu đã được gán nhãn và tiền xử lý+ Các thuật toán phân lớp: cây quyết định, hàm số toán học, tậpluật…
+ Kết quả của bước này là mô hình phân lớp đã được huấnluyện (trình phân lớp)
Bước 2: Sử dụng mô hình chia thành 2 bước nhỏ
Bước 2.1: Đánh giá mô hình (kiểm tra tính đúng đắn của môhình)
- Dữ liệu đầu vào: là một tập dữ liệu mẫu khác đã được gán nhãn và tiền xử lý.Tuy nhiên lúc đưa vào mô hình phân lớp ta “lờ” đi thuộc tính đã được gánnhãn
- Tính đúng đắn của mô hình sẽ được xác định bằng cách so sánh thuộc tínhgán nhãn của dữ liệu đầu vào và kết quả phân lớp của mô hình
Bước 2.2: Phân lớp dữ liệu mới
- Dữ liệu đầu vào: là dữ liệu “khuyết” thuộc tính cần dữ đoán lớp (nhãn)
Trang 13- Mô hình sẽ tự động phân lớp (gán nhãn) cho các đối tượng dữ liệu này dựavào những gì được huấn luyện ở bước 1.
2.2.3 Đánh Giá Tính Hiệu Quả
Một số ứng dụng, tính hiệu quả mô hình phân lớp:
Trang 14CHƯƠNG 3 CÁC KẾT QUẢ THỰC NGHIỆM
3.1 Mô tả bài toán:
Dự đoán ứng viên được tuyển dụng dựa trên các thông tin có trong bộ dữ liệu
sẽ giúp cho công ty sàng lọc được các ứng viên phù hợp với những tiêu chí màcông ty mong muốn và đề ra
3.2 Mô tả dữ liệu:
- Được lưu với tên là Job_Placement_Data.csv
- Dữ liệu thô bao gồm 215 mẫu dữ liệu (instances) và 13 biến (features)
Hình 1.3 Tập dữ liệu
Trang 153.3 Phân lớp dữ liệu
3.3.1 Xử lý dữ liệu
- Sử dụng Data Sampler để phân tách dữ liệu từ file ban đầu thành hai fileriêng biệt theo tỷ lệ 70-30
Hình 2.3 Lấy mẫu dữ liệu
- Lấy file dữ liệu lớn (70%) làm tập dữ liệu training
Trang 16Hình 3.3 Mẫu dữ liệu TrainingTập dữ liệu sau khi phân tách có 151 mẫu dữ liệu và 12 biến (không có dữ liệu
bị lỗi) Được lưu với tên Job_Placement_Data.tab
- Lấy file dữ liệu nhỏ (30%) làm tập dữ liệu Test
Trang 17Hình 4.3 Mẫu dữ liệu TestTập dữ liệu này có 64 mẫu dữ liệu với 12 biến (không có dữ liệu bị lỗi)
Hình 5.3 Mô hình lấy mẫu dữ liệu
3.3.2 Sử dụng mô hình phân lớp dữ liệu
3.3.2.1 Lựa chọn mô hình phân lớp
Bước 1: Sử dụng tập dữ liệu Training, sau đó chọn Status là biến phụ thuộc(Target)
Trang 18Hình 6.3 Tập dữ liệu TrainingBước 2: Sử dụng các mô hình phân lớp như Logistic Regression, Tree, SVM,Neural Network để dự đoán ứng viên được tuyển dụng
Bước 3: Sử dụng các phương pháp đánh giá để chọn ra mô hình phân lớp đạthiệu quả nhất
Kết quả đánh giá Test and Score
Với k=5
Trang 19Hình 7.3 Kết quả khi chia mẫu dữ liệu thành 5 phần
Nhận xét:
Tại mục Evaluation results for target, nhìn qua kết quả định lượng của 4 môhình thì ta có thể thấy rằng mô hình Neural Network có nhiều giá trị đạt kết quảcao nhất Cụ thể như:
- Diện tích đường cong (AU) là 0.906
Trang 20Hình 8.3 Kết quả ma trận nhầm lẫn của mô hình SVM
Nhận xét:
- Tỷ lệ nhầm lẫn giữa ứng cử viên được tuyển dụng (Placed) trong dự đoán so với thực tế là không được tuyển dụng (Not Placed) là khoảng 15.0%
- Tỷ lệ nhầm lẫn giữa ứng cử viên không được tuyển dụng (Not Placed)trong dự đoán so với thực tế là được tuyển dụng (Placed) là khoảng21.1%
Hình 9.3 Kết quả ma trận nhầm lẫn của mô hình Neural Network
Trang 21- Tỷ lệ nhầm lẫn giữa ứng cử viên được tuyển dụng (Placed) trong dựđoán so với thực tế là không được tuyển dụng (Not Placed) là khoảng12.7%
- Tỷ lệ nhầm lẫn giữa ứng cử viên không được tuyển dụng (Not Placed)trong dự đoán so với thực tế là được tuyển dụng (Placed) là khoảng19.5%
Hình 10.3 Kết quả ma trận nhầm lẫn của mô hình Decision Tree
Nhận xét:
- Tỷ lệ nhầm lẫn giữa ứng cử viên được tuyển dụng (Placed) trong dựđoán so với thực tế là không được tuyển dụng (Not Placed) là khoảng13.3%
- Tỷ lệ nhầm lẫn giữa ứng cử viên không được tuyển dụng (Not Placed)trong dự đoán so với thực tế là được tuyển dụng (Placed) là khoảng35.8%
Trang 22Hình 11.3 Kết quả ma trận nhầm lẫn của mô hình Logistic Regression
Nhận xét:
- Tỷ lệ nhầm lẫn giữa ứng cử viên được tuyển dụng (Placed) trong dựđoán so với thực tế là không được tuyển dụng (Not Placed) là khoảng12.3%
- Tỷ lệ nhầm lẫn giữa ứng cử viên không được tuyển dụng (Not Placed)trong dự đoán so với thực tế là được tuyển dụng (Placed) là khoảng24.4%
- Tỷ lệ nhầm lẫn giữa ứng cử viên không được tuyển dụng (Not Placed)trong dự đoán so với thực tế là được tuyển dụng (Placed) là khoảng19.5% (thấp thứ nhất)
Và mô hình nào có các chỉ số sai lầm càng thấp thì mô hình đó sẽ càng hiệuquả Vậy mô hình Neural Network là mô hình hiệu quả nhất
ROC Analysis
Trang 23Hình 12.3 Đường cong ROC với biến phụ thuộc (Target) là Placed
Hình 13.3 Đường cong ROC với biến phụ thuộc (Target) là Not Placed
Trang 24 Nhận xét:
Đường cong ROC càng tiệm cận với điểm (0;1) thì mô hình càng hiệu quả vàthông qua hai hình trên chúng ta đều thấy được đường cong ROC của mô hìnhNeural Network là tiệm cận điểm này nhất với hình thứ nhất là đường màuxanh lá và hình thứ hai là đường màu cam
*Kết luận cho phương pháp hiệu quả nhất
Mô hình phân lớp Neural Network là phương pháp hiệu quả nhất để dự đoán
- Mô hình có nhiều giá trị đạt kết quả cao nhất