本项目基于公开数据集 Hotel Booking Demand(119,390 条原始记录,覆盖 2015–2017 年葡萄牙 City Hotel 与 Resort Hotel 两类酒店的预订信息), 完整走通 数据清洗 → 探索性分析(EDA)→ 特征工程 → 机器学习建模 → 模型解释 → 可视化交付 的数据分析标准链路。
核心目标:① 洞察客源结构、价格规律与预订取消模式;② 构建高精度取消预测模型,为酒店运营提供决策支持。 项目附带一套深色科技风 Streamlit 数据大屏,支持交互式探索与单条预订取消概率预测。
KPI 大屏卡(总预订量 / 取消数 / 提前天数 / 均价)、两类酒店预订量对比、预订渠道占比、缺失值检查与数据预览。
客源国分布(饼图 + 世界地图)、房价分析(房型 / 月度趋势 / 渠道×房型)、入住时长、月度客流、取消率、相关性 Top10。
决策树 / 随机森林 / 逻辑回归(4 折交叉验证),混淆矩阵、特征重要性,单条预订取消概率预测(仪表盘 + 风险等级)。
| 模型 | 准确率 | 说明 |
|---|---|---|
| 决策树 Decision Tree | 82.46% | 基线模型,可解释性强 |
| 随机森林 Random Forest | 86.64% | 集成提升,默认参数 |
| 逻辑回归 Logistic Regression | 79.37% | 线性基线(StandardScaler 缩放) |
| 增强随机森林 Enhanced RF ★ | 86.81% | 调参后最佳(n_estimators=160, max_features=0.4) |
# 1. 克隆仓库 git clone https://github.com/yohoten/portugal-hotel-booking-analysis.git cd portugal-hotel-booking-analysis # 2. 安装依赖 pip install -r requirements.txt # 3. 启动 Streamlit 数据大屏 streamlit run streamlit_app.py # 浏览器打开 http://localhost:8501 # 4. 或使用 Jupyter Notebook 复现分析 jupyter notebook 酒店预订分析预测.ipynb
portugal-hotel-booking-analysis/ ├── hotel_bookings.csv # 酒店预订数据(119,390 条原始) ├── 酒店预订分析预测.ipynb # 完整分析 Notebook(EDA + 建模) ├── streamlit_app.py # Streamlit 数据大屏 ├── requirements.txt # Python 依赖 ├── README.md # 项目说明 └── index.html # 本介绍页