Professional Documents
Culture Documents
----------------------------
Đề Tài: Ứng dụng thuật toán ID3 trong bài toán tuyển dụng nhân sự.
Mã Sinh Viên:1821050815
Contents
Lời cảm ơn............................................................................................................3
Chương 1 : Lý do chọn đề tài...............................................................................3
1.1 Lý do chọn đề tài......................................................................................3
1.2 Mục đích của đề tài..................................................................................4
1.3 Ý nghĩa thực tiễn......................................................................................4
Chương 2 :Những vấn đề lý luận về ứng dụng CNTT trong bài toán hỗ trợ ra
quyết định tuyển dụng nhân sự ............................................................................4
2.1 Công nghệ thông tin trong việc tuyển dụng nhân sự của các doanh nghiệp.
...........................................................................................................................4
2.2 Các yếu tố tác động trong bài toán tuyển dụng nhân sự của doanh nghiệp.6
2.2.1 Tác động từ sự phát triển của khoa học-công nghệ hiện đại................6
2.2.2 Tác động từ nhu cầu thực tế của các doanh nghiệp, công ty.................7
Chương 3: Thuật Toán Áp Dụng Trong Bài Toán...............................................7
3.1 Thuật Toán ID3...........................................................................................7
3.1.1 Cây Quyết Định.....................................................................................7
3.1.2 Hàm Số Entropy....................................................................................8
3.1.3 Thuật toán ID3.....................................................................................10
3.2 Phân Tích Bài Toán...................................................................................11
3.2.1 Nghiên Cứu các yếu tố ảnh hướng đến việc tuyển dụng nhân sự.......11
3.2.2 Bảng Thống Kê Số Liệu.....................................................................12
3.2.3 Sử Dụng ID3 để giải quyết bài toán....................................................12
Chương 4 : Xây Dựng Ứng Dụng.......................................................................12
4.1 Ngôn Ngữ lập trình c#...............................................................................12
4.1.1 Lập trình winform.............................................................................12
4.1.2 Visual Studio 2019..............................................................................12
4.2 Tài Liệu Tham Khảo..................................................................................12
Lời cảm ơn
Lời đầu tiên, nhóm em xin bày tỏ sự cảm ơn chân thành đối với Cô
Vương Thị Như Quỳnh – giáo viên hướng dẫn trực tiếp của nhóm em.
Cô Thủy đã cho nhóm em những gợi ý và chỉ dẫn quý báu trong quá
trình nghiên cứu và hoàn thiện bài tập lớn.
Nhóm em cũng xin gửi lời cảm ơn tới các thầy cô trong khoa Công
nghệ thông tin, trường Đại học Mỏ Địa Chất đã hướng dẫn, chỉ bảo và
tạo điều kiện cho chúng em học tập và nghiên cứu tại trường trong
suốt thời gian qua.
Mặc dù đã cố gắng hoàn thành bài tập lớn nhưng chắc chắn sẽ không
tránh khỏi những sai sót, nhóm em kính mong nhận được sự thông
cảm và chỉ bảo của cô và các bạn.
Chương 2 :Những vấn đề lý luận về ứng dụng CNTT trong bài toán hỗ trợ ra
quyết định tuyển dụng nhân sự .
2.1 Công nghệ thông tin trong việc tuyển dụng nhân sự của các doanh nghiệp.
1. Công nghệ giúp tìm kiếm ứng viên hiệu quả hơn
Ngày nay, có rất nhiều công nghệ khác nhau với giá cả phải chăng cho các nhà
tuyển dụng muốn tích hợp vào quy trình tuyển dụng của họ. Những công nghệ
này cho phép các doanh nghiệp tiếp cận và tuyển chọn được nhiều ứng viên phù
hợp hơn. Tốc độ tìm kiếm ứng viên cũng được đánh giá là cao hơn gấp nhiều
lần so với con người. Thông qua ứng dụng này nhân viên tư vấn tuyển dụng dễ
dàng sàng lọc được ứng viên tiềm năng nhất dành cho nhà tuyển dụng.. Nhà
tuyển dụng cũng có thể sử dụng hệ thống theo dõi ứng viên để quản lý toàn bộ
hồ sơ xin việc của những người ứng tuyển. Hệ thống này cũng sẽ giúp sắp xếp
ứng viên theo bất cứ tiêu chí nào mà nhà tuyển dụng muốn. CV ứng tuyển, trình
độ, kỹ năng và vô vàn thông tin liên quan khác sẽ được hệ thống theo dõi ứng
viên cung cấp cho nhà tuyển dụng bất cứ khi nào họ cần.
Nâng cao năng suất, hiệu quả của mọi công việc trong doanh nghiệp đều đồng
nghĩa với sự tăng trưởng kinh tế. Công nghệ giúp tự động hóa nhiều quy trình,
trong đó có quy trình tuyển dụng; nhờ đó mà tổng thời gian cần thiết để hoàn
thành công việc được giảm đi đáng kể. Việc tổng hợp và biên soạn thông tin
ứng viên một cách thủ công sẽ tốn rất nhiều thời gian và có thể dẫn đến nhiều
sai sót. Trong khi đó, công nghệ có thể giúp thực hiện việc này một cách nhanh
chóng và hoàn toàn chính xác. Từ các trang mạng xã hội, phần mềm hay
website tuyển dụng, đến các nền tảng kết nối việc làm của bên thứ ba, tất cả
những công nghệ này đều sẽ giúp các nhà tuyển dụng tối ưu hóa quy trình và
nâng cao hiệu quả tuyển dụng nhân sự.
3. Công nghệ hỗ trợ công tác kiểm tra, đánh giá trực tuyến
Công nghệ đã tạo điều kiện cho các công ty kiểm tra kỹ năng và trình độ của
từng ứng viên một cách dễ dàng hơn thông qua các nền tảng trực tuyến. Nhà
tuyển dụng có thể đưa ra một số bài đánh giá kỹ năng và trình độ của ứng viên
tiềm năng trước khi đến phỏng vấn trực tiếp. Từ đó, họ có thể dễ dàng nhận biết
được liệu ứng viên có đủ trình độ để làm việc và có phù hợp với văn hóa công
ty hay không.
4. Công nghệ giúp quản lý ứng viên hiệu quả hơn
Ứng viên có thể bị loại hoặc bỏ cuộc bất cứ khi nào trong quá trình phỏng vấn.
Ở quy mô nhỏ, nhà tuyển dụng có thể dễ dàng xác định và quản lý vấn đề này.
Tuy nhiên, ở quy mô lớn hơn, sẽ rất khó để xác định chính xác vấn đề do số
lượng ứng viên bị loại ở mỗi giai đoạn là rất lớn và vì nhiều nguyên nhân khác
nhau.
Hiện nay, có nhiều giải pháp công nghệ có thể cung cấp dữ liệu thống kê và
infographics cho nhà tuyển dụng trong toàn bộ quy trình. Ứng viên dành nhiều
thời gian nhất cho bước nào? Giai đoạn nào ứng viên bị loại nhiều nhất? Khi
nắm rõ và hiểu những thông tin này, nhà tuyển dụng có thể điều chỉnh chiến
lược tuyển dụng hoặc có những cải tiến cho phù hợp trong tương lai.
Phỏng vấn qua video được coi là giải pháp thay thế tốt nhất cho quy trình phỏng
vấn truyền thống. Nó giúp các nhà tuyển dụng đưa ra các giải pháp linh hoạt
hơn trong khi đó, ứng viên có thể giảm bớt sự căng thẳng so với các cuộc phỏng
vấn trực tiếp. Với hình thức phỏng vấn này, nhà tuyển dụng có thể chuẩn bị một
bộ câu hỏi phỏng vấn sẵn có, cho phép ứng viên thực hiện cuộc phỏng vấn, ghi
âm câu trả lời và gửi lại bất cứ khi nào họ cảm thấy sẵn sàng.
Đây được gọi là hình thức phỏng vấn một chiều qua video. Nhà tuyển dụng có
thể xem video trả lời của ứng viên bất cứ khi nào, có thể xem cá nhân hoặc đưa
ra trước hội đồng. Một trong những lợi ích đáng lưu ý nhất khi phỏng vấn qua
video là cả hai bên, nhà tuyển dụng và ứng viên, đều sẽ đều tiết kiệm được rất
nhiều thời gian cho việc chờ đợi, sắp xếp lịch hẹn hay chi phí đi lại.
Thương hiệu mạnh có thể giúp các công ty thu hút nhiều khách hàng mới, duy
trì hiệu quả mối quan hệ với các đối tác hiện tại và thậm chí là thu hút nhân tài.
Thay vì chỉ nhìn vào mức lương, ứng viên ngày này sẽ tìm hiểu rất chi tiết
thông tin của nhà tuyển dụng trên Internet trước khi quyết định ứng tuyển. Vì
vậy mà ngày càng có nhiều doanh nghiệp quan tâm đến việc quảng bá thương
hiệu của mình để thu hút nhân tài.
Một thương hiệu nhà tuyển dụng mạnh được thể hiện ở rất nhiều lĩnh vực khác
nhau như thông tin tạo ra trên các nền tảng mạng xã hội, nội dung quảng cáo
tuyển dụng, đặc quyền cho nhân viên và đặc biệt là những cảm nhận, suy nghĩ
của chính những người đang làm việc trong công ty. Những điều này sẽ khiến
cho một doanh nghiệp khác biệt hoàn toàn với doanh nghiệp khác, nâng cao lợi
thế cạnh tranh và thu hút được nhiều nhân tài đầu ngành.
2.2 Các yếu tố tác động trong bài toán tuyển dụng nhân sự của doanh nghiệp
2.2.1 Tác động từ sự phát triển của khoa học-công nghệ hiện đại
-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ọc sâu
(Deep Learning) đã được nghiên cứu, áp dụng và phục vụ cho rất nhiều lĩnh
vực. Với các công ty, doanh nghiệp nói chung đều đang hướng đến sự tự động
hóa trong doanh nghiệp khi các máy móc có thể tự động làm được hầu hết các
công việc. Trước sự phát triển mạnh mẽ đó thì hầu như tất cả các ban ngành đã
và đang chịu sự thay đổi ,cải cách rất mạnh mẽ vì sự tiện lợi và nhanh chóng
của các công cụ , công nghệ mang lại.
- Trước tình hình đó thì việc tuyển dụng nhân sự của các doanh nghiệp cũng đã
và đang thay đổi nhanh chóng. Từ việc tuyển dụng truyền thống thì nay việc
tuyển dụng đã trở lên vô cùng nhanh chóng và dễ dàng khi các doanh nghiệp
hay ứng viên có thể tìm thấy nhau một cách dễ dàng và nhanh chóng trên các
website diễn đàn tuyển dụng nhân sự của các công ty, doanh nghiệp.
2.2.2 Tác động từ nhu cầu thực tế của các doanh nghiệp, công ty.
- trong thời đại công nghệ phát triển mạnh hiện nay và sự trợ giúp của công
nghệ nên mọi thứ sẽ diễn ra vô cùng nhanh. Các doanh nghiệp muốn phát triển
thì đều cần các ứng dụng của công nghệ thông tin vô cùng mạnh mẽ, các bộ
phận trong doanh nghiệp đều phải làm việc nhanh chóng và hiệu quả. Do đó các
ứng dụng CNTT phục vụ trong doanh nghiệp đã phát triển vượt bậc nhằm phục
vụ nhu cầu của các doanh nghiệp.
-Vì vậy việc ứng dụng CNTT trong tuyển dụng nhân sự của các doanh nghiệp
cũng không ngoại lệ, các ứng dụng CNTT giúp việc tuyển chọn thí sinh vô cùng
nhanh chóng và phân loại được các ứng viên tiềm năng đáp ứng được nhu cầu
của doanh nghiệp
- Việc ứng dụng CNTT trong tuyển chọn nhân sự cũng tiết kiệm lượng lớn thời
gian cho doanh nghiệp. Qua đó các nhà tuyển dụng có thể tập chung vào quản
lý doanh nghiệp hiệu quả hơn và nâng cao doanh thu .
- Các ứng viên cũng nhờ sự phát triển này mà có thể tìm hiểu nhiều công ty
một lúc qua các website qua đó tiết kiệm thời gian và nâng cao tỉ lệ kiếm việc
làm.
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
+ Node trong: nút trung gian trên một thuộc tính đơn
+ Nhánh: Biểu diễn các kết quả của kiểm tra trên nút.
Một số thuật toán học máy biểu diễn mối quan hệ nhân quả dưới dạng cây quyết
định.
+ Các nút trong và nút gốc: đại diện những thuộc tính quan sát
Với cây quyết định, ta có thể dự đoán giá trị kết quả cho những mẫu mới bằng
cách duyệt cây quyết định, bắt đầu từ nút gốc.
Với thuộc tính ghi trên nút gốc, ta kiểm tra giá trị tương ứng trong mẫu dữ liệu
và đi theo nhánh tương ứng.
Quá trình dự đoán kết thúc ở nút lá hoặc lặp lại bước tương tự tại các nút nhánh
trên đường đi đến nút lá.
3.1.2 Hàm Số Entropy
Entropy là thuật ngữ thuộc Nhiệt động lực học, là thước đo của sự biến
đổi, hỗn loạn hoặc ngẫu nhiên. Năm 1948, Shannon đã mở rộng khái
niệm Entropy sang lĩnh vực nghiên cứu, thống kê.
- Trong trường hợp S là tập ví dụ, thì thành viên của S là một ví dụ, mỗi ví dụ
thuộc một lớp có một giá trị phân loại.
Entropy(S) = ∑ −¿ p i log p ¿
2 i
i=1
Trong đó:
Tập S là tập dữ liệu rèn luyện
- Phép đo giảm lượng entropy mong đợi gây ra bởi việc phân chia các ví dụ theo
thuộc tính.
- Một cách chính xác hơn, Gain(S,A) của thuộc tính A, trên tập S, được định
nghĩa như sau:
¿
∑ ¿ S v ∨ ¿ S∨¿ Entropy (S ) ¿ ¿
Gain(S,A) = Entropy(S)-v ∈values (A ) v
Trong đó:
• Values(A) là tập hợp có thể có các giá trị của thuộc tính A,
• Sv là tập con của S chứa các ví dụ có thuộc tính A mang giá trị v.
- Entropy trung bình của một thuộc tính bằng trung bình theo tỉ lệ của entropy
các nhánh:
∑ p v H Av
AE = v ∈ values (A)
- Thuộc tính tốt nhất ở đây là thuộc tính có entropy trung bình thấp nhất
3.1.3 Thuật toán ID3
- Input: Một tập hợp các ví dụ. Mỗi ví dụ bao gồm các thuộc tính mô tả một tình
huống, hay một đối tượng nào đó, và một giá trị phân loại của nó
- Output: Cây quyết định có khả năng phân loại đúng đắn các ví dụ trong tập dữ
liệu rèn luyện, và hy vọng là phân loại đúng cho cả các ví dụ chưa gặp trong
tương lai.
- Giải thuật ID3 xây dựng cây quyết định được trình bày như sau:
Lặp:
2. Với mỗi giá trị của A, tạo nhánh con mới của nút
4. Nếu các mẫu huấn luyện được phân loại hoàn toàn thì dừng, Ngược lại, lặp
với các nút lá mới.
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ó 05
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 sau
1 Level Đại học Cho biết trình độ đào tạo ứng viên
Cao Đẳng
TT-tin học
2 Job Có,không Ứng viên có kinh nghiệm làm việc hay không
4 Train Có,không Trường mà ứng viên được đào tạo có nằm trong
các trường hàng đầu hay không
5 project Có,không Ứng viên đã tham gia vào các dự án thực tế không
?
6 result Có ,không Kết quả ứng viên có đạt điều kiện của nhà tuyển
dụng hay không
Bộ dữ liệu test
Level
TT-tin học
Đại học
Cao đẳng
3Y,3N
7Y,1N 3Y,4N
−7 7 1 1
Hđại học = 8 x Log2 8 - 8 x Log2 8 =0.544
−3 3 4 4
Hcao đẳng = 7 x Log2 7 - 7 x Log2 7 =0.985
−3 3 3 3
HTT-tin học = 6 x Log2 6 - 6 x Log2 6 =1
8 7 6
AE= 21 x0.544 + 21 x0.985+ 21 x1 =0.821
job
không
có
8Y,5N
5Y,3N
−5 5 3 3
Hcó= 8 x Log2 8 - 8 x Log2 8 =0.954
−8 8 5 5
Hkhông= 13 x Log2 13 - 13 x Log2 13 =0.961
AE=0.959
company
5
0
2 4
1 3
−2 2 3 3
H0= 5 x Log2 5 - 5 x Log2 5 =1
H1=0
−2 2 1 1
H2= 3 x Log2 2 - 3 x Log2 3 =0.918
−2 2 1 1
H3= 3 x Log2 2 - 3 x Log2 3 =0.918
H4 =0
H5=0
AE =0.494
train
không
có
6Y,7N
7Y,1N
−7 7 1 1
Hcó= 8 x Log2 8 - 8 x Log2 8 =0.543
−6 6 7 7
Hkhông= 13 x Log2 13 - 13 x Log2 13 =0.996
AE =0.823
project
không
có
5Y,6N
8Y,2N
−8 8 2 2
Hcó= 10 x Log2 10 - 10 x Log2 10 =0.722
−5 5 6 6
Hkhông= 11 x Log2 11 - 11 x Log2 11 =0.994
7 7
AE= 14 x0.592 + 14 x0.863=0.864
So sánh ta thấy thuộc tính company có Entropy trung bình (AE) Thấp nhất nên
ta chọn thuộc tính này là thuộc tính gốc
AE(0,job)=0.8
AE(0,train) =0
AE(0,project) =0.951
Thuộc tính train có entropy trung bình là thấp nhất nên ta chọn thuộc tính train
làm nút nhánh
AE(2,Level)=0
AE(2,job)=0.918
AE(2,train) =0.918
AE(2,project) =0.666
Thuộc tính level có entropy trung bình là thấp nhất nên ta chọn thuộc tính level
làm nút nhánh
AE(3,Level)=0.666
AE(3,job)=0.666
AE(3,train) =0.918
AE(3,project) =0
Thuộc tính project có entropy trung bình là thấp nhất nên ta chọn thuộc tính
project làm nút nhánh
Chương 4 : Xây Dựng Ứng Dụng
4.1 Ngôn Ngữ lập trình c#
4.1.1 Visual Studio 2019
Visual studio là một phần mềm hỗ trợ đắc lực hỗ trợ công việc lập trình
website. Công cụ này được tạo lên và thuộc quyền sở hữu của ông lớn
công nghệ Microsoft. Năm 1997, phần mềm lập trình nay có tên mã
Project Boston. Nhưng sau đó, Microsoft đã kết hợp các công cụ phát
triển, đóng gói thành sản phẩm duy nhất.
Visual Studio là hệ thống tập hợp tất cả những gì liên quan tới phát triển
ứng dụng, bao gồm trình chỉnh sửa mã, trình thiết kế, gỡ lỗi. Tức là, bạn
có thể viết code, sửa lỗi, chỉnh sửa thiết kế ứng dụng dễ dàng chỉ với 1
phần mềm Visual Studio mà thôi. Không dừng lại ở đó, người dùng còn
có thể thiết kế giao diện, trải nghiệm trong Visual Studio như khi phát
triển ứng dụng Xamarin, UWP bằng XAML hay Blend vậy.
Phần mềm Visual studio được chia thành 2 phiên bản Visual Studio
Enterprise và Visual Studio Professional, các phiên bản cao cấp có tính
phí này được sử dụng nhiều bởi các công ty chuyên về lập trình. Bên cạnh
đó, Microsoft cũng cho ra mắt phiên bản Community (phiên bản miễn phí)
của gói phần mềm, cung cấp cho người dùng những tính năng cơ bản nhất,
phù hợp với các đối tượng lập trình không chuyên, mới tiếp cận tìm hiểu
về công nghệ (đối tượng nghiên cứu, nhà phát triển cá nhân, hỗ trợ dự án
mỡ, các tổ chức phi doanh nghiệp dưới 5 người dùng).
Test dự liệu :
4.3 Tài Liệu Tham Khảo
1. https://machinelearningcoban.com/2018/01/14/id3/
2. https://sinhvientot.net/cay-quyet-dinh-va-giai-thuat-id3/
3. https://ditimnguoncamhung.wordpress.com/2017/10/12/decision-tree-
algothrm/