1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo chuyên Đề học phần khai phá dữ liệu Đề tai sử dụng thuật toán cây quyết Định trong bai toán tuyển dụng nhân sự

32 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Sử Dụng Thuật Toán Cây Quyết Định Trong Bài Toán Tuyển Dụng Nhân Sự
Tác giả Nguyễn Văn Hải, Tạ Thị Chinh, Đỗ Chí Đức
Người hướng dẫn Nguyễn Thị Thanh Tân
Trường học Trường Đại Học Điện Lực
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo chuyên đề
Năm xuất bản 2020 - 2025
Định dạng
Số trang 32
Dung lượng 2,48 MB

Nội dung

Để giải quyết vấn đề này, trong báo cáo này, chúng em tập trung vào sử dụng thuật toán Cây quyết định Decision Tree trong bài toán tuyển dụng nhân sự, nhằm hỗ trợ quá trình ra quyết định

Trang 1

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN

KHAI PHÁ DỮ LIỆU

ĐỀ TI:

SỬ DỤNG THUẬT TOÁN CÂY QUYẾT ĐỊNH TRONG

BI TOÁN TUYỂN DỤNG NHÂN SỰ

Sinh viên thực hiện : NGUYỄN VĂN HẢI

TẠ THỊ CHINH

ĐỖ CHÍ ĐỨC Giảng viên hướng dẫn : NGUYỄN THỊ THANH TÂN Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM Lớp : D15CNPM2

Khóa : 2020 - 2025

Ngày … Tháng… Năm…

Trang 2

1 Nguyễn Văn Hải Thực hiện mô hình tuyển dụng

nhân sự, làm báo cáo, tìm kiếm nội dung cơ sở dữ liệu

2 Tạ Thị Chinh Làm cơ sở dữ liệu, làm báo cáo,

Trang 3

MỤC LỤC

LỜI MỞ ĐẦU

Trang

Trang 4

LỜI MỞ ĐẦU

Trong thế giới đang bước vào cuộc cách mạng 4.0, Trí tuệ nhân tạo

(Artificial Intelligence), Dữ liệu lớn (Big Data), Học máy (Machine Learning), Họcsâu (Deep Learning) đã được nghiên cứu, áp dụng và phục vụ cho rất nhiều lĩnh vực Các công ty và doanh nghiệp, đặc biệt là các công ty công nghệ thông tin, đều nhận thức rằng việc tuyển dụng nhân sự là một hoạt động chiến lược và diễn ra thường xuyên, liên tục Mục tiêu của việc tuyển dụng là chọn lọc những ứng viên phù hợp với yêu cầu công việc

Tuy nhiên, với hàng trăm hồ sơ nộp vào cho mỗi vị trí tuyển dụng, việc sàng lọc để chọn ra những ứng viên có tiềm năng không phải là một công việc dễ dàng

Để giải quyết vấn đề này, trong báo cáo này, chúng em tập trung vào sử dụng thuật toán Cây quyết định (Decision Tree) trong bài toán tuyển dụng nhân sự, nhằm hỗ trợ quá trình ra quyết định tuyển dụng dựa trên cơ sở dữ liệu lịch sử tuyển dụng.Báo cáo này sẽ trình bày chi tiết về cây quyết định và ứng dụng của nó trong bài toán tuyển dụng nhân sự Chúng em cũng sẽ giới thiệu module

ID3_hire_employees được lập trình bằng ngôn ngữ Python, sử dụng thuật toán ID3

để minh họa quá trình xây dựng cây quyết định với một tập dữ liệu cụ thể

Qua báo cáo này, chúng em hy vọng rằng mọi người sẽ hiểu rõ hơn về thuật toán cây quyết định và cách áp dụng nó trong lĩnh vực tuyển dụng nhân sự Bằng cách sử dụng công nghệ thông tin và phân tích dữ liệu, các công ty có thể tối ưu hóa quy trình tuyển dụng và tìm ra những ứng viên có tiềm năng cao, đồng thời tiếtkiệm thời gian và công sức

Chúng em hy vọng rằng báo cáo này sẽ mang lại những thông tin hữu ích và cung cấp

Chúng em rất cảm ơn cô Nguyễn Thị Thanh Tân đã tận tình chỉ bảo để bọn

em có thể hoàn thiện xong bài báo cáo này, chắc chắn sẽ có điều sai sót mong thầy

cô góp ý để bọn em có thể cải thiện thêm

Trang 5

CHƯƠNG 1: TỔNG QUAN VỀ CÂY QUYẾT ĐỊNH

1.1 Giới thiệu về cây quyết định

Trong lý thuyết quyết định (chẳng hạn quản lí rủi ro), một cây quyết định (Decision Tree) là một đồ thị của các quyết định và các hậu quả có thể của nó (bao gồm rủi ro và hao phí tài nguyên) Cây quyết định được sử dụng để xây dựng một

kế hoạch nhằm đạt được mục tiêu mong muốn Các cây quyết định được dùng để

hỗ trợ quá trình ra quyết định Cây quyết định là một dạng đặc biệt của cấu trúc cây

Trong lĩnh vực máy học (Learning Machine), cây quyết định là một kiểu mô hình dự báo (Predictive Model), nghĩa là một ánh xạ từ các quan sát về một sự vật/hiện tượng tới các kết luận về giá trị mục tiêu của sự vật/hiện tượng Mỗi một nút trong (Internal Node) tương ứng với một biến; đường nối giữa nó với nút con của nó thể hiện một giá trị cụ thể cho biến đó Mỗi nút lá đại diện cho giá trị dự đoán của biến mục tiêu, cho trước các giá trị của các biến được biểu diễn bởi đường

đi từ nút gốc tới nút lá đó Kỹ thuật máy học dùng trong cây quyết định được gọi là học bằng cây quyết định, hay chỉ gọi với cái tên ngắn gọn là cây quyết định.Học bằng cây quyết định cũng là một phương pháp thông dụng trong khai phá

dữ liệu Khi đó, cây quyết định mô tả một cấu trúc cây, trong đó, các lá đại diện chocác phân loại còn cành đại diện cho các kết hợp của các thuộc tính dẫn tới phân loại

đó Một cây quyết định có thể được học bằng cách chia tập hợp nguồn thành các tập con dựa theo một kiểm tra giá trị thuộc tính Quá trình này được lặp lại một cách đệ qui cho mỗi tập con dẫn xuất Quá trình đệ qui hoàn thành khi không thể tiếp tục thực hiện việc chia tách được nữa, hay khi một phân loại đơn có thể áp dụng cho từng phần tử của tập con dẫn xuất Một bộ phân loại rừng ngẫu nhiên (Random Forest) sử dụng một số cây quyết định để có thể cải thiện tỉ lệ phân loại

Trang 6

Cây quyết định cũng là một phương tiện có tính mô tả dành cho việc tính toán các xác suất có điều kiện.

Cây quyết định có thể được mô tả như là sự kết hợp của các kỹ thuật toán học

và tính toán nhằm hỗ trợ việc mô tả, phân loại và tổng quát hóa một tập dữ liệu chotrước

Dữ liệu được cho dưới dạng các bản ghi có dạng:

(x, y) = (x1, x2, x3…, xk, y)

Biến phụ thuộc (Dependant Variable) y là biến mà chúng ta cần tìm hiểu, phân loại hay tổng quát hóa x1, x2, x3 … là các biến sẽ giúp ta thực hiện công việcđó

1.2.Khái niệm cây quyết định

Cây quyết định (Decision Tree) 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ộc các kiểu dữ liệu khác nhau như Nhị phân (Binary) , Định danh

(Nominal), Thứ tự (Ordinal), Số lượng (Quantitative) trong khi đó thuộc tính phân lớp phải có kiểu dữ liệu là Binary hoặc Ordinal

Tóm lại, cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp (classes) của nó, cây quyết định sẽ sinh ra các luật để dự đoán lớp của các dữ liệu chưa biết

Ta hãy xét một ví dụ 1 kinh điển khác về cây quyết định Giả sử dựa theo thời tiết mà các bạn nam sẽ quyết định đi đá bóng hay không?

Những đặc điểm ban đầu là:

Trang 7

● Thời tiết

● Độ ẩm

● Gió

Dựa vào những thông tin trên, bạn có thể xây dựng được mô hình như sau:

Dựa theo mô hình trên, ta thấy:

Nếu trời nắng, độ ẩm bình thường thì khả năng các bạn nam đi chơi bóng sẽ cao Còn nếu trời nắng, độ ẩm cao thì khả năng các bạn nam sẽ không đi chơi bóng

Trang 8

Chương 2 : THUẬT TOÁN ID3

2.1 Ý tưởng

Trong ID3, chúng ta cần xác định thứ tự của thuộc tính cần được xem xét tại mỗi bước Với các bài toán có nhiều thuộc tính và mỗi thuộc tính có nhiều giá trị khác nhau, việc tìm được nghiệm tối ưu thường là không khả thi Thay vào đó, một phương pháp đơn giản thường được sử dụng là tại mỗi bước, một thuộc tính tốt nhất sẽ được chọn ra dựa trên một tiêu chuẩn nào đó (chúng ta sẽ bàn sớm) Với mỗi thuộc tính được chọn, ta chia dữ liệu vào các child node tương ứng với các giá trị của thuộc tính đó rồi tiếp tục áp dụng phương pháp này cho mỗi child node Việcchọn ra thuộc tính tốt nhất ở mỗi bước như thế này được gọi là cách

chọn greedy (tham lam) Cách chọn này có thể không phải là tối ưu, nhưng trực giác cho chúng ta thấy rằng cách làm này sẽ gần với cách làm tối ưu Ngoài ra, cách làm này khiến cho bài toán cần giải quyết trở nên đơn giản hơn

Sau mỗi câu hỏi, dữ liệu được phân chia vào từng child node tương ứng với các câu trả lời cho câu hỏi đó Câu hỏi ở đây chính là một thuộc tính, câu trả lời chính là giá trị của thuộc tính đó Để đánh giá chất lượng của một cách phân chia, chúng ta cần đi tìm một phép đo

Trước hết, thế nào là một phép phân chia tốt? Bằng trực giác, một phép phân chia là tốt nhất nếu dữ liệu trong mỗi child node hoàn toàn thuộc vào một class–khi

đó child node này có thể được coi là một leaf node, tức ta không cần phân chia thêm nữa Nếu dữ liệu trong các child node vẫn lẫn vào nhau theo tỉ lệ lớn, ta coi rằng phép phân chia đó chưa thực sự tốt Từ nhận xét này, ta cần có một hàm số

đo độ tinh khiết purity ( ), hoặc độ vẩn đục impurity ( ) của một phép phân chia Hàm

số này sẽ cho giá trị thấp nhất nếu dữ liệu trong mỗi child node nằm trong cùng

Trang 9

một class (tinh khiết nhất), và cho giá trị cao nếu mỗi child node có chứa dữ liệu thuộc nhiều class khác nhau.

Một hàm số có các đặc điểm này và được dùng nhiều trong lý thuyết thông tin là hàm entropy

trong đó loglog là logarit tự nhiên (Một số tài liệu dùng logarit cơ số 2, nhưng giá trị của H(p)H(p) chỉ khác đi bằng cách nhân với một hằng số.) và quy

ước 0log(0)=00log (0)=0

Xét một ví dụ với n=2n=2 được cho trên Hình 3 Trong trường hợp pp là tinhkhiết nhất, tức một trong hai giá trị pipi bằng 1, giá trị kia bằng 0, entropy của phânphối này là H(p)=0H(p)=0 Khi pp là vẩn đục nhất, tức cả hai giá trị pi=0.5pi=0.5, hàm entropy đạt giá trị cao nhất

Trang 10

Tổng quát lên với n>2n>2, hàm entropy đạt giá trị nhỏ nhất nếu có một giá trị pi=1pi=1, đạt giá trị lớn nhất nếu tất cả các pipi bằng nhau (việc này có thể đượcchứng minh bằng phương pháp nhân tử Lagrange).

Những tính chất này của hàm entropy khiến nó được sử dụng trong việc

đo độ vẩn đục của một phép phân chia của ID3 Vì lý do này, ID3 còn được gọi

là entropy-based decision tree

2.3 Thuật toán ID3

Trong ID3, tổng các trọng số của entropy tại các leaf-node sau khi xây dựng decision tree được coi là hàm mất mát của decision tree đó Các trọng số ở đây tỉ lệ với số điểm dữ liệu được phân vào mỗi node Công việc của ID3 là tìm các cách phân chia hợp lý (thứ tự chọn thuộc tính hợp lý) sao cho hàm mất mát cuối cùng đạt giá trị càng nhỏ càng tốt Như đã đề cập, việc này đạt được bằng cách chọn ra thuộc tính sao cho nếu dùng thuộc tính đó để phân chia, entropy tại mỗi bước giảm

đi một lượng lớn nhất Bài toán xây dựng một decision tree bằng ID3 có thể chia thành các bài toán nhỏ, trong mỗi bài toán, ta chỉ cần chọn ra thuộc tính giúp cho việc phân chia đạt kết quả tốt nhất Mỗi bài toán nhỏ này tương ứng với việc phân chia dữ liệu trong một non-leaf node Chúng ta sẽ xây dựng phương pháp tính toán dựa trên mỗi node này

Trang 11

Xét một bài toán với CC class khác nhau Giả sử ta đang làm việc với một non-leaf node với các điểm dữ liệu tạo thành một tập SS với số phần tử là |S|

=N|S|=N Giả sử thêm rằng trong số NN điểm dữ liệu này, Nc,c=1,2,…,CNc,c=1,2,

…,C điểm thuộc vào class cc Xác suất để mỗi điểm dữ liệu rơi vào một

class cc được xấp xỉ bằng NcNNcN (maximum likelihood estimation) Như vậy, entropy tại node này được tính bởi:

Tiếp theo, giả sử thuộc tính được chọn là xx Dựa trên xx, các điểm dữ liệu trong SS được phân ra thành KK child node S1,S2,…,SKS1,S2,…,SK với số điểm trong mỗi child node lần lượt là m1,m2,…,mKm1,m2,…,mK Ta định nghĩa

là tổng có trọng số entroy của mỗi child node–được tính tương tự như (2) Việc lấy trọng số này là quan trọng vì các node thường có số lượng điểm khác nhau.Tiếp theo, ta định nghĩa information gain dựa trên thuộc tính xx:

Trong ID3, tại mỗi node, thuộc tính được chọn được xác định dựa trên

tức thuộc tính khiến cho information gain đạt giá trị lớn nhất

Trang 12

CHƯƠNG 3 : BI TOÁN TUYỂN DỤNG NHÂN SỰ

3.1 Đặt vấn đề

Giả sử một công ty về công nghệ thông tin (CNTT) đang cần tuyển nhân viên cho vị trí lập trình viên, vị trí này được tuyển dụng liên tục nhằm đảm bảo nguồn nhân lực cho việc hoàn thành các dự án Với mỗi một hồ sơ ứng viên tuyển dụng bao gồm 06 thuộc tính, trong đó có 6 thuộc tính quan trọng ảnh hưởng tới quyết định tuyển dụng ứng viên đó và 1 thuộc tính cho biết kết quả ứng viên đó có được tuyển dụng hay không? Chi tiết các thuộc tính của một ứng viên như trong bảng 1

Bảng 1 Danh sách các thuộc tính của một hồ sơST

1 Level Đại học, Cao đẳng,

trung tâm tin học

Cho biết trình độ đào tạo của ứng viên

2 Job Có, không Cho biết ứng viên đó hiện tại đang

đi làm hay không?

5 Project Có, không

Cho biết ứng viên đã từng tham gia vào một dự án thực tế liên quan không?

6 Result Có, không

Cho biết kết quả ứng viên đó có được tuyển dụng (có) hay không được tuyển dụng (không) vào công ty?

Bảng 2 bên dưới bao gồm 15 bộ dữ liệu cho biết kết quả tuyển dụng của công ty cho các lần trước đây, đây chính là dữ liệu lịch sử tuyển dụng (Training

Trang 13

data) của công ty cho vị trí này Câu hỏi đặt ra là với nhu cầu tuyển dụng hiện nay của công ty sẽ có rất nhiều hồ sơ ứng viên được nộp vào để đăng ký, do đó để hỗ trợ cho việc phân lớp một ứng viên dựa vào các thuộc tính đã đề cập ở trên trên cơ

sở dữ liệu lịch sử tuyển dụng trước đây để hỗ trợ việc ra quyết định xem ứng viên

đó sẽ được phân vào lớp được tuyển dụng hay không được tuyển dụng

Bảng 2 Tập dữ liệu lịch sử tuyến dụng nhân sự (Training data)

Giả sử có 3 hồ sơ ứng viên mới nộp vào công ty để đăng ký tuyển dụng (Bảng 3), chúng ta đã biết các thuộc tính Level, Job, N_Company, Top_Train, Project, và chưa biết được giá trị của thuộc tính Result Yêu cầu đặt ra là dựa trên

cơ sở dữ liệu Training data dự đoán giá trị cho thuộc tính Result xem hồ sơ nào có được tuyển dụng hay không được tuyển dụng vào công ty

Bảng 3 Dữ liệu hồ sơ ứng viên mới (Testing data)

Trang 14

Trong nội dung của bài báo, Chúng em sẽ nghiên cứu về cây quyết định và ứng dụng giải thuật cây quyết định trong việc phân lớp hồ sơ tuyển dụng, nhằm mục đích hỗ trợ việc ra quyết định; Chúng em sẽ tiến hành tính toán và xây dựng cây quyết định sử dụng thuật toán Iterative Dichotomiser - ID3 với tập dữ liệu mẫu được cho trong bảng 2 từ đó xác định tập luật tương ứng và giá trị Result cho trong bảng 3.

3.2 Cây quyết định

3.2.1 Giới thiệu về cây quyết định

Cây quyết định là một cấu trúc phân cấp của các nút và các nhánh có các tính chất sau:

● Mỗi nút trong (internal node) biểu diễn một thuộc tinh cần kiểm tra giá trị (an attribute to be tested) đối với các các tập thuộc tính

● Nút lá (leaf node) hay còn gọi là nút trả lời biểu thi cho một lớp các trường hợp mà nhãn của nó là tên của lớp, nó biểu diễn một lớp (a classififcation)

● Nút nhánh (branch) từ một nút sẽ tương ứng với một giá trị có thể của thuộc tính gắn với nút đó

● Nhãn (lable) của nút này là tên của thuộc tính và có một nhánh nối nút này đến các cây con ứng với mỗi kết quả có thể có phép thử Nhãn của nhánh này

là các giá trị của thuộc tính đó Nút trên cùng gọi là nút gốc

Quá trình xây dựng một cây quyết định cụ thể bắt đầu bằng một nút rỗng bao gồm toàn bộ các đối tượng huấn luyện và làm như sau:

Trang 15

Bước 1 : Nếu tại nút hiện thời, tất cả các đối tượng huấn luyện đều thuộc vào một

lớp nào đó thì nút này chính là nút lá có tên là nhãn lớp chung của các đối tượng

Bước 2: Trường hợp ngược lại, sử dụng một độ đo, chọn thuộc tinh điều kiện phân

chia tốt nhất tập mẫu huấn luyện có tại nút

Bước 3: Tạo một nút con của nút hiện thời bằng số các giá trị khác nhau của thuộc

tính được chọn Gán cho mỗi nhánh từ nút cha đến nút con một giá trị của thuộc tính rồi phân chia các đối tượng huấn luyện vào các nút con tương ứng

Bước 4: Nút con K được gọi là thuần nhất, trở thành lá, nếu tất cả các đối tượng

mẫu tại đó đều thuộc vào cùng một lớp

Bước 5: Lặp lại bước 1 - 3 đối với mỗi nút chưa thuần nhất.

Có nhiều thuật toán để xây dựng cây quyết định như ID3, CART, J48, C4.5 Việc lựa chọn thuật toán nào để việc phân lớp đạt hiệu quả cao, kết quả đáng tin cây phụ thuộc vào nhiều yếu tố, trong đó cấu trúc dữ liệu của các thuộc tính sẽ có ảnh hưởng lớn đến kết quả của các thuật toán

Với dữ liệu lịch sử tuyển dụng như trong bảng 2 ta có thể chuyển đổi tất cả giá trị của các thuộc tính về cùng một dạng dữ liệu số như sau: Với thuộc tính Level: Giá trị “Đại học” ~ 2, “Cao đẳng” ~ 1; “Trung tâm tin học” ~ 0; Với các thuộc tính Job, N_Company, Top_Train, Project, Result: Giá trị “Có” ~ 1, “Không”

~ 0 và các trường thông tin như tên tuổi, đại chỉ, ngày sinh… sẽ được mã hóa Bảng

4 thể hiện kết quả chuyển đổi dữ liệu của các thuộc tính trong bảng 2 về cùng một kiểu dữ liệu dạng số

Bảng 4 Tập dữ liệu đã chuyến đối về dạng số

Trang 16

Trong sô các thuật toán xây dựng cây quyêt định ở trên ID3 là thuật toán ra đời

từ rât sớm, tương đối phổ biến và đặc biệt thuật toán này có hiệu quả phân lớp cao đối với tập dữ liệu có giá trị của thuộc tính là số Vì vây, Chúng em lựa chọn thuật toán ID3 để tiến hành xây dựng cây quyết định cho tập dữ liệu tuyển dụng nhân sự

ở trên

3.3 Thuật toán ID3

Để xây dựng cây quyết định với thuật toán ID3 trước tiên cần xác định thứ tự của thuộc tính cần được xem xét tại mỗi bước Trong trường hợp đối tượng có nhiều thuộc tính và mỗi thuộc tính có nhiều giá trị khác nhau thì việc xác định đượcthứ tự tối ưu nhất của các thuộc tính thường là rất khó Vì vây, để đơn giản ý tưởng của ID3 như sau:

● Thực hiện giải thuật tìm kiếm tham lam đối với không gian các cây quyết định có thể

● Xây dựng các nút từ trên xuống (Top-Down), bắt đầu từ nút gốc

● Ở mỗi nút, xác định thuộc tính kiểm tra là thuộc tính có khả năng phân loại tốt nhất

● Tạo mới một cây con của nút hiện tại cho mỗi giá trị có thể của thuộc tinh kiểm tra, và tập dữ liệu đầu vào sẽ được tách thành các tập con tương ứng với các cây con vừa tạo

● Mỗi thuộc tính chỉ được phép xuất hiện tối đa 1 lần đối với bất kỳ đường đi nào trong cây

● Quá trình phát triển cây sẽ tiếp tục cho tới khi:

Ngày đăng: 04/12/2024, 22:21

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

TÀI LIỆU LIÊN QUAN

w