/ projects · 02
What makes a London Airbnb top-rated?
34,384 London listings, one question: what predicts a 4.8★+ guest rating? Spoiler: it's the host, not the property. Set up a hypothetical listing below and find out.
/ live demo · would your listing make the cut?
Odds stacked from the dataset's real splits. Every rate was computed from the same cleaned 34,384 listings the models trained on.
The data
The public Inside Airbnb snapshot for London (September 2025): 96,871 listings, 79 columns. Listings without a review score can't be labelled, and averages over a handful of reviews are noise, so the cleaned set keeps listings with at least five reviews and a sane price: 34,384 listings. The target flags a review score of 4.8 or higher; London's median listing sits at 4.83, so anything lower would label nearly everyone "top-rated". That threshold gives a clean 51.4 / 48.6 split across 18 features.
Decision Tree vs Random Forest
Both models share the same backbone (depth 10, balanced class weights), so the comparison isolates one thing: what does ensembling buy you? The answer: everything, a little. The forest beats the single tree on every metric, with the biggest gap in AUC (0.83 vs 0.78), which is exactly where a recommendation system would operate. Five-fold cross-validation confirmed it (AUC 0.82 ± 0.02). Concretely, the forest caught 185 more top-rated listings than the tree with essentially identical false positives.
The host beats the property
- Superhost status is the top feature (importance 0.25 in the forest; the single tree's root split). The raw gap: 77% of Superhost listings are top-rated vs 38% of the rest.
- The host's listing count comes second (0.18). Bedrooms and bathrooms don't crack the top 10 in either model.
- Geography matters: residential Wandsworth tops the big boroughs at 65% while tourist-heavy Westminster sits at 42%. Central guests are harder to please.
- Instant booking backfires: instant-bookable listings are top-rated 34% of the time vs 61% for hosts who vet their guests.
One caveat: Superhost status is partly a function of past ratings, so the badge captures persistent host quality rather than proving causation.
Read the full report
Written for GEOG0178 (Machine Learning for Social Sciences with Python) at UCL. request the report →