Tải bản đầy đủ (.docx) (40 trang)

Phân tích web tuyển dụng và đưa ra gợi ý (Phân tích và lưu trữ dữ liệu_CÓ KÈM CODE)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.72 MB, 40 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
-----🙞🙞🙞🙞🙞-----

BÁO CÁO BÀI TẬP
Mơn: Lưu Trữ Và Phân Tích Dữ Liệu
Chủ đề: Phân tích web tuyển dụng và đưa ra gợi ý việc làm

Hà Nội, 2023
1


Mục lục
..............................................................................................................................1
1. Phần mở đầu.....................................................................................................3
1.1 Lí do chọn đề tài:........................................................................................3
1.2 Mục tiêu......................................................................................................3
2. Các Thuật tốn học máy và mơ hình ứng dụng vào đề tài................................4
2.1 Machine learning là gì?..............................................................................4
2.2 Các thuật toán học máy ứng dụng vào trong đề tài....................................5
2.2.1 Linear regression.................................................................................5
2.2.2 Random forests....................................................................................6
2.2.3 Decision trees.......................................................................................7
2.2.4 Word2VEC..........................................................................................8
3. Lấy dữ liệu và tiền xử lý dữ liệu.....................................................................11
3.1 Chuẩn bị dữ liệu........................................................................................11
3.2 Lấy dữ liệu việc làm.................................................................................11
3.3 Tiền xử lý dữ liệu.....................................................................................13
3.3.1 Mục đích............................................................................................13
3.3.2 Các bước tiền xử lý dữ liệu...............................................................14
4. Trực quan hóa dữ liệu.....................................................................................18
4.1 Trực quan những giá trị dạng số...............................................................18


4.2 Trực quan những giá categorical..............................................................20
4.3 Nhận xét tổng quát....................................................................................22
5. Các thuật tốn học máy...................................................................................23
5.1. Huấn luyện mơ hình.................................................................................23
5.2. Áp dụng thuật toán LinearRegression.....................................................26
5.3. Kết hợp logistic regression và linear regression......................................27
6. Thuật toán dự đoán mức lương đối với 1 dataset khác...................................29
7.

Kết luận:......................................................................................................39

2


1. Phần mở đầu
1.1 Lí do chọn đề tài:
Việc tìm kiếm việc làm là một trong những vấn đề được quan tâm và đặt
ra hàng đầu trong cuộc sống của mỗi người. Tuy nhiên, với sự đa dạng và
phong phú của các công việc và nhà tuyển dụng, đôi khi việc lựa chọn một công
việc phù hợp với năng lực, nhu cầu và độ tuổi của mỗi cá nhân là một thử thách
đáng kể.
Trong thời đại số, công nghệ phát triển ngày càng nhanh chóng và các
trang web tuyển dụng cũng ngày càng đa dạng và chất lượng. Đa số các nhà
tuyển dụng hiện nay đều sử dụng các trang web, mạng xã hội để đăng tải các
thông tin tuyển dụng. Tuy nhiên, với sự đa dạng của các ngành nghề, việc lựa
chọn một ngành nghề phù hợp với sở thích, năng lực, kinh nghiệm và mục tiêu
của mỗi cá nhân là một nhiệm vụ khó khăn.
Để giúp người tìm việc có thể tìm ra cơng việc phù hợp với mình một
cách nhanh chóng và hiệu quả, đồng thời giúp cho các nhà tuyển dụng có thể
tìm kiếm được những ứng viên phù hợp với yêu cầu của công việc thì các cơng

ty, trang web tuyển dụng đang phát triển các cơng cụ phân tích dữ liệu và đưa ra
các gợi ý về ngành nghề và công việc phù hợp với từng cá nhân. Nhờ vào viêc
lưu trữ, phân tích dữ liệu các cơng cụ này có thể phân tích và đánh giá các yếu
tố như năng lực, sở thích, kinh nghiệm, trình độ học vấn, mức lương mong
muốn để đưa ra các gợi ý về các ngành nghề và vị trí việc làm phù hợp.

1.2 Mục tiêu
Cào dữ liệu và xử lý dữ liệu từ một trang web tuyển dụng, dữ liệu được
phân tích dựa trên các đặc điểm của các ngành, chẳng hạn như số lượng tuyển
dụng, mức lương, yêu cầu về kỹ năng và kinh nghiệm. Phân tích dữ liệu cho
phép chúng ta đưa ra các gợi ý về những công việc tiềm năng, ổn định và có
triển vọng phát triển trong tương lai gần, giúp cho người tìm việc lựa chọn vị trí
phù hợp với nhu cầu và sở thích của họ. Ngồi ra, nó cũng có thể giúp các nhà
tuyển dụng tìm kiếm ứng viên đủ năng lực cho các vị trí tuyển dụng một cách
nhanh chóng và chính xác.
Nhóm 8 bọn em sẽ đi vào phân tích 2 bài tốn trên 2 trang web khác nhau
với:
o Vieclamtot.com: với tập dữ liệu 4563 entries;
Là mục tiêu chính của nhóm tụi em đi sâu vào.
3


o TopCV.com: với tập dữ liêụ 563 entries;
Đây sẽ là 1 bài tốn phân tích thêm để làm thêm cho mơ hình dự đốn
mức lương.

2. Các Thuật tốn học máy và mơ hình ứng dụng vào đề
tài
2.1 Machine learning là gì?
- Machine learning là một nhánh của trí tuệ nhân tạo (AI) và khoa học

máy tính, tập trung vào việc sử dụng dữ liệu và thuật toán để bắt chước hành
động của con người, dần dần cải thiện độ chính xác của nó.
Machine learning cịn là một thành phần quan trọng của lĩnh vực khoa học dữ
liệu đang phát triển. Thông qua việc sử dụng các phương pháp thống kê, các
thuật toán được đào tạo để đưa ra các phân loại hoặc dự đốn và khám phá
những thơng tin chi tiết từ chính các dự án khai thác dữ liệu.
Thơng qua các thơng tin chi tiết có được để thúc đẩy việc đưa ra quyết định đối
với các ứng dụng và doanh nghiệp, tác động mạnh đến các chỉ số tăng trưởng.
Khi dữ liệu lớn tiếp tục nhu cầu mở rộng và phát triển đòi hỏi nhu cầu tuyển
dụng các nhà khoa học dữ liệu sẽ tăng lên. Họ sẽ được yêu cầu giúp xác định
các câu hỏi kinh doanh có liên quan nhất và dữ liệu để trả lời chúng.
Bài toán của machine learning thường được chia làm hai loại là dự đoán
(prediction) và phân loại (classification). Các bài tốn dự đốn thường là giá
nhà, giá xe, v.v, cịn các bài toán phân loại thường là nhận diện chữ viết tay, đồ
vật, v.v.

4


2.2 Các thuật toán học máy ứng dụng vào trong đề tài
2.2.1 Linear regression
- Hồi quy tuyến tính là một phương pháp thống kê được sử dụng để mơ hình
hóa mối quan hệ giữa một biến phụ thuộc và một hoặc nhiều biến độc lập. Mục
tiêu của hồi quy tuyến tính là tìm ra đường thẳng phù hợp nhất sao cho tổng
bình phương khoảng cách giữa các điểm dữ liệu quan sát và các giá trị dự đoán
là nhỏ nhất.
- Trong hồi quy tuyến tính đơn giản, chỉ có một biến độc lập và mối quan hệ
giữa biến phụ thuộc và biến độc lập được mơ hình hóa bằng một đường thẳng.
Cơng thức cho một mơ hình hồi quy tuyến tính đơn giản có thể được viết như
sau:

y = b0 + b1*x
- Trong đó y là biến phụ thuộc, x là biến độc lập, b0 là hệ số giao điểm
hoặc hằng số và b1 là hệ số độ dốc.
Trong hồi quy tuyến tính đa biến, có nhiều biến độc lập và mối quan hệ giữa
biến phụ thuộc và các biến độc lập được mơ hình hóa bằng một phương trình
tuyến tính. Cơng thức cho một mơ hình hồi quy tuyến tính đa biến có thể được
viết như sau:
y = b0 + b1x1 + b2x2 + ... + bn*xn
- Trong đó y là biến phụ thuộc, x1, x2, ..., xn là các biến độc lập, b0 là hệ
số giao điểm hoặc hằng số và b1, b2, ..., bn là các hệ số độ dốc.
5


Hồi quy tuyến tính có thể được sử dụng để dự đoán, dự báo và hiểu mối quan hệ
giữa các biến. Nó thường được sử dụng trong các lĩnh vực như kinh tế, tài chính
và khoa học xã hội. Có nhiều kỹ thuật để đánh giá hiệu suất của một mơ hình
hồi quy tuyến tính, chẳng hạn như R-squared, độ lỗi trung bình bình phương
(RMSE) và độ lỗi tuyệt đối trung bình (MAE).

2.2.2 Random forests
Random forest là thuật tốn supervised learning, có thể giải quyết cả bài tốn
regression và classification.
Random là ngẫu nhiên, Forest là rừng, nên ở thuật toán Random Forest mình sẽ
xây dựng nhiều cây quyết định bằng thuật toán Decision Tree, tuy nhiên mỗi
cây quyết định sẽ khác nhau (có yếu tố random). Sau đó kết quả dự đoán được
tổng hợp từ các cây quyết định.
Ở bước huấn luyện thì mình sẽ xây dựng nhiều cây quyết định, các cây quyết
định có thể khác nhau .

6



2.2.3 Decision trees
 Decision Tree là một trong những thuật toán học máy trong lĩnh vực khai
phá dữ liệu và học có giám sát. Nó dựa trên việc xây dựng cây quyết định
để đưa ra các dự đoán về giá trị của biến đầu ra (output) dựa trên các giá
trị của các biến đầu vào (input).
 Thuật toán Decision Tree sử dụng một loạt các quyết định nhị phân để
phân tách dữ liệu đầu vào thành các nhóm con sao cho mỗi nhóm con
chứa các mẫu có tính chất tương tự nhau. Các quyết định được đưa ra dựa
trên các thuộc tính của dữ liệu đầu vào và mục tiêu là tối đa hóa độ tinh
khiết của mỗi nhóm con.
 Một khi cây quyết định đã được xây dựng, nó có thể được sử dụng để dự
đốn giá trị của biến đầu ra cho các mẫu mới bằng cách đưa mẫu đó
xuống cây và áp dụng các quyết định để đưa ra dự đoán.
 Decision Tree là một trong những thuật toán học máy phổ biến và được
sử dụng rộng rãi trong nhiều lĩnh vực, bao gồm kinh doanh, y tế, tài
chính, và khoa học máy tính. Nó có thể được sử dụng để giải quyết các
vấn đề phân loại (classification) và dự đoán (prediction).
7


2.2.4 Word2VEC
Word2vec là một kỹ thuật xử lý ngôn ngữ tự nhiên. Thuật tốn Word2vec sử
dụng một mơ hình mạng thần kinh để học các liên kết từ (sự liên quan của từ) từ
một kho ngữ liệu văn bản có dung lượng lớn [1]. Sau khi được huấn luyện, mơ
hình có thể phát hiện các từ đồng nghĩa hoặc gợi ý các từ bổ sung cho một phần
của câu. Với cái tên nói lên tất cả, word2vec thể hiện cho mỗi từ riêng biệt với
một danh sách cụ thể của các số được gọi là vectơ. Các vectơ được lựa chọn cẩn
thận sao cho một hàm toán học đơn giản sẽ (độ tương tự cosin giữa các vectơ)

cho biết mức độ của độ tương tự ngữ nghĩa giữa các từ được biểu diễn bằng các
vectơ đó.[2]

8


2.2.4.1 Hàm tính tốn cosine similarity (độ tương đồng cosine) giữa hai vector:

 Hàm tính tốn cosine similarity (độ tương đồng cosine) giữa hai vector:
query_vector và job_vector.
 Cụ thể, công thức tính cosine similarity được sử dụng là: cosine similarity
= dot product của hai vector / (norm của query_vector * norm của
job_vector)
 Trong đó, dot product (tích vơ hướng) của hai vector được tính bằng
np.dot(query_vector, job_vector), và norm (độ dài) của mỗi vector được
tính bằng np.linalg.norm(vector).
9


 Kết quả của cosine similarity nằm trong khoảng [-1, 1], với giá trị càng
gần 1 thì hai vector càng tương đồng và càng gần -1 thì hai vector càng
khác nhau.
 Khi kết quả bằng 0 thì có nghĩa là hai vector vng góc nhau.

10


3. Lấy dữ liệu và tiền xử lý dữ liệu
3.1 Chuẩn bị dữ liệu
Hiện nay, các trang web tuyển dụng đang ngày càng trở nên đa dạng, phổ

biến và số lượng cũng ngày càng tăng. Một số ví dụ điển hình cho những trang
web này bao gồm TopCV, Timviecnhanh, Chợ Tốt, CareerBuilder và
Vietnamworks. Ở đây, chúng ta sẽ thu thập dữ liệu từ trang web này là Chợ Tốt,
cụ thể là vieclamtot.com để phân tích thơng tin tuyển dụng nhân lực tại Hà Nội.
Từ đó, chúng ta có thể xác định một số ngành nghề đang có xu hướng phát triển
với số lượng tuyển dụng cao, hiểu được yêu cầu của nhà tuyển dụng và khám
phá một số ngành có mức lương tương đối ổn định
 Link trang tuyển dụng của Việt Nam: ( />
3.2 Lấy dữ liệu việc làm
Sử dụng thư viện web scraping: Thư viện như BeautifulSoup, Scrapy cho
phép lấy dữ liệu từ các trang web vieclamtot.com bằng cách phân tích cú
pháp HTML và CSS của trang web.
Ở đây ta sẽ lấy ra tối đa 1000 page, để lấy gần như toàn bộ bài đăng tuyển
của trang, số trang thực tế web có được sẽ thấp hơn nhưng khơng sao.
 Kết quả thu được:

11


Sau đó tiến hành lấy các thơng tin trên các link trang web tuyển dụng, các thông
tin này bao gồm:
 location: địa chỉ của job ở thành phố Hà Nội
 links: là đường dẫn để ta cào dữ liệu
 Tên công việc : tên job , nhưng các tên khá là lẫn lộn nên không dùng
được
 Mức lương: số tiền nhận được cho mỗi job, cái mà ta sẽ phân tích sâu
 Hình thức trả lương: trả lương theo giừ , ngày hay tháng. Điều này
sẽ quyết định lớn đến mức lương , tiền xử lý dữ liệu sẽ theo này.
 Hình thức làm việc: Tất cả giá trị đều chung ‘Tồn thời gian’ nên sẽ
khơng cần cột này.

 Ngành nghề: danh mục của job để phân loại và xử lý, không phải
dùng W2V để lọc nữa.
 Kinh nghiệm: mức học lực để đủ xét tuyển vào 1 job, ảnh hưởng đến
mức lương.
 Giới tính: giới tính mỗi job cũng là 1 cái cột để ta xét xem mức lương
cho từng giới có đồng đều nhau khơng.
 Tên cơng ty: tên công ty cho mỗi job.
 Số lượng tuyển : số lượng người mà job này sẽ tuyển.
 Học vấn : Áp dụng gần giống kinh nghiệm .
 Tuổi: Mức tổi xét tuyển.
Sau đó, danh sách này được sử dụng để tạo ra một dataframe mới với tên cột
tương ứng là. DataFrame mới này được lưu vào biến df.

12


 Và đây là kết quả thu được dữ liệu với 4563 hàng x 12 cột:

3.3 Tiền xử lý dữ liệu
3.3.1 Mục đích
Tiền xử lý dữ liệu (data preprocessing) là quá trình chuẩn bị và biến đổi dữ liệu
đầu vào để chuẩn bị cho việc đưa vào mơ hình học máy. Đây là một bước quan
trọng trong quá trình phát triển mơ hình học máy vì dữ liệu đầu vào thường
khơng phù hợp ngay cho việc đưa vào mơ hình.
Một số công việc phổ biến trong tiền xử lý dữ liệu bao gồm:
1. Loại bỏ dữ liệu thiếu hoặc cập nhật lại dữ liệu thiếu: Dữ liệu thiếu có thể
dẫn đến sai lệch trong kết quả của mơ hình, do vậy việc loại bỏ hoặc cập
nhật lại các giá trị thiếu là rất quan trọng.
2. Chuẩn hóa dữ liệu: Khi các biến đầu vào có các đơn vị đo khác nhau, việc
chuẩn hóa dữ liệu giúp các biến có cùng đơn vị đo để có thể so sánh và

ảnh hưởng đồng đều đến mơ hình.
3. Tái cấu trúc dữ liệu: Đơi khi, dữ liệu đầu vào có thể được cấu trúc khác
nhau hoặc có nhiều cột khơng cần thiết. Việc tái cấu trúc dữ liệu có thể
giúp cho mơ hình học máy hoạt động tốt hơn.

13


3.3.2 Các bước tiền xử lý dữ liệu
1. Xác định cấu trúc của từng cột dữ liệu. Ở đây nhận thấy cột Kinh nghiệm
và Học vấn thiếu khá nhiều, mất gần 50% dữ liệu.

2. Ta có thể loại bỏ các hàng chứa giá trị NaN để tiền xử lý. Nhưng cách
này sẽ làm tổn thất khá lớn dữ liệu. Làm cho dữ liệu có thể sai xót lớn.
Vậy ta sẽ thử cập nhật dữ liệu trước.
3. Bổ sung dữ liệu của cột Kinh nghiệm. Trước tiên xem các giá trị của cột
Kinh nghiệm. Nhận thấy giá trị này cần chuyển đổi dạng số.

Đối với dấu ‘<’ và ‘-‘ ta giữ ngun năm kinh nghiệm, cịn dấu ‘>’ thì
năm kinh nghiệm cộng thêm 1.

14


Sau khi chuyển đổi dạng dữ liệu, ta tiếp tục bổ sung vào các dữ liệu NaN
bằng cách trả về một DataFrame mới với các giá trị bị khuyết trong cột
"Kinh nghiệm" đã được thay thế bằng giá trị trung bình của từng nhóm
trong cột "Ngành nghề".

4. Tương tự, ta sẽ xử lý đối với cột Mức lương.


Mức lương mới sau chuyển đổi sẽ được tính theo 2 cột là Mức lương và
cột Hình thức trả lương.

15


Sau khi chuyển đổi ta tính lương trung bình để bổ sung giá trị NaN, và có
kết quả.

5. Tiếp tục xem xét các cột còn lại trong bảng.

Nhận thấy tỉ lệ mất mát dữ liệu cột Học vấn và Tuổi tối đa quá lớn. Mà
loại cấu trúc của 2 cái khó có thể bổ sung 1 cách thơng thường. Nên ta sẽ
loại bỏ hẳn, và các cột còn lại khác thì loại bỏ các hàng có giá trị NaN.

16


6. Tính tốn thơng số thống kê mơ tả cho mỗi cột số học trong DataFrame
frame.

Thấy giá trị bị rải rác nhiều quá, ví dụ ‘Số lượng tuyển’ ở 75% là 6 người
nhưng giá trị max nhận được lại tận 999 người. Điều này làm dữ liệu bị
phức tạp và khó phân tích hơn.

Ta dùng hàm np.log() cột "Mức lương (triệu đồng)" của DataFrame. Khi
tính tốn giá trị logarit của một biến, ta có thể giảm thiểu được ảnh hưởng
của các giá trị ngoại lai hoặc các giá trị lớn q trên kết quả của mơ hình
học máy. Do đó, việc tạo ra một cột mới "log_price" có thể giúp cho mơ

hình học máy hoạt động tốt hơn.

17


7. Kết quả .

18


4. Trực quan hóa dữ liệu
4.1 Trực quan những giá trị dạng số
Ở đây ta dùng biểu đồ phân tán (Scatter plot). Là biểu đồ phân tán được sử dụng
để trực quan hóa mối quan hệ giữa hai biến.

Biểu đồ phân bổ theo mức lương.

Nhận xét
- Nhìn vào biểu đồ có thể thấy Số lượng tuyển đối với mức lương trải đều
ở mỗi vị trí.
- Đối với Kinh nghiệm, thường được tuyển dụng mức lương cao tại kinh
nghiệm dưới 3 năm. Công việc thường không khắt khe quá đối với kinh
nghiệm.
- Độ tuổi tối thiểu thường đi làm là 18 - 20 tuổi, và cũng là độ tuổi thường
nhận các công việc lương cao.

19


4.2 Trực quan những giá categorical


Biểu đồ tương quan giữa quận và lương

Nhận xét:
 Huyện Chung Mỹ và Quận Tây Hồ là những quận có giá lương job
cao nhất.
o Tương quan giữa loại job và giá:

20



×