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, 代码示例, 商业智能, 回归分析, 房地产数据, 探索性数据分析, 收入预测, 数据分析, 数据泄漏, 数据清洗, 数据科学, 旅游分析, 机器学习, 机器学习管道, 模型评估, 欧洲市场, 特征工程, 资源验证, 逆向工具, 预测建模