abdallahh07/airbnb-revenue-prediction
GitHub: abdallahh07/airbnb-revenue-prediction
一个利用机器学习预测Airbnb房源年度收入的项目,通过特征工程和数据泄露检测提升模型可靠性。
Stars: 0 | Forks: 0
# Airbnb 收入预测 🏠
## 概述
一个基于房源特征(如位置、房产面积、评分和设施)预测年度Airbnb房源收入的机器学习项目。数据集包含90,000多个欧洲Airbnb房源。
## 数据集
从Kaggle下载:https://www.kaggle.com/datasets/jasonairroi/airbnb-market-data-europe
## Kaggle 笔记本
Kaggle Notebook:[https://www.kaggle.com/code/abdallahh07/airbnb-revenue-prediction](https://www.kaggle.com/code/abdallahhashad0/airbnb-revenue-prediction-eda-ml-models)
## 项目结构
1. 数据加载
2. 探索性数据分析 - 历史价格分析
3. 探索性数据分析 - 房源分析
4. 数据清洗与缺失值填充
5. 特征工程
6. 训练集/测试集划分
7. 预处理(OneHotEncoder + ColumnTransformer)
8. 模型训练与评估
9. 模型分析
## 探索性数据分析发现
- **城市排名:** 爱丁堡和帕尔马每套房源产生的收入最高
- **国家排名:** 法国和西班牙在总收入上占主导地位
- **超赞房东平均多赚约60%** 收入
- **整套房源** 产生的收入显著高于私人房间或合住房间
- **收入呈右偏分布** — 大多数房源年收入低于5万美元
- **旺季:** 7月至8月入住率和保留天数最高
## 数据泄露
在开发初期,模型的R2达到了0.99。经调查,这被识别为目标泄露——如ttm_avg_rate、ttm_occupancy和ttm_reserved_days等列在数学上直接推导了收入,因此被移除。移除后的真实R2为0.597。这展示了对机器学习管道中数据完整性的理解。
## 模型结果
| 模型 | R2 | RMSE |
|------------|-------|---------|
| **CatBoost** | **0.597** | **14,424** |
| XGBoost | 0.587 | 14,616 |
| Ridge | 0.281 | 19,273 |
| LinearRegression | 0.199 | 20,343 |
## 为何R2为0.59
收入受房源数据中未捕获的因素影响,如照片质量、房东回复时间、本地活动和竞争情况。在清理特征后达到0.59的R2对于Airbnb收入预测来说是诚实且现实的。
## 特征工程
- **wifi** — 从设施列表中提取
- **Kitchen** — 从设施列表中提取
- **size_score** — 卧室数 + 浴室数 + 床数
- **amenity_count** — 每套房源的设施数量
## 技术栈
- Python、Pandas、NumPy
- Scikit-learn(Pipeline、ColumnTransformer、OneHotEncoder)
- CatBoost、XGBoost
- Matplotlib、Seaborn
## 如何运行
```
pip install -r requirements.txt
python a.py
```
## 我的收获
- 识别并处理真实数据集中的目标泄露
- 使用ColumnTransformer构建规范的机器学习管道
- 系统性地比较多个模型
- 从原始文本列进行特征工程
标签:Airbnb, Apex, CatBoost, Kaggle, Scikit-learn, XGBoost, 代码示例, 商业智能, 回归分析, 房地产数据, 探索性数据分析, 收入预测, 数据分析, 数据泄漏, 数据清洗, 数据科学, 旅游分析, 机器学习, 机器学习管道, 模型评估, 欧洲市场, 特征工程, 资源验证, 逆向工具, 预测建模