Trong quá trình học tập một môn Khai phá và phân tích dữ liệu, nhóm chúng em đã được cô quan tâm và giúp đỡ tận tình.. Thông qua bài tập lớn lần này, nhóm chúng em áp dụng kiến thức đã đ
Trang 1HỌC VIỆN NGÂN HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ
Giảng viên hướng dẫn : Lê Thị Hồng Nhung
Hà Nội, ngày 16 tháng 12 năm 2023
Trang 2HỌC VIỆN NGÂN HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ
Hà Nội, ngày 16 tháng 12 năm 2023
Trang 3BẢNG PHÂN CHIA CÔNG VIỆC
Mã sinh
viên Họ và tên Công việc thực hiện
Tỉ lệ đóng
góp
24A4041413 Nông Huyền My
Xác định bài toán, lý
do ch n bài toán, ý ọnghĩa và vai trò của bài toán
Xác định các thuộc tính, cách th c thu ứthập, ý nghĩa các thu c tính, mô t d ộ ả ữliệu
Đánh giá và đề xuất ứng dụng
ứng d ng ụ
T ng h p word ổ ợ Chỉnh s a ửpowerpoint
33,33%
Trang 4
MỤC LỤC
M C LỤ ỤC i
DANH MỤC B NG BI U iii Ả Ể DANH MỤC HÌNH NH iv Ả LỜI CAM ĐOAN vii
L I CỜ ẢM ƠN viii
L I M Ờ Ở ĐẦ 1 U CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 2
1.1 Đặ ấn đềt v 2
1.2 Cơ sở hình thành đề tài 2
1.3 Mục tiêu đề tài 3
1.4 Đối tượng và phương pháp nghiên cứu 3
1.5 Ý nghĩa 3
1.5.1 Ý nghĩa khoa học 3
1.5.2 Ý nghĩa thực ti n ễ 4
1.6 B cố ục đề tài 4
CHƯƠNG 2 : THU THẬP DỮ LIỆU 5
2.1 Mô t v d ả ề ữ liệu 5
2.1.1 Ngu n d u ồ ữ liệ 5
2.1.2 Mô t v b d ả ề ộ ữ liệu 5
2.2 Ti n x lý d u ề ử ữ liệ 7
2.2.1 T ng quan v n x lý d u ổ ề tiề ử ữ liệ 7
2.2.2 Ti n x lý b d ề ử ộ ữ liệu 7
Trang 5ii
CHƯƠNG 3: SỬ DỤNG THU ẬT TOÁN DECISION TREE ĐỂ DỰ ĐOÁN KHẢ NĂNG HỦY ĐẶT PHÒNG KHÁCH S N C A KHÁCH Ạ Ủ
HÀNG 15
3.1 T ng quan v lý thuy t ổ ề ế 15
3.1.1 Khai phá d u ữ liệ 15
3.1.2 Phân l p d u và thu t toán decision tree ớ ữ liệ ậ 18
3.2 Áp d ng thuụ ật toán decision tree để khai phá bộ d u ữ liệ 23
3.3 Đánh giá hiệu suất 34
3.3.1 Đánh giá hiệu suất khi thay đổi các tham s ố 34
3.3.2 Đánh giá hiệu suất khi thay đổi thu t toán ậ 44
3.3.3 Đánh giá chung 46
CHƯƠNG 4: ĐÁNH GIÁ VÀ ĐỀ XUẤT ỨNG D NG 48 Ụ 4.1 Đánh giá 48
4.2 Đề xuất ứng dụng 49
TÀI LI U THAM KH OỆ Ả 52
Trang 6DANH MỤC BẢNG BIỂU
B ng 1: ả Bảng đánh giá thuật toán decision tree 20
B ng 2: ả Bảng ma trận nhầm lẫn 34
Trang 7iv
DANH MỤC HÌNH ẢNH
Hình 2.1: Khai báo thư viện 7
Hình 2.2: Đọc bộ dữ liệu và hiển thị 5 dòng dữ liệu 8
Hình 2.3: Kiểm tra dữ liệu bị khuyết thiếu 8
Hình 2.4: Thống kế các giá trị 9
Hình 2.5: Biểu đồ boxplot thể hiện các cột có giá trị ngoại lai 9
Hình 2.6: Xử lý giá trị ngoại lai 10
Hình 2.7: Biểu đồ boxplot sau khi đã xử lý ngoại lai 10
Hình 2.8: Kích thước dữ liệu sau khi xử lý ngoại lai 10
Hình 2.9: Chuyển đổi cột date of reservation thành các cột ngày, tháng, năm và hiển thị lại thông tin dữ liệu 11
Hình 2.10: Giá trị trong từng thuộc tính trước khi mã hóa 12
Hình 2.11: Mã hóa dữ liệu với LabelEncoder trong sklearn 12
Hình 2.12: Dữ liệu sau khi mã hóa 13
Hình 2.13: Vẽ biểu đồ nhiệt 13
Hình 2.14: Biểu đồ nhiệt thể hiện mối tương quan giữa các giá trị 14
Hình 3.1: Quá trình khai phá tri thức 16 Hình 3.2: Quy trình thực hiện phân lớp dữ liệu 19
Hình 3.3: Cấu trúc cây quyết định 22
Hình 3.4: Khai báo thư viện cho thuật toán decision tree 23
Hình 3.5: Xác định biến mô tả và biến mục tiêu 23
Hình 3.6: Hình ảnh thể hiện biến mô tả và biến mục tiêu 24
Hình 3.7: Chia bộ dữ liệu thành tập train và test 25
Trang 8Hình 3.8: Huấn luyện mô hình và biểu diễn dưới dạng cây quyết định 26
Hình 3.9: Kết quả cây phân lớp 27
Hình 3.10: Hình ảnh cây sau khi đã phân lớp 27
Hình 3.11: Biểu diễn cây quyết định với đồ thị Graphviz 28
Hình 3.12: Hình ảnh cây quyết định với đồ thị Graphviz 28
Hình 3.13: Kiểm thử mô hình và xác định ma trận nhầm lẫn 29
Hình 3.14: Đồ thị ma trận nhầm lẫn 30
Hình 3.15: Độ chính xác trên tập test 31
Hình 3.16: Thông số đánh giá hiệu suất trên tập test 31
Hình 3.17: Vẽ biểu đồ cột thể hiện độ quan trọng của các đặc 32
Hình 3.18: Biểu đồ cột thể hiện độ quan trọng của các đặc trưng 33
Hình 3.19: Mô hình d ự đoán khả năng hủy đặt phòng khách s n cạ ủa khách hàng 33
Hình 3.20: Thay đổi tham số lần 1 và huấn luyện lại mô hình 35
Hình 3.21: Kết quả cây phân lớp sau khi thay đổi tham số lần 1 35
Hình 3.22: Cây quyết định sau khi thay đổi tham số lần 1 36
Hình 3.23: Kiểm thử mô hình, ma trận nhầm lẫn sau khi thay đổi tham số lần 1 36
Hình 3.24: Biểu đồ thể hiện ma trận nhầm lẫn sau khi thay đổi tham số lần 1 37
Hình 3.25: Độ chính xác của tập test sau khi thay đổi tham số lần 1 38
Hình 3.26: Thông số của tập test sau khi thay đổi tham số lần 1 38
Hình 3.27: Vẽ lại biểu đồ thể hiện độ quan trọng của các đặc trưng trong mô hình sau khi thay đổi tham số lần 1 38
Trang 9vi
Hình 3.28: Biểu đồ cột sau khi thay đổi tham số lần 1 39
Hình 3.29: Mô hình d ự đoán khả năng hủy đặt phòng khách s n cạ ủa khách hàng sau khi thay đổi tham số lần 1 39
Hình 3.30: Thay đổi tham số lần 2 và huấn luyện lại mô hình 40
Hình 3.31: Vẽ lại cây quyết định sau khi thay đổi tham số lần 2 41
Hình 3.32: Cây quyết định sau khi thay đổi tham số lần 2 41
Hình 3.33: Kiểm thử mô hình trên tập test và xác định ma trận nhầm lẫn sau khi thay đổi tham số lần 2 42
Hình 3.34: Ma trận nhầm lẫn sau khi thay đổi tham số lần 2 42
Hình 3.35: Độ chính xác của tập test sau khi thay đổi tham số lần 2 43
Hình 3.36: Thông số của tập test sau khi thay đổi tham số lần 2 43
Hình 3.37: Vẽ lại biểu đồ cột sau khi thay đổi thông số lần 2 43
Hình 3.38: Biểu đồ cột thể hiện độ quan trọng của các đặc trưng trong mô hình sau khi thay đổi tham số lần 2 43
Hình 3.39: Khai báo thư viện randomforest 44
Hình 3.40: Thực thi mô hình trên tập train và kiểm thử mô hình trên tập test sau khi thay đổi thuật toán 44
Hình 3.41: Xác định ma trận nhầm lẫn sau khi thay đổi thuật toán 44
Hình 3.42: Đồ thị ma trận nhầm lẫn sau khi thay đổi thuật toán 45
Hình 3.43: Độ chính xác của tập test sau khi thay đổi thuật toán 45
Hình 3.44: Thông số của tập test sau khi thay đổi thuật toán 45
Trang 10LỜI CAM ĐOAN
Nhóm em đã đọc và hiểu về các hành vi vi phạm sự trung thực trong học thuật Nhóm em cam kết bằng danh dự cá nhân rằng bài tập lớn này do nhóm em tự thực hiện và không vi phạm yêu cầu về sự trung thực trong học thuật
Hà Nội, ngày 16 tháng 12 năm 2023
Học viên Nông Huyền My Trần Thị Kim Anh Phạm Thị Hồng Nhung
Trang 11viii
LỜI CẢM ƠN
Lời đầu tiên cho phép nhóm xin gửi lời cảm ơn đến cô Lê Thị Hồng Nhung - giảng viên môn Khai phá và phân tích dữ liệu, khoa Hệ thống thông tin quản lý Trong quá trình học tập một môn Khai phá và phân tích
dữ liệu, nhóm chúng em đã được cô quan tâm và giúp đỡ tận tình Sau 16 tuần học thì chúng em đã tích lũy thêm được rất nhiều kiến thức để có thể
có cái nhìn sâu sắc và hoàn thiện hơn về bộ môn này Thông qua bài tập lớn lần này, nhóm chúng em áp dụng kiến thức đã được tiếp thu trong quá trình học dưới sự hướng dẫn của cô và thông qua việc tìm hiểu thêm về các thuật toán để ứng dụng mô hình học máy vào giải quyết bài toán “Dự đoán khả năng hủy đặt phòng khách sạn của khách hàng”
Trong quá trình hoàn thành bài tập lớn lần này, chúng em đã có sự
nỗ lực trong việc tìm hiểu, nghiên cứu các kiến thức để hoàn thiện bài tập lớn một cách tốt nhất trong khả năng của mình Nhóm em hi vọng sẽ nhận được những góp ý của cô để bài tập lớn của chúng em được hoàn thiện hơn
Kính chúc cô có thật nhiều sức khỏe và thành công trong con đường giảng dạy của mình, đặc biệt là đưa khoa Hệ thống thông tin quản lý ngày càng phát triển hơn
Hà Nội, ngày 16 tháng 12 năm 2023
Học viên Nông Huyền My Trần Thị Kim Anh Phạm Thị Hồng Nhung
Trang 12LỜI MỞ ĐẦU
Trong những năm gần đây, với nền kinh tế thị trường ngày càng năng động và sự hội nhập thế giới mạnh mẽ thì hiện tượng bùng nổ dữ liệu xuất hiện với lượng dữ liệu được tạo ra và gia tăng chóng mặt Điều này đặt ra thách thức lớn cho các doanh nghiệp trong việc quản lý và khai thác dữ liệu Để giải quyết vấn đề này, việc ứng dụng phân tích và khai phá dữ liệu
là một công cụ quan trọng trong nền kinh tế hiện đại Cho phép doanh nghiệp thu thập, phân tích và sử dụng thông tin đưa ra quyết định kinh doanh thông minh và hiệu quả Đồng thời giúp tăng cường năng suất và giảm chi phí sản xuất Vì vậy, khai phá dữ liệu là một yếu tố quan trọng trong sự phát triển nền kinh tế và cạnh tranh của một quốc gia
Trang 13và phương án xử lý tốt nhất Do vậy nhóm chúng em đã quyết định lựa chọn đề tài “Dự đoán khả năng hủy đặt phòng khách sạn của khách hàng”
để khai phá và phân tích dữ liệu
Trong phạm vi nghiên cứu đề tài của nhóm chúng em, nhóm đi tìm hiểu và trình bày kiến thức môn khai phá và phân tích dữ liệu, từ đó tìm ra
ưu nhược điểm của vấn đề và đưa ra đề xuất ứng dụng giúp các doanh nghiệp khắc phục tình trạng huỷ đặt phòng của khách hàng nhằm tăng lợi nhuận, tối ưu hóa các chi phí và giảm thiểu rủi ro một cách tốt nhất
1.2 Cơ sở hình thành đề tài
Sau khi đọc hiểu và xem xét các số liệu về việc khách hàng huỷ đặt phòng khách sạn như tỷ lệ huỷ đặt phòng, thời gian huỷ đặt phòng, lý do hủy, tần suất huỷ đặt phòng, từ đó phân tích về khả năng khách hàng huỷ
Trang 14đặt phòng Chính vì mong muốn số lượng khách hàng huỷ đặt phòng khách sạn ít nhất nên đề tài nghiên cứu sẽ hỗ trợ cho các khách sạn có thể dự đoán trước các khách hàng có khả năng huỷ phòng, từ đó giúp khách sạn đưa ra các chiến lược, các dịch vụ chăm sóc khách hàng nhằm giữ chân khách hàng, tối ưu hoá quản lý đặt phòng, cải thiện trải nghiệm khách hàng và hạn chế được việc hủy đặt phòng.
1.3 Mục tiêu đề tài
Khai thác và phân tích số liệu trên bộ dữ liệu từ đó dự đoán được xác suất hủy đặt phòng của khách hàng giúp các doanh nghiệp kiểm soát được khả năng hủy của khách hàng từ đó hiểu thêm về những mong muốn của họ và cải thiện chất lượng dịch vụ nâng cao hiệu quả kinh doanh
1.4 Đối tượng và phương pháp nghiên cứu
Đối tượng: khả năng hủy đặt phòng khách sạn của khách hàng.Phương pháp nghiên cứu :
- Xác định bài toán, thuộc tính, cách thức thu thập và ý nghĩa thuộc tính Từ đó tiến hành tiền xử lý dữ liệu qua các biểu đồ minh hoạ sự phân bố dữ liệu và mối tương quan giữa các thuộc tính
- Sử dụng thuật toán chính là Decision Tree dự đoán khả năng hủy đặt phòng khách sạn của khách hàng Thuật toán Decision Tree là một phương pháp được sử dụng để xây dựng mô hình dự đoán dựa trên việc phân loại dữ liệu thành các nhóm Được sử dụng rộng rãi trong các lĩnh vực như phân loại, dự đoán và phân tích dữ liệu
1.5 Ý nghĩa
1.5.1 Ý nghĩa khoa học
Việc dự đoán khả năng huỷ đặt phòng ở khách sạn cũng là một ứng dụng của khoa học dữ liệu và trí tuệ nhân tạo Nhờ sử dụng thuật toán Decision Tree để phân lớp các đối tượng dựa vào các luật nhằm phân loại,
Trang 154
dự đoán và khai phá dữ liệu, từ đó đưa ra các dự đoán về khả năng huỷ phòng ở khách sạn một cách chính xác và logic Mục đích giúp khách sạn đạt công suất 100% bằng cách phòng ngừa rủi ro đối với khách không đến hoặc huỷ phòng, tối đa hoá doanh thu và lợi nhuận, rủi ro thấp và cơ hội tăng khả năng sinh lời cao
dự đoán cũng có thể giúp các khách sạn và nhà cung cấp du lịch tối ưu hoá quy trình quản lý đặt phòng và giảm thiểu tỷ lệ đặt phòng Ngoài ra giúp các khách sạn đưa ra các biện pháp phòng ngừa trường hợp khách hàng quyết định hủy đặt phòng khách sạn
1.6 Bố cục đề tài
Đề tài nghiên cứu gồm tất cả 4 vấn đề chính :
▪ Chương 1 : Tổng quan đề tài
▪ Chương 2 : Thu thập dữ liệu
▪ Chương 3 : Sử dụng thuật toán Decision Tree để dự đoán khả năng hủy đặt phòng khách sạn của khách hàng
▪ Chương 4 : Đánh giá và đề xuất ứng dụng
Trang 16CHƯƠNG 2 : THU THẬP DỮ LIỆU
2.1 Mô tả về dữ liệu
2.1.1 Nguồn dữ liệu
Chìa khóa để thành công trong lĩnh vực Machine Learning là thực hành với các bộ dữ liệu (dataset) khác nhau Tuy nhiên, để có thể tìm được một tập dữ liệu phù hợp cho từng loại học máy và khai phá chúng là một việc không hề dễ dàng Có nhiều trang web để chúng ta có thể lấy những
bộ dữ liệu, và “Kaggle” là một trong số đó Kaggle là một trong những thư viện dữ liệu trực tuyến lớn nhất, được cập nhật mỗi ngày bởi cộng đồng những người làm việc trong lĩnh vực Machine Learning và Al Người dùng không thể hy vọng vào chất lượng bộ dữ liệu là tốt như nhau nhưng tất cả
bộ dữ liệu ở đây đều hoàn toàn miễn phí, vì vậy người dùng có thể tìm và lựa chọn bộ dữ liệu tốt nhất để khai phá và phân tích chúng
Sau một thời gian tìm hiểu về các bộ dữ liệu khác nhau liên quan đến vấn đề “Đặt phòng khách sạn”, nhóm chúng em quyết định lựa chọn
bộ dữ liệu “Hotel Booking Cancellation Prediction” từ Kaggle để phục vụ
cho bài toán
2.1.2 Mô tả về bộ dữ liệu
Bộ dữ liệu “Hotel Booking Cancellation Prediction” có nhiều tính
năng đa dạng, bao gồm chi tiết đặt phòng, thông tin khách hàng và thông tin cụ thể về đặt phòng Bộ dữ liệu được thu thập tỉ mỉ từ các tình huống đặt phòng khách sạn trong thực tế, đảm bảo tính xác thực và phù hợp cho
mô hình dự đoán Thông tin chi tiết về các thuộc tính trong dữ liệu như sau:
Booking-Id: mã định danh duy nhất cho mỗi lượt đặt chỗ
Number of adults: số lượng người lớn trong phòng được đặt
Trang 176
Number of children: số lượng trẻ em có trong phòng được đặt
Number of weekend nights: số đêm cuối tuần có trong đặt phòng Number of week nights: số đêm trong tuần có trong đặt phòng
Type of meal: phân loại bữa ăn dựa trên các tiêu chí khác nhau chẳng hạn như thời gian trong ngày, mục đích, thành phần… trong đặt phòng
Car parking space: cho biết liệu chỗ đậu xe đã được yêu cầu trong đặt phòng
Room type: loại phòng đã đặt
Lead time: khoảng thời gian từ khi khách hàng đặt phòng đến khi khách hàng đến nhận phòng
Market segment type: phân chia khách hàng thành các nhóm là offline, online, corporate, aviation, complementary
Repeated: mô tả hành động của khách hàng đặt phòng khách sạn liệu lượt đặt chỗ có phải là lượt đặt chỗ lặp lại hay không
P-C (viết tắt là pre-check-in): tính từ thời điểm hiện tại, số lượt đặt chỗ trước đó đã bị khách hàng hủy là bao nhiêu
P-not-C: tính từ thời điểm hiện tại, số lượng đặt chỗ thành công trước đó của khách hàng là bao nhiêu lần
Average price: giá trung bình cho mỗi phòng được đặt trong một ngày
Special requests: số lượng yêu cầu đặc biệt của khách
Date of reservation: ngày đặt chỗ
Booking status: tình trạng đặt chỗ (đã hủy hoặc chưa hủy)
Trang 182.2 Tiền xử lý dữ liệu
2.2.1 Tổng quan về tiền xử lý dữ liệu
Tiền xử lý dữ liệu là một bước quan trọng trong quá trình khai thác tri thức, bởi vì các quyết định về chất lượng phải dựa trên dữ liệu chất lượng Việc phát hiện các bất thường về dữ liệu, khắc phục chúng sớm và giảm bớt dữ liệu cần phân tích có thể giúp tăng độ chính xác của mô hình học máy Tiền xử lý dữ liệu bao gồm các bước sau :
▪ Thu thập dữ liệu: Thu thập dữ liệu từ nhiều nguồn khác nhau
▪ Xử lý dữ liệu: xử lý dữ liệu để loại bỏ các giá trị không hợp
lệ, giá trị thiếu và giá trị nhiễu
▪ Phân tích dữ liệu: phân tích dữ liệu để tìm ra các mối quan hệ giữa các biến và đưa ra các kết luận
▪ Lưu trữ dữ liệu: lưu trữ dữ liệu để sử dụng cho các mô hình học máy
2.2.2 Tiền xử lý bộ dữ liệu
a Khai báo thư viện sử dụng
Hình 2.1: Khai báo thư viện
b Đọc và hiển thị thông tin của bộ dữ liệu
Trang 198
Hình 2.2: Đọc bộ dữ liệu và hiển thị 5 dòng dữ liệu
Hình 2.3: Kiểm tra dữ liệu bị khuyết thiếu
Sau khi đọc bộ dữ liệu và kiểm tra khuyết thiếu cho thấy bộ dữ liệu
có 17 cột và 36285 dòng dữ liệu Đồng thời từ ảnh 2.3 ta dựa vào cột Null cho thấy không có cột dữ liệu nào bị khuyết thiếu do vậy bộ dữ liệu không chứa giá trị khuyết thiếu
Non-c Mô tả các giá trị thống kê cơ bản
Trong tiền xử lý dữ liệu, giá trị thống kê cơ bản là những thông tin
mô tả về phân phối của dữ liệu Những giá trị này giúp ta hiểu rõ hơn về tính chất của dữ liệu và có thể hỗ trợ quá trình phân tích và đưa ra quyết định Hình 2.4 cho ta thấy được mô tả các giá trị thống kê cơ bản của bộ
dữ liệu
Trang 20Hình 2.4: Thống kế các giá trị
d Xử lý ngoại lai – làm sạch dữ liệu
Biểu đồ xử lý giá trị ngoại lai (box plot, hay còn gọi là whisker plot)
là một công cụ mạnh mẽ trong thống kê để hiển thị phân phối và các giá trị ngoại lai trong dữ liệu Biểu đồ này giúp ta hiểu rõ hơn về tập trung, phân phối và biến động của dữ liệu Dưới đây là hình ảnh mô tả cơ bản về biểu
đồ xử lý giá trị ngoại lai:
Hình 2.5: Biểu đồ boxplot thể hiện các cột có giá trị ngoại lai
Từ biểu đồ cho thấy cột “Lead time” và cột “Average price” đang có các giá trị ngoại lai do vậy cần loại bỏ chúng Có rất nhiều phương pháp thống kê để loại bỏ được các giá trị ngoại lai và một trong những phương pháp phổ biến đó là IQR IQR là khoảng giữa phân vị 25% (Q1) và phân
vị 75% (Q3) của dữ liệu, còn được gọi là khoảng cách giữa quartile Dưới đây là hình ảnh thể hiện phương pháp IQR để xử lý giá trị ngoại lai:
Trang 2110
Hình 2.6: Xử lý giá trị ngoại lai
Hình 2.7: Biểu đồ boxplot sau khi đã xử lý ngoại lai
Hình 2.8: Kích thước dữ liệu sau khi xử lý ngoại lai
Sau khi xác định giá trị ngoại lại và loại bỏ thì bộ dữ liệu còn 33345 dòng dữ liệu và 17 cột
e Chuyển đổi cột date of reservation
Để chuẩn bị dữ liệu đầu vào là dạng số để thích hợp cho mô hình Decision Tree, cột “date of reservation” cần phải được chuyển đổi thành các cột đặc trưng số để giúp mô hình hiểu, cho phép phân tích thời gian dễ dàng hơn Thuật toán này cũng như nhiều thuật toán khác không thể xử lý trực tiếp dữ liệu dạng datetime, vì vậy nó cần phải được chuyển đổi thành
Trang 22dữ liệu dạng số để thuật toán có thể sử dụng được Tách cột “date of reservation” thành các cột “day” “month” “year”, , giúp mô hình có thể nhận biết các mô hình hoặc xu hướng liên quan đến các thành phần ngày, tháng và năm Bên cạnh đó, việc tách thành các thành phần như “day”,
“month”, “year” có thể giúp mô hình nhận biết được các mô hình chu kỳ
và mùa vụ, điều này có thể quan trọng đối với việc dự đoán hủy đặt phòng khách sạn Tách “date of reservation” thành các thành phần là một cách
để giảm số chiều của dữ liệu, giúp giảm bớt độ phức tạp của mô hình và làm cho quá trình huấn luyện mô hình nhanh chóng hơn, đặc biệt là đối với các tập dữ liệu lớn
Hình 2.9: Chuyển đổi cột date of reservation thành các cột ngày, tháng, năm
và hiển thị lại thông tin dữ liệu Sau khi biến đổi cột “date of reservation” thành các cột day, month, year thì bộ dữ liệu có 19 cột và 33312 dòng dữ liệu
f Xác định giá trị trong từng thuộc tính và mã hóa dữ liệu
● Giá trị trong từng thuộc tính trước khi mã hóa:
Trang 2312
Hình 2.10: Giá trị trong từng thuộc tính trước khi mã hóa
● Mã hóa dữ liệu
Mã hóa trong tiền xử lý dữ liệu là quá trình chuyển đổi các dữ liệu
từ dạng không thích hợp hoặc không có thể xử lý trực tiếp bởi các mô hình máy học thành dạng có thể xử lý được Có rất nhiều phương pháp mã hóa
và trong đó có mã hóa Label Encoder là một phương pháp mã hóa dữ liệu phân loại trong tiền xử lý dữ liệu, chuyển đổi các giá trị phân loại thành các số nguyên tăng dần từ 0 đến (n_classes 1) Đây là một công cụ quan - trọng khi làm việc với các thuật toán học máy, đặc biệt là các mô hình như Decision Trees, Support Vector Machines và Neural Networks, mà thường yêu cầu dữ liệu đầu vào ở dạng số học Dưới đây là mã hóa dữ liệu với LabelEncoder:
Hình 2.11: Mã hóa dữ liệu với LabelEncoder trong sklearn
● Dữ liệu sau khi đã mã hóa
Trang 24Hình 2.12: Dữ liệu sau khi mã hóa
g Biểu đồ nhiệt
Biểu đồ nhiệt (Heatmap) là một công cụ trực quan mạnh mẽ trong quá trình khai phá dữ liệu, giúp hiển thị mối quan hệ tương quan giữa các biến Trong quá trình khai phá dữ liệu, việc hiểu được mối tương quan giữa các biến sẽ giúp cho người khai phá dữ liệu có cái nhìn trực quan và hiệu quả để hiểu và đánh giá mối tương quan một cách hiệu quả Dưới đây là biểu đồ nhiệt thể hiện mối quan hệ giữa các biến trong bộ dữ liệu
Hình 2.13 : Vẽ biểu đồ nhiệt
Trang 2514
Hình 2.14: Biểu đồ nhiệt thể hiện mối tương quan giữa các giá trị
Từ biểu đồ nhiệt trên ta thấy cột “booking status” có mối tương quan
âm mạnh nhất với cột “Lead time” Như vậy có thể thấy, khi “booking status” có xu hướng tăng thì cột “Lead time” sẽ có xu hướng giảm Chúng
sẽ có mối tương quan nghịch biến với nhau Ngoài ra, các cột “market segment type”, “average price” cũng giá mối tương quan nghịch biến với
“booking status” tuy nhiên sẽ không mạnh bằng “Lead time”
“Special requests” sẽ có mối tương quan dương mạnh nhất với
“Booking status” Do vậy khi “booking status” có xu hướng tăng thì
“special requests” cũng có xu hướng tăng theo Có thể nói rằng, chúng có mối tương quan đồng biến với nhau
Trang 26CHƯƠNG 3: SỬ DỤNG THUẬT TOÁN DECISION TREE
ĐỂ DỰ ĐOÁN KHẢ NĂNG HỦY ĐẶT PHÒNG KHÁCH
Các tên gọi khác của khai phá dữ liệu:
▪ Khám phá tri thức trong các cơ sở dữ liệu
▪ Trích rút tri thức
▪ Phân tích mẫu/dữ liệu……
3.1.1.2 Các bước trong quá trình khai phá
Quá trình được thực hiện qua 9 bước:
▪ Tìm hiểu lĩnh vực của bài toán (ứng dụng): các mục đích của bài toán các tri thức cụ thể của lĩnh vực
▪ Thu thập một tập dữ liệu phù hợp
▪ Làm sạch và tiền xử lý dữ liệu
▪ Giảm kích thước của dữ liệu, chuyển đổi dữ liệu: xác định thuộc tính quan trọng, giảm số chiều (số thuộc tính), biểu diễn bất biến
▪ Lựa chọn chức năng khai phá dữ liệu: Phân loại, gom cụm, dự báo, sinh ra các luật kết hợp
Trang 2716
▪ Lựa chọn, phát triển các giải thuật khai phá dữ liệu phù hợp
▪ Tiến hành khai phá dữ liệu
▪ Đánh giá mẫu thu được và biểu diễn tri thức: Hiển thị hóa, chuyển đổi, bỏ đi các mẫu dư thừa,
▪ Sử dụng tri thức được khai phá
Quá trình khám phá tri thức theo cách nhìn của giới nghiên cứu về các hệ thống dữ liệu và kho dữ liệu về quá trình khám phá tri thức
Hình 3.1: Quá trình khai phá tri thức
Chuẩn bị dữ liệu (data preparation), bao gồm các quá trình làm sạch
dữ liệu (data cleaning), tích hợp dữ liệu (data integration), chọn dữ liệu (data selection), biến đổi dữ liệu (data transformation)
Khai thác dữ liệu (data mining): xác định nhiệm vụ khai thác dữ liệu
và lựa chọn kỹ thuật khai thác dữ liệu Kết quả cho ta một nguồn tri thức thô
Trang 28Đánh giá (evaluation): dựa trên một số tiêu chí tiến hành kiểm tra và lọc nguồn tri thức thu được
Triển khai (deployment)
Quá trình khai thác tri thức không chỉ là một quá trình tuần tự từ bước đầu tiên đến bước cuối cùng mà là một quá trình lặp và có quay trở lại các bước đã qua
3.1.1.3 Ứng dụng của khai phá dữ liệu
Kinh tế ứng dụng trong kinh doanh, tài chính, tiếp thị bán hàng, - bảo hiểm, ngân hàng, đưa ra các bản báo cáo giàu thông tin; phân tích rủi
ro trước khi đưa ra các chiến lược kinh doanh, sản xuất; phân loại khách hàng từ đó phân định thị trường,
Khoa học: Thiên văn học dự đoán đường đi các thiên thể, hành - tinh, ; Công nghệ sinh học tìm ra các gen mới, cây con giống mới, -
Y tế: ứng dụng trong việc chẩn đoán tình trạng bệnh, biểu hiện bệnh,
Trang 29❖ Quy trình thực hiện phân lớp dữ liệu
● Bước học (bước huấn luyện): Xây dựng mô hình
▪ Xác định tập dữ liệu huấn luyện gồm các mẫu đã được gán nhãn y
▪ Chạy một thuật toán phân lớp trên tập dữ liệu huấn luyện
▪ Mô hình được biểu diễn dưới dạng các luật phân lớp, các cây quyết định hoặc các công thức toán
Trang 30● Bước phân loại: Sử dụng mô hình: để gán nhãn thích hợp cho các dữ liệu chưa được gán nhãn
▪ Ước lượng độ chính xác của mô hình:
▪ Xác định tập dữ liệu kiểm thử gồm các mẫu đã được gán nhãn
y (dữ liệu kiểm thử và dữ liệu huấn luyện phải khác nhau để tránh tình trạng quá khớp overfitting)
▪ Chạy mô hình với tập dữ liệu kiểm thử thu được nhãn y’
▪ So sánh y và y’ để xác định độ chính xác của mô hình
▪ Nếu mô hình chính xác, sử dụng nó để dự đoán nhãn cho các
dữ liệu cần gán nhãn
Hình 3.2: Quy trình thực hiện phân lớp dữ liệu
❖ Đánh giá thuật toán
Trong bài toán phân lớp, hiệu quả làm việc của bộ phân lớp được đánh giá thông qua các độ TP, TN, FP, FN với ý nghĩa cụ thể:
Trang 3120
● TP: số bản ghi được phân lớp đúng vào lớp C (trường hợp đúng)
▪ Thực tế: bản ghi được chứa trong lớp C
▪ Kết quả sau phân lớp: bản ghi được chứa trong lớp C
● TN: số bản ghi không được phân lớp vào lớp C (trường hợp đúng)
▪ Thực tế: bản ghi không được chứa trong lớp C
▪ Kết quả sau phân lớp: bản ghi không thuộc lớp C
● FP: số bản ghi được phân lớp vào lớp C (trường hợp sai)
▪ Thực tế: bản ghi không được chứa trong lớp C
▪ Kết quả sau phân lớp: bản ghi thuộc lớp C
● FN: số bản ghi không được phân lớp vào lớp C (trường hợp sai)
▪ Thực tế: bản ghi được chứa trong lớp C
▪ Kết quả sau lớp: bản ghi không được chứa trong lớp C
Lớp C
Giá trị qua bộ phận lớp Thuộc lớp C Không thuộc lớp C
Giá trị thực
Thuộc lớp C TP FN Không thuộc lớp C FP TN Bảng 1: Bảng đánh giá thuật toán decision tree
Chỉ số Precision (độ chính xác):