https://github.com/shabari48/mobile_project
An ML-powered system that predicts mobile phone prices and provides personalized recommendations based on user preferences.
https://github.com/shabari48/mobile_project
exploratory-data-analysis kmeans-clustering machine-learning streamlit support-vector-machines xgboost-regression
Last synced: about 2 months ago
JSON representation
An ML-powered system that predicts mobile phone prices and provides personalized recommendations based on user preferences.
- Host: GitHub
- URL: https://github.com/shabari48/mobile_project
- Owner: shabari48
- License: mit
- Created: 2025-01-31T10:30:06.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-10T04:22:48.000Z (over 1 year ago)
- Last Synced: 2025-02-10T05:24:52.226Z (over 1 year ago)
- Topics: exploratory-data-analysis, kmeans-clustering, machine-learning, streamlit, support-vector-machines, xgboost-regression
- Language: Jupyter Notebook
- Homepage:
- Size: 1.57 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Mobile Price Prediction and Recommendation System
## Overview
This project aims to predict the price of mobile phones based on their specifications and recommend similar phones using clustering techniques. The system uses a regression model to predict the price and a classification model to categorize the phones into different categories (Budget, Midrange, Flagship). Additionally, it employs KMeans clustering to find similar phones based on the predicted price and input data.
## Project Structure
```plaintext
mobile_project/
│
├── data/
│ ├── processed/
│ │ └── unique.csv
│ └── raw/
│
├── models/
│ ├── myreg.joblib
│ ├── myclassify.joblib
│ ├── mainscaler.joblib
│ └── kmeanscaler.joblib
│
├── notebooks/
│ ├── datatransformation.ipynb
│ ├── eda.ipynb
│ └── model.ipynb
│
├── src/
│ └── app.py
│
├── LICENSE
└── README.md
```
## Setup
### Prerequisites
- Python 3.x
- Jupyter Notebook
- Streamlit
- Pandas
- Scikit-learn
- Joblib
### Installation
1. **Clone the Repository**
```bash
git clone https://github.com/yourusername/mobile_project.git
cd mobile_project
```
2. **Create a Virtual Environment**
```bash
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
```
3. **Install Dependencies**
```bash
pip install -r requirements.txt
```
## Data
The dataset used in this project is stored in the `data/processed/` directory. The dataset contains various features of mobile phones, including battery power, RAM, memory, processor performance, camera specifications, and price.
## Models
The project uses the following models:
- **Regression Model**: Trained to predict the price of mobile phones based on their specifications.
- **Classification Model**: Trained to categorize mobile phones into different categories (Budget, Midrange, Flagship).
- **KMeans Clustering**: Used to find similar phones based on the predicted price and input data.
The models and scalers are saved in the `models/` directory.
## Notebooks
The `notebooks/` directory contains Jupyter notebooks for data transformation, exploratory data analysis (EDA), and model training.
- **datatransformation.ipynb**: Contains the code for data cleaning and transformation.
- **eda.ipynb**: Contains the code for exploratory data analysis.
- **model.ipynb**: Contains the code for training the regression and classification models.
## Streamlit App
The `src/app.py` file contains the code for the Streamlit application. The app allows users to input the specifications of a mobile phone and predict its price. It also recommends similar phones based on the predicted price and input data.
### Running the Streamlit App
1. **Activate the Virtual Environment**
```bash
source venv/bin/activate # On Windows use `venv\Scripts\activate`
```
2. **Run the Notebook File**
```bash
model.ipynb
```
3. **Run the Streamlit App**
```bash
streamlit run src/app.py
```
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more information.
## Contact
For any questions or suggestions, please feel free to contact us at [shabariprakashsv@gmail.com](mailto:shabariprakashsv@gmail.com).