CHƯƠNG I: TỔNG QUAN 1.1 Tổng Quan Về Bài Toán Phân Lớp Dữ Liệu Khái niệm: Phân lớp dữ liệu là một kỹ thuật trong khai phá dữ liệu mà qua đó ta gắn tênlớp cho một phần tử của tập dữ liệu
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG CÔNG NGHỆ VÀ THIẾT KẾ
ĐỀ TÀI:
PHÂN TÍCH VÀ DỰ ĐOÁN
Ý ĐỊNH Ở LẠI HAY NGHỈ VIỆC CỦA NHÂN VIÊN
Trang 2MỤC LỤC
MỤC LỤC 2
LỜI MỞ ĐẦU 3
CHƯƠNG I: 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.2.1 Python 4
1.2.2 Phần Mềm Orange 4
1.3 Giới thiệu đề tài 4
1.3.1 Lý Do Chọn Đề Tài 4
1.3.2 Mục Tiêu Nghiên Cứu 5
CHƯƠNG II: CÁC MÔ HÌNH PHÂN LỚP DỮ LIỆU 5
2.1 Các Mô Hình Phân Lớp Dữ Liệu 5
2.1.1 Mô Hình Logistic Regression 5
2.1.2 Mô Hình Decision Tree 6
2.1.3 Mô Hình Support Vector Machine 6
2.1.4 Mô Hình Neural Network 7
2.2 Quy Trình Xử Lý Dữ Liệu 8
2.2.1 Tiền Xử Lý Dữ Liệu 8
2.2.2 Quy Trình Phân Lớp Dữ Liệu 8
2.2.3 Đánh Giá Tính Hiệu Quả 10
CHƯƠNG III CÁC KẾT QUẢ THỰC NGHIỆM 15
3.1 Bộ Dữ Liệu 15
3.1.1 Mô tả bài toán 15
3.1.2 Mô tả dữ liệu 15
3.2 Các Kết Quả Thực Nghiệm 17
3.2.1 Lấy Mẫu Dữ Liệu 17
3.2.2 Phân lớp dữ liệu 19
3.2.3 Dự báo 24
CHƯƠNG IV KẾT LUẬN 26
4.1 Các Kết Quả Đạt Được 26
4.2 Đề xuất 26
4.3 Những Hạn Chế Và Hướng Phát Triển 27
4.3.1 Hạn Chế 27
4.3.2 Hướng Phát Triển 27
TÀI LIỆU THAM KHẢO 28
Trang 3LỜI MỞ ĐẦU
viên môn Khoa Học Dữ Liệu của nhóm Chúng em vô cùng biết ơn những lờ i d ạy bảo nhiệt tình, sự chỉ d ẫn tận tâm từng chi tiết, từng đề mục của thầy đến vớ i các bạn sinh viên Bên cạnh đó, sự nhiệt huyết của thầy Thành đối vớ i nghề đã mang lại cho chúng em
một cảm giác r ất thoải mái, d ễ hiểu bài và sôi động trong mỗi buổi học Bộ môn Khoa
Lần đầu tiế p cận nghiên cứu đề tài nên trong quá trình thực hiện đồ án sẽ không tránh khỏi
có vài thiếu sót Vì vậy, nhóm 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.
CHƯƠNG I: TỔNG QUAN
1.1 Tổng Quan Về Bài Toán Phân Lớp Dữ Liệu
Khái niệm: Phân lớp dữ liệu là một kỹ thuật trong khai phá dữ liệu mà qua đó ta gắn tênlớp cho một phần tử của tập dữ liệu dựa vào đặc điểm của lớp Mục đích của phân lớp dữliệu là để xây dựng một mô hình mà có thể dự đoán được tên lớp của những phần tử mới
Quá trình phân lớp dữ liệu:
Trong những năm qua, phân lớp dữ liệu đã thu hút sự quan tâm các nhà nghiên cứu trongnhiều lĩnh vực khác nhau như học máy, hệ chuyên gia, thống kê… Công nghệ này cũngứng dụng trong nhiều lĩnh vực khác nhau như: thương mại, ngân hàng, maketing, nghiên
Trang 41.2 Giới Thiệu Về Python Và Phần Mềm Orange
Ngày nay, Python đã trở thành một yếu tố chính trong khoa học dữ liệu, cho phép các nhà phân tích dữ liệu và các chuyên gia khác sử dụng ngôn ngữ này để thực hiện các phép tínhthống kê phức tạp, tạo trực quan hóa dữ liệu, xây dựng thuật toán học máy, thao tác và phân tích dữ liệu cũng như hoàn thành các nhiệm vụ khác liên quan đến dữ liệu.
1.2.2 Phần Mềm Orange
Khai phá d ữ liệu và học máy là những lĩnh vực khá khó để khám phá và nghiên cứu Do
cứu các bài toán trong những lĩnhvực khó nhằn này Một trong những phần mềm đó có
thể k ể đến là Orange.
Phần mềm Orange biết đến bở i việc tích hợ p các công cụ khai phá d ữ liệu mã nguồn mở
liệu từ đơn giản đến phức tạ p, tạo ra những đồ họa đẹ p mắt và thú vị và còn giúp việc khai thác d ữ liệu và học máy tr ở nên d ễ dàng hơn cho cả ngườ i dùng mớ i và chuyên gia.Các công cụ (widgets) cung cấ p chức năng cơ bản như đọc d ữ liệu, hiển thị d ữ liệu d ạng bảng,
lựa chọn thuộc tính đặc điểm của d ữ liệu, huấn luyện d ữ liệu để d ự đoán, so sánh các thuật toán máy học, tr ực quan hóa các phần tử d ữ liệu…
1.3 Giớ i thiệu đề tài
1.3.1 Lý Do Chọn Đề Tài
Nhân viên là nhân tố vô cùng quan tr ọng đối vớ i một tổ chức, thậm chí bằng sự hiện diện
của họ trong đó là tài sản vốn con ngườ i quan tr ọng nhất, là k ết quả phản ánh sự thành công của tổ chức Khi nhân viên lựa chọn r ờ i khỏi một tổ chức, sự mất mát về nguồn lực, thông tin hoặc kiến thức mà nhân viên đó sở hữu tác động đến tổng thể tình hình của công
ty Dođó, nó trở thành thách thức lớ n nhất đối vớ i các nhà tuyển d ụng nhân sự trong việc
Trang 5xử lý tình tr ạng mất đi những nhân viên có chuyên môn của mình Trong ngành Nhân lực, thuật ngữ Employee Turnover và Employee Atrition có thể thay thế cho nhau Cả hai đều
có nghĩa là cắt giảm nhân viên thông qua việc nghỉ hưu, từ chức hoặc quađờ i Sự tiêu hao nhân lực là một vấn đề nghiêm tr ọng, đề cập đến việc tự nguyện hoặc buộc phải chấm d ứt công việc chuyên môn, điều nàyảnh hưởng đến thương hiệu vànăng suất của tổ chức Trong bài nghiên cứu này đề cập đến sự tiêu hao nhân lựcảnh hưở ng ít nhiều đến chiến
vớ i công việc hoặc môi trườ ng làm việc và cả những thách thức mà banlãnh đạo phải đối
mặt có thể d ẫn đến tỷ lệ tiêu hao nhân lực cao Những vấn đề này cũng vô tình cản tr ở sự phát triển của tổ chức, dođó để tìm ra giải pháp cho tốc độ tiêu hao nguồn nhân lực ngày
ở l ại hay nghỉ việ c củ a nhân viên d ự a trên bộ d ữ liệu Employee” .
1.3.2 Mục Tiêu Nghiên Cứu
trên bộ dữ liệu Employee” nhằm tập trung vào những mục tiêu được đề cập dưới đây:
▪ Tiến hành phân tích các lý thuyết của khai phá d ữ liệu nhằm tậ p trung làm rõ những
vấn đề của bài nghiên cứu.
pháp phân lớp đưa ra các dự báo, phân loại và cũng như phân lớp các đối tượng). Nghiên cứu sẽ đưa các phương pháp phân lớp dữ liệu, và từ đó sẽ chọn ra một phương pháp tối ưu và đảm bảo nhất cho quá trình dự báo dữ liệu.
về mức độ rời bỏ doanh nghiệp của nhân viên cũng như các cách thức cải thiện mức
độ này
CHƯƠNG II: 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
Định nghĩa:Là một mô hình xác suất dự đoán giá trị đầu ra rời rạc từ một tập giá trị đầuvào (biểu diễn dưới dạng vector), bằng cách dự đoán xác suất hoặc cơ hội xảy ra giùp suy
ra mối quan hệ giữa biến phụ thuộc và biến độc lập Việc này tương đương với chuyện
Trang 6Kết quả của hồi quy logistic là bất kỳ giá trị nhị phân nào như Nam hoặc Nữ, Có hoặcKhông, Thư rác hoặc Không phải là Thư rác Ngày nay nó được sử dụng phổ biến để phân
2.1.2 Mô Hình Decision Tree
Định nghĩa: Decision Tree (Cây quyết định) là một cây phân cấp có cấu trúc được dùng
để phân lớp các đối tượng dựa vào dãy các luật Các thuộc tính của đối tượng có thể thuộccác kiểu dữ liệu khác nhau như Nhị phân (Bianry), định danh (Nomial), thứ tự (Ordinal),
số lượng (Quantitative) trong khi đó thuộc tính của phân lớp phải có kiểu dữ liệu là Binary
2.1.3 Mô Hình Support Vector Machine
Định nghĩa: 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 vector trong không gian và phân loại chúng vào các
Trang 7lớp khác nhau bằng cách xây dựng một siêu phẳng trong không gian nhiều chiều làm mặt
Phương pháp này tìm ra một siêu phẳng quyết định tốt nhất để chia các điểm trên khônggian này thành các lớp riêng biệt Chất lượng của siêu phẳng này được quyết định bởi mộtkhoảng cách biên của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này Khoảng cách biên càng lớn thì càng có sự phân chia tốt các điểm ra thành hai lớp, nghĩa là sẽ đạt đượckết quả phân loại tốt Như vậy, để tối ưu hoá kết quả, ta xác định một mặt phẳng siêu
SVM là một trong những thuật toán Supervised Learning phổ biến nhất, được sử dụng chocác bài toán Phân loại cũng như Hồi quy Tuy nhiên, nó được sử dụng chủ yếu cho cácvấn đề Phân loại Thuật toán SVM có thể được sử dụng để nhận diện khuôn mặt, phân
2.1.4 Mô Hình Neural Network
Định nghĩa: 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 theo cách thức hoạtđộng của não bộ con người Neural Network thích ứng với mọi điều chỉnh từ đầu vào, cho
- 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ân loại dữ liệu, thông tin
- Neural Network tương đồng với những phương pháp thống kê theo đồ thị đường conghoặc phân tích hồi quy
- Mỗi nút là một tập hợp tri giác, cấu tạo tương tự hàm hồi quy đa tuyến tính, được sắpxế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
- Neural Netwrok là sự kết hợp của những tầng perceptron hay còn gọi là perceptron đatầng Và mỗi một mạng Neural Network thường bao gồm 3 kiều tầng: input, output và
Neural Network được ứng dụng trong rất nhiều lĩnh vực như: phân tích kinh doanh, đánh
Trang 8Hình 2.3 Minh hoạ mô hình SVM Hình 2.4 Minh hoạ mô hình Neural Network
2.2 Quy Trình Xử Lý Dữ Liệu
2.2.1 Tiền Xử Lý Dữ Liệu
Khái niệm: Tiền xử lý dữ liệu là quá trình xử lý dữ liệu thô/gốc nhằm cải thiện chất lượng
+ Làm sạch dữ liệu: loại bỏ dữ liệu thiếu, nhiễu và hiệu chỉnh những dữ liệu không
+ Rút gọn dữ liệu: thu giảm kích thước dữ liệu (giảm số phần tử) bằng kết hợp dữ liệu,
2.2.2 Quy Trình Phân Lớp Dữ Liệu
2.2.2.1 Phân Chia Dữ Liệu
a Phương Pháp Hold-out
Phương pháp Hold-out phân chia tập dữ liệu ban đầu thành 2 tập độc lập theo 1 tỷ lệ nhấtđịnh Phương pháp này thích hợp cho các tập dữ liệu nhỏ Tuy nhiên, các mẫu có thể
Có thể cải tiến bằng cách dùng phương pháp lấy mẫu sao cho mỗi lớp được phân bố đề
b Phương Pháp K-Fold Cross Validation
Phương pháp này phân chia dữ liệu thành k tập con có cùng kích thước (gọi là các fold).Một trong các fold được sử dụng làm tập dữ liệu đánh giá và phần còn lại được sử dụnglàm tập huấn luyện Quá trình này lặp lại cho đến khi tất cả các fold đều đã được dùng làm
Trang 9K-fold cross Validation thường được ưa chuộng hơn do mô hình sẽ được huấn luyện và dự
Hình 2.5 Minh hoạ phương pháp Hold - out Hình 2.6 Minh hoạ phương pháp K-fold
2.2.2.2 Phân Lớp Dữ Liệu
Định nghĩa: 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ềulớ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ình gán nhãn (thuộc
Hình 2.7 Minh hoạ cho phân lớp dữ liệuQuá 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ấn luyện)
- Quá trình học nhằm xây dựng một mô hình mô tả một tập các lớp dữ liệu hay các khái
- Dữ liệu đầu vào của quá trình này là: dữ liệu mẫu đã được gán nhãn và tiền xử lý để
Trang 10- Các thuật toán phân lớp: cây quyết định, hàm số toán học, tập luật…
Bước 2:Sử dụng mô hình, được chia làm 2 bước nhỏ:
- Dữ liệu đầu vào của quá trình này là một tập dữ liệu mẫu khác đã được gán nhãn và
- Tính đúng đắn của mô hình sẽ được xác định bằng cách so sánh thuộc tính gán nhãn
- 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ựa vào những
2.2.3 Đánh Giá Tính Hiệu Quả
Khái niệm: là các phương pháp nhằm kiểm tra tính hiệu quả của mô hình phân lớp trên dữliệu có đặc thù cụ thể, từ đó quyết định có sử dụng mô hình đó hay không Một mô hình lýtưởng là một mô hình không quá đơn giản, không quá phức tạp và không quá nhạy cảm
- Underfitting (chưa khớp): Mô hình được coi là chưa khớp nếu có chưa phù hợp với tâjp
dữ liệu huấn luyện và cả các mẫu mới khi dự đoán.Tồn tại nhiều điểm dữ liệu mà môhình không phân loại được đúng dẫn đến độ chính xác mô hình thấp Nguyên nhân cóthể là do mô hình chưa đủ độ phức tạp cần thiết để bao quát được tập dữ liệu
- Overfitting (quá khớp): Là hiện tượng mô hình tìm được quá khớp với dữ liệu huấnluyện Điều này dẫn đến việc dự đoán cả nhiễu nên mô hình không còn tốt khi phân lớptrên dữ liệu mới Nguyên nhân có thể do lượng dữ liệu huấn luyện quá nhỏ trong khi
độ phức tạp của mô hình quá cao nên mặc dù độ chính xác cao nhưng không thể mô tả
- Good fitting: Là trường hợp mô hình cho ra kết qủa hợp lý với cả tập dữ liệu huấn luyện
Trang 11Underfitting Good fitting Overfitting
Hình 2.8 Minh hoạ cho Underfitting, Good Fitting và Overfitting
2.2.3.1 Ma Trận Nhầm Lẫn (Confusion Matrix)
Confusion Matrix - ma trận nhầm lẫn hay ma trận lỗi là một bố cục bảng cụ thể cho phéphình dung hiệu suất của một thuật toán Nó chỉ ra có bao nhêi điểm dữ liệu thuộc vào một
Ma trận nhầm lẫn là một trong những kỹ thuật đo lường hiệu suất phổ biến nhất và được
Hình 2.9 Minh hoạ cho Confusion MatrixBài toán ví dụ: chuẩn đoán ung thư ta có 2 lớp, lớp bị ung thư được chuẩn đoán Positive
Trang 12Thực tế
Dương tính TP(45) FP(10)
Hình 2.10 Ma trận đơn giản cho bài toán ví dụ
Ta có một số thuật ngữ như sau:
Những chỉ số này sẽ là cơ sở để tính toán các độ đo như Accuracy, Precision, Recall,
2.2.3.2 Accuracy (Độ Chính Xác)
Accuracy - Độ chính xác là tỷ lệ số mẫu được phân lớp đúng trong toàn bộ tập dữliệu.Độ chính xác giúp ta đánh giá hiệu quả dự báo của mô hình trên một bộ dữ liệu Độchính xác càng cao thì mô hình của chúng ta càng chuẩn xác.
Lưu ý: Accuracy chỉ cho chúng ta biết được tỷ lệ dữ liệu được phân loại đúng mà khôngchỉ ra được cụ thể mỗi loại được phân loại như thế nào, lớp nào được phân loại đúng
Trang 13Hình 2.11: Minh hoạ cho Độ chính Xác - Accuracy
nhiêu trường hợp là đúng Và tất nhiên precision càng cao thì mô hình của chúng ta
- Đo lường khả năng phân lớp chính xác của quá trình phân lớp dữ liệu bằng cách xácđịnh xác xuất bỏ sót các trường hợp trong quá trình phân lớp dữ liệu
- Vì vậy độ phủ càng cao thì quá trình phân lớp dữ liệu càng chính xác vì nó hạn chế bỏ
Trang 142.2.3.4 ROC - Receiver Operating Characteristic
ROC là một đồ thị được sử dụng khá phổ biến trong đánh giá các mô hình phân loạinhị phân
Trong đường cong ROC, trục tung thể hiện tỷ lệ dự báo True Positive Rate (TPR) và
Một mô hình hiệu quả khi có FPR thấp và TPR cao, hay ROC càng tiệm cận với điểm
Hình 2.12 Minh hoạ cho ROC 2.2.3.5 AUC - Area Under the Curve
AUC là diện tích được tìm thấy bên dưới đường cong ROC
AUC tương ứng với khả năng của mô hình phân loại dữ liệu, với giá trị của mức độ phânloại của nó nằm trong khoảng từ 0 đến 1, với giá trị 1 đại diện cho khả năng phân loại hầu
AUC được coi là một phương pháp đánh giá tính hiệu quả của mô hình phân loại dữ liệutốt hơn Độ chính xác (Accuracy) hoặc Độ phủ (Recall) vì nó cung cấp một phương tiện
để đánh giá khả năng phân loại đối với các tập dữ liệu không cân bằng Trong các trườnghợp dữ liệu có sự mất cân bằng giữa các lớp, chỉ sử dụng độ chính xác hoặc độ phủ để
Trang 15Hình 2.13 Minh hoạ cho AUC
CHƯƠNG III CÁC KẾT QUẢ THỰC NGHIỆM
3.1 Bộ Dữ Liệu
3.1.1 Mô tả bài toán
Bộ dữ liệu này chứa thông tin về nhân viên trong một công ty, bao gồm trình độ học vấn,lịch sử công việc, nhân khẩu học và các yếu tố liên quan đến việc làm Nó đã được ẩndanh để bảo vệ quyền riêng tư trong khi vẫn cung cấp những hiểu biết có giá trị về lực
3.1.2 Mô tả dữ liệu
Trang 16Hình 3.1 Mẫu dữ liệu
Experience in
Số năm kinh nghiệm mà nhân viên
Trang 173.2 Các Kết Quả Thực Nghiệm
3.2.1 Lấy Mẫu Dữ Liệu
Để phục vụ cho phân lớp dữ liệu, nhóm đã sử dụng Data Sampler để thực hiện lấy tập dữliệu huấn luyện (Training Set) và tập dữ liệu thử nghiệm (Testing Set) theo tỷ lệ lần lượt là70:30.
Hình 3.2 Lấy mẫu dữ liệu
Trang 18Hình 3.3 Tập dữ liệu huấn luyện (Training Set) sau khi tách bằng Data Sampler
Hình 3.4 Tập dữ liệu thử nghiệm (Testing Set) sau khi tách bằng Data Sampler
Hình 3.5 Quá trình lấy mẫu dữ liệu