Skip to content

Repository files navigation

AI-Based Restaurant Location Intelligence System

Live Demo

Open Live App

Production-style Data Science project for restaurant businesses planning to open in Chennai, India. Uses machine learning, clustering, geospatial analysis, and interactive business intelligence to recommend optimal locations.

Python Streamlit ML


Overview

This system analyzes 11,800+ Zomato restaurants across Chennai to help entrepreneurs answer:

  • Where should I open my restaurant?
  • What rating can I expect?
  • How intense is the competition?
  • Which cuisines perform best in each area?

Key Capabilities

Module Technique Purpose
Rating Prediction CatBoost Regressor Predict expected dining rating
Area Segmentation KMeans Clustering Market segment classification
Competition Analysis DBSCAN Geospatial competition hotspots
Recommendation Engine Composite Scoring Rank best areas for new outlets

Project Structure

├── data/                          # Raw & processed datasets
│   └── Zomato_Chennai_Final.csv
├── notebooks/                     # Jupyter notebooks (optional EDA)
├── models/                        # Trained ML artifacts
├── src/
│   ├── config.py                  # Paths & constants
│   ├── preprocessing/             # Data cleaning
│   ├── features/                  # Feature engineering
│   ├── modeling/                  # CatBoost rating model
│   ├── clustering/                # KMeans & DBSCAN
│   ├── recommendation/            # Location recommendation engine
│   ├── visualization/             # Plotly & Folium charts
│   └── utils/                     # Helper functions
├── app/
│   ├── streamlit_app.py           # Main dashboard
│   └── components/                # UI & data loaders
├── outputs/
│   ├── figures/                   # Saved charts
│   ├── maps/                      # HTML maps
│   └── reports/                   # CSV & JSON reports
├── main.py                        # Training pipeline
├── requirements.txt
└── README.md

Quick Start

1. Install Dependencies

pip install -r requirements.txt

2. Train Models

python main.py

This runs:

  1. Data cleaning
  2. Feature engineering (area-level business metrics)
  3. KMeans area clustering
  4. DBSCAN competition analysis
  5. CatBoost rating model training

3. Launch Dashboard

streamlit run app/streamlit_app.py

Open http://localhost:8501 in your browser.


Dashboard Features

Input (Sidebar)

  • Cuisine type
  • Restaurant category (Restaurant, Cafe, Fast Food, etc.)
  • Minimum expected rating threshold

Output

  • Best areas to open a restaurant (ranked)
  • Predicted success score (0–100)
  • Expected rating (CatBoost)
  • Competition level (Low / Medium / High)
  • Area demand score
  • Nearby similar restaurants
  • Interactive Plotly charts
  • Folium geospatial maps
  • Downloadable Excel reports

Machine Learning Pipeline

Feature Engineering

Feature Description
restaurant_count_per_area Total restaurants in area
avg_area_rating Mean dining rating
cuisine_popularity_score City-wide cuisine demand
competition_density Competition intensity proxy
premium_restaurant_ratio Share of rating ≥ 4.2
area_success_score Composite business score

Models

  1. CatBoost Regressor — Predicts dining_rating using area, cuisine, category, and engineered features
  2. KMeans (k=6) — Segments areas into market clusters
  3. DBSCAN — Identifies geospatial competition hotspots vs. opportunity zones

Recommendation Score

Score = 25% Demand + 20% Quality + 20% Cuisine Fit
      + 20% Low Competition + 15% Geo Opportunity

Dataset

Source: Zomato_Chennai_Final.csv

Column Description
name_of_restaurant Restaurant name
market_segment Category (Restaurant, Cafe, etc.)
cuisine Comma-separated cuisines
area/location Chennai neighborhood
latitude, longitude Geo coordinates
dining_rating Zomato dining rating (0–5)

Tech Stack

  • Frontend: Streamlit
  • Backend: Python
  • ML: scikit-learn, CatBoost, XGBoost
  • Viz: Plotly, Matplotlib, Seaborn, Folium
  • Geo: geopy, Folium

Use Cases

  • Final year engineering project
  • GitHub portfolio showcase
  • Data Science internship interviews
  • Restaurant business feasibility studies

Author Notes

Built as a modular, scalable data science product with separated concerns:

  • preprocessingfeaturesmodelingclusteringrecommendationvisualizationapp

Run python main.py after any data updates to refresh models.


License

MIT — Open for educational and portfolio use.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages