Trong bối cảnh ngành khách sạn chịu ảnh hưởng mạnh bởi hành vi đặt phòng và tỷ lệ hủy booking, việc khai phá dữ liệu lịch sử đặt phòng giúp doanh nghiệp:
- Dự đoán rủi ro hủy phòng
- Phân khúc khách hàng
- Phát hiện các mô hình đặt phòng phổ biến
- Phân tích xu hướng theo thời gian
Đề tài này áp dụng quy trình Khai phá dữ liệu (Data Mining) để khám phá tri thức tiềm ẩn từ Hotel Booking Demand dataset
- Áp dụng toàn bộ pipeline Khai phá dữ liệu:
Tiền xử lý → Phân tích mô tả → Mô hình hóa → Đánh giá → Insight - Thực nghiệm và so sánh nhiều thuật toán khai phá dữ liệu
- Rút ra insight có ý nghĩa cho bài toán kinh doanh khách sạn
- Có thể dự đoán khả năng hủy booking của khách hàng không?
- Có thể phân khúc khách hàng dựa trên hành vi đặt phòng không?
- Những luật kết hợp nào thường xuất hiện trong dữ liệu booking?
- Xu hướng đặt phòng và hủy phòng thay đổi như thế nào theo thời gian?
- Tên: Hotel Booking Demand
- Nguồn: Public dataset (Kaggle – dữ liệu nghiên cứu học thuật)
- Số dòng: ~119,390
- Số cột: 32
- Đối tượng: Booking của City Hotel và Resort Hotel
is_canceled: Trạng thái hủy booking (target)lead_time: Số ngày từ lúc đặt đến ngày nhận phòngadr: Giá trung bình mỗi ngàyarrival_date_*: Thông tin thời gianadults,children,stays_in_weekend_nights
- Xử lý missing values (
children,agent,company) - Loại bỏ booking không hợp lệ
- Encode biến categorical
- Chuẩn hóa dữ liệu cho các mô hình cần thiết
- Thống kê cơ bản
- Histogram, boxplot, scatter plot
- Heatmap tương quan
- Phân tích tỷ lệ hủy booking
Mục tiêu: Dự đoán khách có hủy booking hay không
Thuật toán:
- Logistic Regression
- Decision Tree
- Random Forest
Đánh giá:
- Accuracy
- Precision / Recall
- F1-score
- Confusion Matrix
Mục tiêu: Phân khúc khách hàng đặt phòng
Thuật toán:
- K-Means
Đánh giá:
- Elbow Method
- Silhouette Score
Mục tiêu: Phát hiện các mẫu hành vi đặt phòng phổ biến
Thuật toán:
- Apriori
Độ đo:
- Support
- Confidence
- Lift
Mục tiêu: Phân tích xu hướng booking theo thời gian
- Số booking theo tháng
- Tỷ lệ hủy booking theo thời gian
- Moving Average & Decomposition
- Lead time cao có tương quan mạnh với khả năng hủy booking
- City Hotel có tỷ lệ hủy cao hơn Resort Hotel
- Có tồn tại một luật liên quan giữa dịch vụ và loại phòng
- Tồn tại các nhóm khách hàng rõ ràng dựa trên hành vi và thời gian lưu trú
- Booking có tính mùa vụ theo tháng
- Dự đoán xu hướng đặt phòng có thẻ tăng trong ngắn hạn
hotel-booking-demand-data-mining/
│
├── README.md
│
├── configs/
│ ├── association.yaml
│ ├── base.yaml
│ ├── classification.yaml # Định nghĩa các cáu trúc
│ ├── clustering.yaml
│ ├── timeseries.yaml
│ └── figures/
|
├── data/
│ ├── raw/
│ │ └── hotel_bookings.csv
│ └── processed/
│ ├── hotel_bookings_processed.csv # Tiền xử lý sinh dặc trưng mới
│ ├── hotel_booking_transactions.csv # Bộ dữ liệu sinh luật
| ├── hotel_booking_timeseries_train.csv # Bộ dữ liệu huấn luyện chuổi thời gian
| ├── hotel_booking_classification_train_target.csv # Nhãn dữ liệu phân loại train
| ├── hotel_booking_classification_test_target.csv # Nhãn dữ liệu phân loại test
│ ├── hotel_booking_classification_test.csv # Tập test để dánh giá phân loại
| ├── hotel_booking_clustering.csv # Phân cụm
| ├── hotel_booking_timeseries_test.csv # Tạp test chuỗi thời gian
│ └── hotel_booking_classification.csv # Bộ dữ liệu sử dụng rieng cho phân loại
│
├── notebooks/
│ ├── 01_data_understanding.ipynb
│ ├── 02_preprocessing.ipynb
│ ├── 03_eda.ipynb
│ ├── 04_classification.ipynb
│ ├── 05_clustering.ipynb
│ ├── 06_association_rules.ipynb
│ └── 07_time_series.ipynb
│
├── reports/
│ ├── BaoCao.pdf
│ ├── Slides.pptx
| ├──Poster.pdf
│ └── figures/
|
├── results/
| ├── association_rule_all.csv # Tất cả luật
├ ├── association_rule_focus_any.csv # Tập trung từng item
| ├── association_rule_focus_both.csv # Hai item
├ ├── association_rule_service_combo.csv # Combo dịch vụ và loại phòng
| ├── association_itemsets.csv # Tần xuất các item
│ └── figures/
|
├── requirements.txt
└── .gitignore
- Python 3.12
- pandas, numpy
- matplotlib, seaborn
- scikit-learn
- mlxtend
- statsmodels
- Dataset không phản ánh dữ liệu thời gian thực
- Chưa tối ưu hyperparameter chuyên sâu
- Có thể mở rộng:
- Ứng dụng Streamlit
- Explainable AI (SHAP)
- Đề tài phục vụ học phần Khai phá dữ liệu
- Sản phẩm là bài làm học thuật gốc
- Các tài liệu, thư viện được trích dẫn rõ ràng
- Antonio, N., Almeida, A., & Nunes, L. (2019). Hotel booking demand datasets. Data in Brief.
- Kaggle: Hotel Booking Demand Dataset