1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài tập lớn Đề tài khai phá dữ liệu trong việc dự báo hủy Đặt phòng khách sạn của khách hàng

57 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 đề Khai Phá Dữ Liệu Trong Việc Dự Báo Hủy Đặt Phòng Khách Sạn Của Khách Hàng
Tác giả Cầm Bá Thắng
Người hướng dẫn TS. Ngô Quốc Tạo
Trường học Trường Đại Học Hòa Bình
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo cáo
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 57
Dung lượng 9 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI (11)
    • 1. Đặt vấn đề (11)
    • 2. Cơ sở hình thành đề tài (11)
    • 3. Mục tiêu đề tài (11)
    • 4. Đối tượng và phương pháp nghiên cứu (12)
    • 5. Ý nghĩa (12)
      • 5.1. Ý nghĩa khoa học (12)
      • 5.2. Ý nghĩa thực tiễn (12)
    • 6. Bố cục đề tài (13)
  • Chương 4 Đánh giá và đề xuất ứng dụngCHƯƠNG 2 : THU THẬP DỮ LIỆU (54)
    • 1. Mô tả về dữ liệu (14)
      • 1.1. Nguồn dữ liệu (14)
      • 1.2. Mô tả về bộ dữ liệu (14)
    • 2. Tiền xử lý dữ liệu (15)
      • 2.1. Tổng quan về tiền xử lý dữ liệu (15)
      • 2.2. Tiền xử lý bộ dữ liệu (15)
  • 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 (23)
    • 1. Tổng quan về lý thuyết (23)
      • 1.1. Khai phá dữ liệu (23)
    • 2. Phân lớp dữ liệu và thuật toán decision tree (25)
    • 3. Áp dụng thuật toán decision tree để khai phá bộ dữ liệu (30)
    • 4. Đánh giá hiệu suất (41)
      • 4.1. Đánh giá hiệu suất khi thay đổi các tham số (41)
    • 5. Đánh giá hiệu suất khi thay đổi thuật toán (51)
    • 6. Đánh giá chung (53)
  • CHƯƠNG 4: ĐÁNH GIÁ VÀ ĐỀ XUẤT ỨNG DỤNG (0)
    • 1. Nhận xét (54)
      • 1.1. Đề xuất ứng dụng (55)
  • TÀI LIỆU THAM KHẢO (57)

Nội dung

TRƯỜNG ĐẠI HỌC HÒA BÌNHKHOA CÔNG NGHỆ THÔNG TIN – ĐIỆN TỬ VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN ĐỀ TÀI: KHAI PHÁ DỮ LIỆU TRONG VIỆC DỰ BÁO HỦY ĐẶT PHÒNG KHÁCH SẠN CỦA KHÁCH HÀNG Sinh viên thực

Đánh giá và đề xuất ứng dụngCHƯƠNG 2 : THU THẬP DỮ LIỆU

Mô tả về dữ liệu

Để thành công trong lĩnh vực Machine Learning, việc thực hành với các bộ dữ liệu đa dạng là rất quan trọng Tuy nhiên, việc tìm kiếm tập dữ liệu phù hợp cho từng loại học máy không phải là điều dễ dàng Kaggle là một trong những nền tảng hàng đầu cung cấp bộ dữ liệu, được cập nhật hàng ngày bởi cộng đồng chuyên gia trong lĩnh vực Machine Learning và AI Mặc dù chất lượng bộ dữ liệu có thể khác nhau, tất cả đều hoàn toàn miễn phí, cho phép người dùng dễ dàng tìm kiếm và lựa chọn bộ dữ liệu tốt nhất để khai thác và phân tích.

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.

1.2 Mô tả về bộ dữ liệu

Bộ dữ liệu "Dự đoán hủy đặt phòng khách sạn" cung cấp nhiều tính năng phong phú, bao gồm thông tin chi tiết về đặt phòng, dữ liệu khách hàng và các yếu tố cụ thể liên quan đến đặt phòng.

Dữ liệu được thu thập từ các tình huống đặt phòng khách sạn thực tế, đảm bảo tính chính xác và phù hợp cho mô hình dự đoán Các thuộc tính trong dữ liệu được mô tả chi tiết để phục vụ cho việc phân tích và tối ưu hóa quy trình đặt phòng.

Booking-Id: mã định danh duy nhất cho mỗi lượt đặt chỗ.

When making a reservation, it's essential to specify the number of adults and children in the room Additionally, indicate the number of weekend nights and week nights included in your booking for a seamless experience.

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ộtngà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).

Tiền xử lý dữ liệu

2.1 Tổng quan về tiền xử lý dữ liệu

Tiền xử lý dữ liệu là bước quan trọng trong khai thác tri thức, vì quyết định chất lượng phụ thuộc vào dữ liệu chất lượng Phát hiện và khắc phục bất thường dữ liệu kịp thời, cũng như giảm bớt khối lượng dữ liệu cần phân tích, giúp nâng cao độ chính xác của mô hình học máy Các bước trong quá trình tiền xử lý dữ liệu bao gồm nhiều kỹ thuật cần thiết để tối ưu hóa dữ liệu trước khi đưa vào phân tích.

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 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

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

Bộ dữ liệu gồm 17 cột và 36,285 dòng, không có giá trị khuyết thiếu, như đã xác nhận từ cột Non-Null trong hình 2.3 Điều này cho thấy tính đầy đủ của dữ liệu, giúp đảm bảo độ tin cậy trong phân tích.

Trong quá trình tiền xử lý dữ liệu, các giá trị thống kê cơ bản cung cấp thông tin quan trọng về phân phối của dữ liệu, giúp chúng ta hiểu rõ hơn về tính chất của nó Những giá trị này đóng vai trò quan trọng trong việc hỗ trợ phân tích và ra quyết định Hình 2.4 minh họa các giá trị thống kê cơ bản của bộ dữ liệu.

Hì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, hay còn gọi là box plot hoặc whisker plot, là một công cụ thống kê hữu ích để hiển thị phân phối và các giá trị ngoại lai trong dữ liệu Công cụ này giúp người dùng hiểu rõ hơn về sự tập trung, phân phối và biến động của dữ liệu.

Hình 2.5: Biểu đồ boxplot thể hiện các cột có giá trị ngoại lai

Biểu đồ cho thấy cột “Lead time” và cột “Average price” có giá trị ngoại lai, do đó cần loại bỏ chúng Có nhiều phương pháp thống kê để xử lý giá trị ngoại lai, trong đó phương pháp IQR (Interquartile Range) là một trong những phương pháp phổ biến IQR được xác định là khoảng giữa phân vị 25% (Q1) và phân vị 75% (Q3) của dữ liệu, phản ánh khoảng cách giữa các quartile Hình ảnh dưới đây minh họa phương pháp IQR trong việc xử lý giá trị ngoại lai.

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 loại bỏ giá trị ngoại lai, bộ dữ liệu còn lại có 33,345 dòng và 17 cột Để chuẩn bị dữ liệu cho mô hình Decision Tree, cột “date of reservation” cần được chuyển đổi thành các cột số, giúp mô hình dễ dàng phân tích thời gian Do thuật toán không thể xử lý dữ liệu dạng datetime trực tiếp, nên việc tách cột “date of reservation” thành các cột “day”, “month”, “year” là cần thiết Điều này không chỉ giúp mô hình nhận diện các xu hướng theo ngày, tháng và năm mà còn hỗ trợ trong việc phát hiện các mô hình chu kỳ và mùa vụ, quan trọng cho dự đoán hủy đặt phòng khách sạn Việc tách các thành phần này cũng giúp giảm chiều dữ liệu, giảm độ phức tạp của mô hình và tăng tốc quá trình huấn luyện, đặc biệt 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 chuyển đổi cột "ngày đặt chỗ" thành các cột ngày, tháng, năm, bộ dữ liệu hiện có 19 cột và 33,312 dòng Tiếp theo, cần xác định giá trị cho từng thuộc tính và tiến hành mã hóa dữ liệu.

Giá trị trong từng thuộc tính trước khi mã hóa:

Hình 2.10: Giá trị trong từng thuộc tính trước khi mã hóa

Mã hóa trong tiền xử lý dữ liệu là quá trình chuyển đổi dữ liệu không phù hợp thành dạng có thể xử lý Một trong những phương pháp quan trọng là Label Encoder, chuyển đổi giá trị phân loại thành các số nguyên từ 0 đến (n_classes - 1) Phương pháp này rất cần thiết cho các thuật toán học máy như Decision Trees, Support Vector Machines và Neural Networks, vì chúng thường yêu cầu dữ liệu đầu vào ở dạng số học.

Hình 2.11: Mã hóa dữ liệu với LabelEncoder trong sklearn

Dữ liệu sau khi đã mã hóa

Hình 2.12: Dữ liệu sau khi mã hóa g Biểu đồ nhiệt

Biểu đồ nhiệt (Heatmap) là công cụ trực quan hiệu quả trong khai phá dữ liệu, giúp thể hiện mối quan hệ tương quan giữa các biến Việc hiểu rõ mối tương quan này mang lại cái nhìn trực quan, hỗ trợ người khai phá dữ liệu đánh giá và phân tích hiệu quả hơn Dưới đây là biểu đồ nhiệt minh họa mối quan hệ giữa các biến trong bộ dữ liệu.

Hình 2.13: Vẽ biểu đồ nhiệt

Hình 2.14: Biểu đồ nhiệt thể hiện mối tương quan giữa các giá trị.

Biểu đồ nhiệt cho thấy cột “booking status” có mối tương quan âm mạnh nhất với cột “Lead time”, nghĩa là khi “booking status” tăng thì “Lead time” sẽ giảm Mối quan hệ này cho thấy sự nghịch biến giữa hai yếu tố này Bên cạnh đó, các cột “market segment type” và “average price” cũng thể hiện mối tương quan nghịch biến với “booking status”, nhưng mức độ không mạnh bằng “Lead time” Trong khi đó, “special requests” lại có mối tương quan dương mạnh nhất với “booking status”.

Khi "booking status" tăng lên, "special requests" cũng có xu hướng tăng theo, cho thấy mối tương quan đồng biến giữa chúng.

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

Tổng quan về lý thuyết

1.1 Khai phá dữ liệu a Khái niệm

Khai phá dữ liệu, hay còn gọi là khám phá tri thức từ dữ liệu, là quá trình trích xuất các mẫu và tri thức quan trọng từ khối lượng dữ liệu lớn.

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

Phân tích mẫu/dữ liệu…… b 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.

▪ 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 được nghiên cứu từ góc độ các hệ thống dữ liệu và kho dữ liệu, nhằm hiểu rõ hơn về cách thức khai thác và xử lý thông tin Nghiên cứu này tập trung vào việc tối ưu hóa quy trình tìm kiếm và phân tích dữ liệu để rút ra những kiến thức giá trị Việc áp dụng các công nghệ hiện đại trong quản lý dữ liệu giúp cải thiện hiệu quả khám phá tri thức, từ đó nâng cao khả năng ra quyết định trong nhiều lĩnh vực khác nhau.

Hình 3.1: Quá trình khai phá tri thức.

Data preparation involves several key processes, including data cleaning to ensure accuracy, data integration for combining multiple sources, data selection to choose relevant information, and data transformation to convert data into a suitable format for analysis.

Khai thác dữ liệu là quá trình xác định nhiệm vụ và lựa chọn các kỹ thuật phù hợp để thu thập thông tin, mang lại nguồn tri thức thô Đánh giá kết quả khai thác được thực hiện dựa trên một số tiêu chí, nhằm kiểm tra và lọc nguồn tri thức đã thu thập.

Quá trình khai thác tri thức không chỉ diễn ra theo trình tự tuyến tính mà còn là một chu trình lặp lại, cho phép quay trở lại các bước trước đó Ứng dụng của khai phá dữ liệu rất đa dạng và quan trọng trong việc phân tích thông tin và ra quyết định.

Kinh tế đóng vai trò quan trọng trong các lĩnh vực như kinh doanh, tài chính, tiếp thị, bảo hiểm và ngân hàng, cung cấp các báo cáo thông tin chi tiết và phân tích rủi ro nhằm xây dựng chiến lược hiệu quả Đồng thời, việc phân loại khách hàng giúp xác định thị trường mục tiêu Trong khi đó, khoa học như thiên văn học hỗ trợ dự đoán quỹ đạo của các thiên thể, còn công nghệ sinh học giúp phát hiện gen mới và phát triển giống cây con ưu việt.

Y tế: ứng dụng trong việc chẩn đoán tình trạng bệnh, biểu hiện bệnh, d Các kỹ thuật khai phá

Phân lớp: tìm các đặc trưng của lớp các đối tượng và sử dụng để phân lớp dữ liệu mới.

Dự đoán: Dự đoán dữ liệu tương lai dựa trên dữ liệu quá khứ

Mẫu tuần tự: Khám phá các mẫu tín hiệu phổ biến nhất từ dữ liệu các sự kiện

Gom cụm: Xác định các cụm tiềm ẩn trong các tập đối tượng chưa được xếp lớp.

Luật kết hợp: Tìm các mẫu phổ biến từ dữ liệu và mối quan hệ của các đối tượng dữ liệu.

17 Nhà kho - OLAP: Xác định trật tự dữ liệu, cấu trúc lưu trữ phù hợp với tấc vụ khai phá.

Phân lớp dữ liệu và thuật toán decision tree

Phân lớp dữ liệu là quá trình học có giám sát nhằm xây dựng mô hình dự đoán xu hướng cho dữ liệu mới từ một tập dữ liệu đầu vào Tập dữ liệu này bao gồm các mẫu, mỗi mẫu chứa các thuộc tính mô tả đối tượng và một thuộc tính nhãn phân lớp giá trị của nó, được biểu diễn dưới dạng (x,y) với (x1,x2,…,xn, y).

- x là biến độc lập (Independent variable) mô tả các thuộc tính của một đối tượng.

Biến phụ thuộc y là yếu tố cần được nghiên cứu và phân loại, thường được gọi là thuộc tính nhãn Mục tiêu là xây dựng một mô hình có khả năng phân loại chính xác cho tập dữ liệu đầu vào.

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.

- 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:

Để đảm bảo hiệu quả trong quá trình kiểm thử, cần xác định tập dữ liệu kiểm thử với các mẫu đã được gán nhãn y Quan trọng là dữ liệu kiểm thử và dữ liệu huấn luyện phải khác nhau nhằm 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ể:

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

Giá trị qua bộ phận lớp

Lớp C Thuộc lớp C Không thuộc lớp C

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):𝑇𝑃

𝜌 𝑇𝑃 𝐹𝑃 + Chỉ số Recall (Độ hồi tưởng):

𝜌 + 𝜋Chỉ số Accuracy (độ đo chính xác):

𝑇𝑃 + 𝑇𝑁 𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 𝑇𝑃 𝐹𝑃 𝑇𝑁 𝐹𝑁 + + + Chỉ số Error Rate (Tỷ lệ lỗi):

Phân lớp dữ liệu với cây quyết định (decision tree)

Cây quyết định (Decision Tree) là một cấu trúc phân cấp được sử dụng để phân loại các đối tượng dựa trên một chuỗi các quy tắc Các thuộc tính của đối tượng có thể có nhiều kiểu dữ liệu khác nhau như Nhị phân, Định danh, Thứ tự và Số lượng, nhưng thuộc tính phân lớp cần phải có kiểu dữ liệu là Nhị phân hoặc Thứ tự.

Cây quyết định là một cấu trúc giúp người dùng dự đoán nhãn cho một đối tượng mới dựa trên các thuộc tính của nó.

- Nút gốc (root node): là nút không có liên kết đến nhưng lại có nhiều liên kết đi.

- Các nút trong (Internal node): mỗi nút có một liên kết đến và nhiều liên kết đi.

Nút lá trong cây quyết định là những nút không có liên kết gửi đi, mà chỉ chứa các nhãn dữ liệu Mỗi nút lá đại diện cho một giá trị cụ thể và được liên kết với một nhãn lớp, giúp phân loại thông tin trong quá trình ra quyết định.

Hình 3.3: Cấu trúc cây quyết định

Thuật toán có khả năng xây dựng nhiều cây quyết định khác nhau từ một tập dữ liệu cụ thể, với độ chính xác dự báo biến đổi giữa các cây Việc xác định cây tối ưu đòi hỏi tính toán phức tạp do số lượng cây con tăng theo cấp số nhân trong không gian tìm kiếm Mặc dù có những thuật toán hiệu quả đã được phát triển để tạo ra cây quyết định với độ chính xác hợp lý, nhưng thường không đạt mức tối ưu trong khoảng thời gian hợp lý Các thuật toán này thường áp dụng chiến lược tham lam để phát triển cây quyết định theo phương pháp Top-Down.

Thuật toán của Hunt là một trong những phương pháp sớm nhất trong việc phát triển cây quyết định, đóng vai trò nền tảng cho nhiều bộ phân lớp hiện tại như ID3, C4.5 và CART Khung chương trình này cho phép xây dựng cây quyết định dựa trên bộ dữ liệu {D}.

Cây quyết định có nhiều ưu điểm như thời gian thực thi nhanh, kết quả chất lượng và dễ hiểu, dễ giải thích Tuy nhiên, nhược điểm lớn nhất của chúng là khả năng dừng phân tách dữ liệu khi gặp các điểm tới hạn cục bộ, dẫn đến kết quả không còn chính xác.

Áp dụng thuật toán decision tree để khai phá bộ dữ liệu

Hình 3.4: Khai báo thư viện cho thuật toán decision tree

Xác định thuộc tính mô tả và thuộc tính dự đoán

Hình 3.5: Xác định biến mô tả và biến mục tiêu

Hình 3.6: Hình ảnh thể hiện biến mô tả và biến mục tiêu

Chia bộ dữ liệu thành hai tập train và test theo tỷ lệ 80% train, 20% test

Chia tập dữ liệu thành tập huấn luyện (train set) và tập kiểm thử (test set) là một phương pháp quan trọng trong Machine Learning, đặc biệt khi sử dụng mô hình Decision Tree Phương pháp này giúp đánh giá chính xác hiệu suất của mô hình trong môi trường thực tế và phát hiện hiện tượng Overfitting và Underfitting bằng cách so sánh hiệu suất trên hai tập dữ liệu Nếu mô hình chỉ được đào tạo và đánh giá trên cùng một tập dữ liệu, có thể xảy ra hiện tượng quá mức phù hợp, dẫn đến việc mô hình không thể tổng quát hóa cho dữ liệu mới Do đó, việc chia tập dữ liệu giúp người khai phá tránh rò rỉ dữ liệu và cung cấp thông tin đáng tin cậy hơn về hiệu suất của mô hình.

Hình 3.7: Chia bộ dữ liệu thành tập train và test Huấn luyện mô hình.

Sau khi chia bộ dữ liệu thành tập huấn luyện và tập kiểm thử, bước huấn luyện mô hình trên tập huấn luyện trở nên quan trọng Điều này giúp mô hình học từ dữ liệu và phát hiện các quy luật, mối quan hệ trong dữ liệu.

Hình 3.8: Huấn luyện mô hình và biểu diễn dưới dạng cây quyết định Để huấn luyện mô hình, đầu tiên là phải khởi tạo một đối tượng

“DecisionTreeClassifier” với các tham số:

▪ Criterion = “entropy’: phương pháp đánh giá chất lượng của nút cây xây dựng dùng để đánh giá tốt/bất lợi của nút.

▪ Random_state0: Đảm bảo có thể tái tạo kết quả.

▪ Max_depth=3: số tầng tối đa của cây quyết định, độ sâu tối đa là 3

▪ Min_samples_leaf=5: số mẫu tối thiểu yêu cầu để tạo một nút lá.

Sau khi đã khởi tạo đối tượng ta thực hiện huấn luyện mô hình bằng cách sử dụng dữ liệu để fit mô hình.

Trình bày kết quả dưới dạng cây quyết định

Hình 3.9: Kết quả cây phân lớp

Để hiểu rõ hơn về cây đã phân lớp, chúng ta sẽ sử dụng đồ thị graphviz Đồ thị này sẽ cung cấp hình ảnh trực quan về từng nút và nhánh của cây, giúp người đọc dễ dàng nắm bắt quyết định của mô hình.

Hình 3.11: Biểu diễn cây quyết định với đồ thị Graphviz

Hình 3.12: Hình ảnh cây quyết định với đồ thị Graphviz

Dựa vào cây graphviz trên, ta có những nhận xét sau:

Cây quyết định được hình thành qua một quá trình lặp đi lặp lại, ngừng lại khi tất cả các thuộc tính đã được phân loại vào một lớp cụ thể Quá trình xây dựng cây diễn ra theo phương pháp từ trên xuống dưới.

Cây graphviz với các màu sắc đậm nhạt khác nhau giúp người đọc dễ dàng phân biệt các phần và thuộc tính quan trọng, từ đó ảnh hưởng đến việc giải quyết bài toán trong cây quyết định.

Entropy là một chỉ số quan trọng trong các mô hình học máy và thuật toán, dùng để đo lường mức độ không chắc chắn hoặc "hỗn loạn" trong dữ liệu Khi entropy cao, sự không chắc chắn cũng tăng lên Tại nút gốc, entropy đạt giá trị 0.896, và khi dữ liệu được phân chia ra các nút lá, giá trị entropy giảm dần, cho thấy sự gia tăng độ chắc chắn.

Lead time là yếu tố quan trọng trong việc dự đoán Nếu giá trị Lead time nhỏ hơn hoặc bằng 151.5, cây quyết định sẽ rẽ nhánh sang trái với nút lá có thuộc tính "Special request" nhỏ hơn hoặc bằng 0.5 Ngược lại, nếu điều kiện này không đúng, cây sẽ rẽ nhánh sang phải với nút lá khác.

Mỗi nút lá trong mô hình dự đoán thể hiện một kết quả cuối cùng dựa trên các điều kiện đã được kiểm tra Chẳng hạn, nếu bạn đi qua nhánh trái và kết thúc tại nút lá "Có khả năng không hủy đặt phòng", điều này cho thấy bạn có thời gian ngắn giữa lúc đặt phòng và nhận phòng, ít yêu cầu đặc biệt, và thường là khách hàng đặt phòng offline Điều này giúp khách sạn yên tâm hơn trong việc cho thuê phòng mà không cần lo lắng về khả năng hủy đặt phòng.

Hiệu suất của mô hình

Khi đã có cây quyết định, ta cần phải kiểm thử mô hình và xác định ma trận nhầm lẫn để đánh giá được hiệu quả mô hình.

Hình 3.13: Kiểm thử mô hình và xác định ma trận nhầm lẫn

Hình 3.14: Đồ thị ma trận nhầm lẫn Nhận xét:

True Positive (TP): 1493 (Số lượng mẫu thực thế là positive và mô hình dự đoán đúng là positive).

True Negative (TN): 3758 (Số lượng mẫu thực tế là negative và mô hình dự đoán đúng là negative).

False Positive (FP): 813 (Số lượng mẫu thực tế là negative nhưng mô hình dự đoán đúng là positive - sai lầm loại I).

False Negative (FN): 599 (Số lượng mẫu thực tế là positive nhưng mô hình dự đoán là negative - sai lầm loại II). Độ chính xác của mô hình

Hình 3.15: Độ chính xác trên tập test

Hình 3.16: Thông số đánh giá hiệu suất trên tập test Nhận xét:

Precision được tính bằng tỷ lệ giữa số lượng dự đoán đúng positive (True Positive) và tổng số dự đoán positive (True Positive + False Positive).

Trong bối cảnh của bài toán dự đoán khả năng hủy đặt phòng, độ chính xác (precision) cho lớp 0 (hủy đặt) là 65%, và cho lớp 1 (không hủy đặt) là 86%.

Precision giúp đánh giá xem mô hình có độ chính xác cao khi dự đoán positive hay không.

Recall được xác định bằng tỷ lệ giữa số lượng dự đoán đúng dương tính (True Positive) và tổng số thực tế dương tính (True Positive + False Negative) Trong bài toán này, độ nhạy (recall) cho lớp 0 đạt 71%, trong khi lớp 1 đạt 82%.

Recall đo lường khả năng của mô hình trong việc bắt những mẫu positive thực sự.

F1-score là một số liệu tổ hợp của precision và recall, được tính theo công thức 2 * (precision * recall) / (precision + recall).

F1-score cung cấp một cân nhắc giữa độ chính xác và độ nhạy.

Trong bối cảnh của bài toán, F1-score cho lớp 0 là 0.68, và cho lớp 1 là 0.84.

Support là số lượng mẫu thực tế thuộc mỗi lớp.

Trong bối cảnh của bài toán, có 2092 mẫu thuộc lớp 0 và 4571 mẫu thuộc lớp 1.

- Accuracy(độ chính xác tổng thể):

Accuracy được tính bằng tỷ lệ giữa số lượng dự đoán đúng và tổng số lượng mẫu.

Trong bối cảnh của bài toán, độ chính xác tổng thể là 79%.

Biểu đồ cột thể hiện sự quan trọng của các đặc trưng trong decision tree

Hình 3.17: Vẽ biểu đồ cột thể hiện độ quan trọng của các đặc

Hình 3.18: Biểu đồ cột thể hiện độ quan trọng của các đặc trưng

Từ biểu đồ trên, các thuộc tính: “lead time, market segment type, special requests, average price, month” là các giá trị sẽ ảnh hưởng tới biến mục tiêu

“booking status” Đặc biệt là thuộc tính “lead time” sẽ ảnh hưởng tới biến mục tiêu lớn nhất theo như đồ thị thể hiện.

Sử dụng mô hình dự đoán khả năng hủy đặt phòng khách sạn của khách hàng.

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 Kết luận

Sau khi áp dụng mô hình, chúng tôi thu được ma trận kết quả với độ chính xác đạt 79% khi sử dụng 33,345 đối tượng khách hàng đặt phòng khách sạn từ tập dữ liệu kiểm tra Kết quả này được trình bày chi tiết trong bảng dưới đây.

Hủy đặt phòng (Dự đoán)

Không hủy đặt phòng (Dự đoán)

Hủy đặt phòng (Thực tế) 1493 599

Không hủy đặt phòng (Thực tế) 813 3758

Bảng 2: Bảng ma trận nhầm lẫn

Với 1493 đối tượng khách hàng thực tế hủy đặt phòng khách sạn và khi cho chạy qua mô hình thì cho kết quả là hủy đặt phòng.

Với 3758 đối tượng khách hàng thực tế không hủy đặt phòng khách sạn và khi cho chạy qua mô hình thì cho kết quả là không hủy đặt phòng.

Với 813 đối tượng khách hàng thực tế không hủy đặt phòng và khi cho chạy qua mô hình thì cho kết quả là hủy đặt phòng.

Với 599 đối tượng khách hàng thực tế hủy đặt phòng và khi cho chạy qua mô hình thì cho kết quả là không hủy đặt phòng.

Đánh giá hiệu suất

4.1 Đánh giá hiệu suất khi thay đổi các tham số

Thay đổi criterion = "entropy", max_depth = 10, min_samples_leaf = 5

Hình 3.20: Thay đổi tham số lần 1 và huấn luyện lại mô hình

Hình 3.21: Kết quả cây phân lớp sau khi thay đổi tham số lần 1

Hình 3.22: Cây quyết định sau khi thay đổi tham số lần 1

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

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

Sau khi thay đổi tham số thì ta thấy các giá trị trong ma trận nhầm lẫn đã có sự thay đổi rõ rệt.

True Positive (TP) là thuật ngữ dùng để chỉ trường hợp trong đó mô hình dự đoán chính xác rằng 1604 khách hàng thực tế đã hủy đặt phòng khách sạn Khi áp dụng mô hình này, kết quả cho thấy những khách hàng này thực sự đã hủy đặt phòng.

True Negative (TN) đề cập đến 4.188 khách hàng thực tế không hủy đặt phòng khách sạn, và khi áp dụng mô hình phân tích, kết quả cho thấy họ cũng không hủy đặt phòng.

False Positive (FP): Với 383 đối tượng khách hàng thực tế không hủy đặt phòng và khi cho chạy qua mô hình thì cho kết quả là hủy đặt phòng.

False Negative(FN): Với 488 đối tượng khách hàng thực tế hủy đặt phòng và khi cho chạy qua mô hình thì cho kết quả là không hủy đặt phòng.

Hình 3.25: Độ chính xác của tập test sau khi thay đổi tham số lần 1

Hình 3.26: Thông số của tập test sau khi thay đổi tham số lần 1

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

Hình 3.28: Biểu đồ cột sau khi thay đổi tham số lần 1

Sử dụng 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 thông số lần 1.

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

Khi điều chỉnh tham số max_depth của cây quyết định lên 10, mô hình đạt hiệu suất và độ chính xác 86%, cao hơn đáng kể so với việc sử dụng max_depth là 3 và min_samples_leaf là 5.

Khi tăng các thông số, mô hình cây quyết định cho thấy sự cải thiện hiệu suất rõ rệt trên cả tập huấn luyện và tập kiểm tra so với mô hình ban đầu Đồng thời, độ quan trọng của các đặc trưng trong mô hình cũng có sự thay đổi đáng kể, với việc xuất hiện thêm nhiều thuộc tính ảnh hưởng đến biến mục tiêu, mặc dù mức độ ảnh hưởng của chúng vẫn còn khá nhỏ.

Thay đổi criterion = "entropy", max_depth = 15, min_samples_leaf = 5.

Hình 3.30: Thay đổi tham số lần 2 và huấn luyện lại mô hình

Hình 3.31: Vẽ lại cây quyết định sau khi thay đổi tham số lần 2

Hình 3.32: Cây quyết định sau khi thay đổi tham số lần 2

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

Hình 3.34: Ma trận nhầm lẫn sau khi thay đổi tham số lần 2

Sau khi thực hiện thay đổi tham số lần thứ hai, chúng ta nhận thấy rằng các giá trị của ma trận nhầm lẫn không có sự biến động đáng kể so với lần đầu tiên Các giá trị của hai lần thay đổi này gần như tương đồng.

Hình 3.35: Độ chính xác của tập test sau khi thay đổi tham số lần 2

Hình 3.36: Thông số của tập test sau khi thay đổi tham số lần 2

Hình 3.37: Vẽ lại biểu đồ cột sau khi thay đổi thông số lần 2

- 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 2Nhận xét:

Sau khi thực hiện thay đổi tham số lần thứ hai, độ chính xác của mô hình không có sự thay đổi đáng kể so với lần đầu Mức độ quan trọng của các đặc trưng trong mô hình cũng ổn định, trong đó "lead time" là yếu tố có ảnh hưởng lớn nhất đến biến mục tiêu "booking status".

Đánh giá hiệu suất khi thay đổi thuật toán

Hình 3.39: Khai báo thư viện randomforest

- Thực thi và kiểm thử mô hình

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

- Xác định ma trận nhầm lẫn

Hình 3.41: Xác định ma trận nhầm lẫn sau khi thay đổi thuật toán

Hình 3.42: Đồ thị ma trận nhầm lẫn sau khi thay đổi thuật toán

- Xác định độ chính xác và hiệu suất của mô hình

Hình 3.43: Độ chính xác của tập test sau khi thay đổi thuật toán

- Xác định thông số của tập test

Khi thay đổi thuật toán đánh giá hiệu suất, độ chính xác đạt được là 89%, cao hơn so với thuật toán cây quyết định.

Đánh giá chung

Khi thay đổi tham số hai lần, độ chính xác về khả năng khách hàng không hủy đặt phòng khách sạn đạt 90%, trong khi tỷ lệ khả năng hủy đặt phòng là 80% Độ nhạy về khả năng không hủy đặt phòng cũng rất cao, vượt quá 90%, trong khi độ nhạy về khả năng hủy gần 80% không có sự biến động lớn so với trước khi thay đổi tham số Tổng thể, độ chính xác khi áp dụng thuật toán decision tree đạt 87%, cho thấy hiệu quả cao của phương pháp này.

Khi thay đổi thuật toán, độ chính xác về tỷ lệ khả năng khách hàng không hủy đặt phòng khách sạn đạt 90%, tương đương với thuật toán decision tree Tuy nhiên, tỷ lệ khả năng khách hàng hủy đặt phòng là 86%, cao hơn so với khi sử dụng thuật toán decision tree Độ nhạy về khả năng khách hàng không hủy đặt phòng rất cao, lên đến 94%, trong khi độ nhạy về khả năng khách hàng hủy đặt phòng vẫn duy trì ở mức hơn 70%, gần như không có biến động lớn so với thuật toán decision tree Tổng thể, độ chính xác khi áp dụng thuật toán random forest là cao nhất.

Thay đổi tham số đã cải thiện đáng kể độ chính xác và độ nhạy của mô hình, với 89% kết quả tích cực Việc điều chỉnh thuật toán không chỉ nâng cao khả năng dự đoán khách hàng hủy đặt phòng mà còn duy trì hiệu suất đối với khách hàng không hủy Cả hai thay đổi này đều mang lại những kết quả khả quan.

ĐÁNH GIÁ VÀ ĐỀ XUẤT ỨNG DỤNG

Nhận xét

Trong quá trình nghiên cứu bộ dữ liệu “Booking” và triển khai thuật toán phân lớp với cây quyết định Decision Tree, chúng ta nhận thấy những điểm quan trọng liên quan đến hiệu quả của mô hình và khả năng phân loại dữ liệu.

Hiệu suất của thuật toán: Thuật toán phân lớp với cây quyết định Decision

Mô hình học máy đã chứng minh khả năng dự đoán và phân loại khách hàng có khả năng hủy hoặc không hủy đặt phòng với độ chính xác cao Việc phân tích các yếu tố ảnh hưởng đến quyết định hủy đặt của khách hàng đã mang lại những kết quả ấn tượng.

Yếu tố quyết định việc khách hàng hủy hoặc không hủy đặt phòng phụ thuộc vào nhiều yếu tố trong quá trình mô hình hóa và thực thi thuật toán với các tham số khác nhau.

Thời gian giao hàng (lead time) là yếu tố quyết định hàng đầu trong sự lựa chọn của khách hàng, bên cạnh đó còn có nhiều yếu tố khác cũng ảnh hưởng không kém Thông tin này không chỉ cung cấp cái nhìn sâu sắc cho các quyết định chiến lược mà còn là nền tảng quan trọng cho kế hoạch giữ chân khách hàng và giảm thiểu tình trạng hủy đặt phòng tại khách sạn Việc điều chỉnh các tham số như "max_depth" trong mô hình cũng mang lại cả ưu điểm và hạn chế cần được xem xét kỹ lưỡng.

Trong xây dựng cây quyết định, tham số "min_sample_leaf" đóng vai trò quan trọng, khi điều chỉnh nó sẽ cải thiện độ chính xác trên cả tập test và tập train Sự thay đổi này dẫn đến hiệu suất mô hình tăng lên rõ rệt Tuy nhiên, việc điều chỉnh không hợp lý có thể gây ra vấn đề cho mô hình.

Việc sử dụng các tham số "max_depth" và "min_sample_leaf" không hợp lý có thể dẫn đến hiện tượng overfitting, ảnh hưởng đến độ chính xác trong việc đánh giá hiệu suất của mô hình Như đã phân tích, cây quyết định dễ bị tác động bởi dữ liệu ngoại lai Do đó, khi triển khai thuật toán, cần phải xử lý các giá trị ngoại lai bằng cách loại bỏ chúng và thiết lập các ràng buộc như độ sâu tối đa và số lượng mẫu tối thiểu trong mỗi lá để tránh làm cho mô hình trở nên quá phức tạp.

Khi thay đổi các thuật toán, hiệu suất dự đoán khả năng hủy hoặc không hủy đặt phòng khách sạn có sự khác biệt rõ rệt Cụ thể, thuật toán Random Forest, liên quan chặt chẽ với Decision Tree, có độ phức tạp cao hơn và giảm ảnh hưởng của dữ liệu ngoại lai nhờ vào việc sử dụng nhiều cây và kết hợp dự đoán từ chúng Random Forest tự giảm overfitting tốt hơn so với cây quyết định đơn lẻ, giúp mô hình tổng quát hóa hiệu quả hơn cho dữ liệu mới Khi đánh giá hiệu suất, Random Forest cho kết quả cao hơn so với Decision Tree.

Dựa trên kết quả nghiên cứu, các khách sạn có thể phát triển và tối ưu hóa các chiến lược nhằm giữ chân khách hàng, đồng thời giảm thiểu hành vi hủy đặt phòng Bằng cách hiểu rõ các yếu tố ảnh hưởng đến quyết định của khách hàng, khách sạn có thể nhanh chóng thích ứng và cung cấp trải nghiệm tốt nhất cho khách hàng.

Để tăng doanh thu và lợi nhuận trong kinh doanh khách sạn, doanh nghiệp cần xây dựng chiến lược kinh doanh phù hợp với nhu cầu khách hàng, điều chỉnh mức giá hợp lý và nâng cao dịch vụ chăm sóc khách hàng Việc theo dõi số liệu về lượng khách đặt phòng, thời gian và yêu cầu khi đặt phòng là rất quan trọng Doanh nghiệp cần chăm sóc và giải quyết vấn đề của khách hàng kịp thời, đồng thời triển khai các chiến lược marketing để quảng bá hình ảnh và dịch vụ khách hàng Đối với những khách hàng có tỷ lệ hủy đặt phòng cao, việc liên hệ để giải đáp thắc mắc và tìm ra giải pháp hợp lý là cần thiết.

Việc áp dụng các chiến lược kinh doanh hiệu quả và cung cấp dịch vụ chăm sóc khách hàng xuất sắc không chỉ giúp tạo ấn tượng tích cực với khách hàng mà còn mang lại nhiều lợi ích cho doanh nghiệp, bao gồm tăng cường sự trung thành của khách hàng và nâng cao uy tín thương hiệu.

Giảm tỷ lệ huỷ đặt phòng giúp doanh nghiệp tăng doanh thu bằng cách bán được nhiều phòng hơn cho khách hàng tiềm năng Hơn nữa, việc nhận được danh sách hủy đặt phòng sớm cho phép doanh nghiệp linh hoạt hơn trong việc điều chỉnh kế hoạch và đảm bảo thu nhập từ các phòng đã đặt trước.

Để tăng cường sự trung thành của khách hàng, doanh nghiệp cần đảm bảo rằng khách hàng không phải lo lắng về việc huỷ đặt phòng, từ đó nâng cao sự hài lòng với trải nghiệm của họ Khi doanh nghiệp cam kết cung cấp dịch vụ tốt hơn và tạo ra môi trường thuận lợi, điều này sẽ xây dựng lòng tin nơi khách hàng, khuyến khích họ quay lại đặt phòng tại khách sạn trong tương lai.

Giảm chi phí là một lợi ích quan trọng khi tỷ lệ huỷ đặt phòng giảm Khi khách hàng không huỷ bỏ đặt phòng, doanh nghiệp sẽ tiết kiệm được chi phí chuẩn bị phòng và dịch vụ liên quan Điều này giúp doanh nghiệp giảm bớt gánh nặng tài chính và tối ưu hoá lợi nhuận, từ đó tạo ra cơ hội phát triển bền vững hơn.

Cải thiện hình ảnh doanh nghiệp là điều quan trọng, đặc biệt khi tỷ lệ huỷ đặt phòng thấp Khách hàng sẽ cảm nhận được sự chuyên nghiệp và hiệu quả trong quản lý đặt phòng và dịch vụ, từ đó nâng cao hình ảnh doanh nghiệp trong mắt họ Việc này không chỉ giúp thu hút khách hàng mới mà còn tăng doanh thu trong tương lai.

Ngày đăng: 10/02/2025, 15:57