Mebourne Short-Term Rental Analytics

Objective

Developed an end-to-end machine learning pipeline to accurately forecast short-term rental prices across Melbourne suburbs. By extracting signals from listing metadata, host behavior, and geographic characteristics, the project provides a data-driven benchmark for evaluating expected rental returns and setting competitive property rates.


tool

Python, Jupyter Notebook, pandas, numpy, matplotlib, seaborn, scikit-learn, CatBoost, XGBoost, Optuna

award

Top 5 Finish / 100+ Competitors

Role

Lead Data Analyst / Machine Learning Engineer

PROJECT OVERVIEW

  • Dataset: Melbourne Airbnb listings with 7,000 training rows and 3,000 test rows.

  • Problem: Predict the listing price using host details, location, property attributes, reviews, availability, and amenities.

  • Scope: Task 1 covered problem understanding and data analysis; Task 2 focused on cleaning, imputation, and feature engineering; Task 3 trained and compared machine learning models for final prediction.

  • Evaluation: Forecast quality was judged by Mean Absolute Error (MAE), which measures average absolute difference between predicted and actual prices

GOAL

  • Build an accurate pricing model for Airbnb listings in Melbourne.

  • Understand which listing, host, and location features drive price.

  • Produce a submission that performs strongly on the Kaggle-style leaderboard.

  • Demonstrate a complete end-to-end analytics workflow from EDA and preprocessing to model tuning and submission.

  • Leaderboard: 5th / 100+ competitors

METHODOLOGY

  1. Problem analysis

  • Defined the forecasting task and stakeholder value for hosts, travelers, Airbnb, and investors.

  • Evaluated MAE as the competition metric and its strengths/weaknesses.

  1. Data cleaning and preprocessing

  • Converted mixed-format numeric fields to numeric values (price, host_response_rate, host_acceptance_rate, bathrooms).

  • Investigated missing data and imputed gaps in both train and test sets.

  • Filled missing free-text fields with placeholder text.

  • Imputed categorical missing values with mode and numeric missing values with mean.

  • Converted review dates to datetime and filled missing review dates by forward fill.

  1. Feature engineering

  • Extracted new verification flags from host_verifications.

  • Generated amenity summary features by grouping amenities into quartile-based buckets.

  • Created binary amenity flags such as has_balcony, has_TV, has_AC.

  • Added room_type_encoded and host_response_time ordinal encodings.

  • Computed geographic feature distance_to_CBD_km.

  • Derived yrs_experience from host_since.

  • Ranked property type categories with prop_main_rank.

  • Created price-tier amenity counts and other engineered numeric indicators.

  1. Encoding

  • Used one-hot encoding for high-cardinality categorical variables after mapping to top categories plus other.

  • Encoded binary flags from t/f strings to 0/1.

  • Dropped raw text and redundant columns after encoding.

  1. Modeling

  • Performed EDA using Spearman correlation and Random Forest feature importance.

  • Selected three models: Random Forest, XGBoost, and CatBoost.

  • Tuned hyperparameters via cross-validation and Optuna for CatBoost.

  • Log-transformed price with log1p(price + 10) to stabilize skew.

  • Compared model performance and selected the best performing model for submission.

Business Insights

  • Price distribution was highly right-skewed, with extreme outliers above $100,000 and many listings clustered below $300.

  • Key price drivers were location, listing size, availability, and property type rather than individual review scores.

  • Location and capacity interactions mattered more than any single predictor, so tree-based models were a strong fit.

  • Categorical encoding, feature engineering, and careful imputation were essential for stable model performance.

  • The tuned CatBoost model achieved the best results and was used for the final Kaggle submission, reaching a leaderboard performance consistent with the notebook’s reported score.

Available For Work

Curious about what we can create together? Let’s bring something extraordinary to life!

hello@framebase.design

Design In Framer

All rights reserved, ©2025

Available For Work

Curious about what we can create together? Let’s bring something extraordinary to life!

hello@framebase.design

Design In Framer

All rights reserved, ©2025

Available For Work

Curious about what we can create together? Let’s bring something extraordinary to life!

hello@framebase.design

Design In Framer

All rights reserved, ©2025