The Cuisine Classification project aims to classify restaurant cuisines based on various features using advanced machine learning models, including Random Forest and XGBoost. This classification can help improve restaurant recommendations and enhance user experiences in food-related applications.
The dataset for this project is contained in a CSV file named Dataset.csv
. It includes the following features related to restaurants:
- City: The city where the restaurant is located.
- Currency: The currency used for pricing.
- Table Booking Availability: Indicates if the restaurant offers table booking.
- Online Delivery Availability: Indicates if the restaurant provides online delivery.
- Price Range: The price range of the restaurant.
- Aggregate Rating: The overall rating of the restaurant.
- Votes: The number of votes received by the restaurant.
- Cuisines: The type of cuisine offered by the restaurant.
cuisine-classification/
│
├── Cuisine Classification.ipynb # Jupyter Notebook for data processing, model training, and evaluation
├── requirements.txt # List of required Python packages
To set up the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/your-username/cuisine-classification.git cd cuisine-classification
-
Create and activate a virtual environment:
python -m venv venv # On Windows .\venv\Scripts\activate # On macOS/Linux source venv/bin/activate
-
Install the required packages:
pip install -r requirements.txt
-
Launch Jupyter Notebook:
jupyter notebook
-
Open
Cuisine Classification.ipynb
and run the cells sequentially to preprocess the data, train the models, and evaluate their performance.
- Utilizes hyperparameter tuning via GridSearchCV for optimal model performance.
- Evaluation metrics include Accuracy and a detailed Classification Report.
- Implements the XGBoost algorithm for enhanced classification performance.
- Evaluation metrics also include Accuracy and a comprehensive Classification Report.
The Jupyter Notebook contains the results of the model evaluations, including accuracy scores and detailed classification reports. Key insights and performance metrics are presented clearly for easy interpretation.
Contributions are welcome! To contribute to this project:
- Fork the repository.
- Create a feature branch (
git checkout -b feature-YourFeature
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-YourFeature
). - Open a pull request.
For major changes, please open an issue first to discuss your proposed changes.