This project is designed to predict mobile phone prices based on various features using machine learning techniques. It encompasses data collection through web scraping, data preprocessing, model training, and deployment of a user-friendly interface for predictions.
archive/: Contains archived datasets or previous versions of data.data/: Houses the primary datasets used for training and evaluation.gsmarena_scraper/: Scripts and tools for scraping mobile phone data from GSMArena.models/: Serialized machine learning models and related artifacts.notebooks/: Jupyter notebooks detailing exploratory data analysis and model experimentation.src/: Source code for data processing, feature engineering, and model training.streamlit/: Streamlit application for interactive user predictions.main.py: Main script to orchestrate the training and prediction pipeline.requirements.txt: List of Python dependencies required to run the project.
The dataset includes various features that influence mobile phone pricing, such as:
- Battery capacity
- RAM and storage
- Camera specifications
- Screen size and resolution
- Processor details
- Brand and model information
Make sure you have the following installed:
- Python 3.7 or higher
- pip (Python package installer)
- Clone the repository:
git clone https://github.com/Jaswanth19-596/MobilePricePrediction.git
cd MobilePricePrediction- Create a virtual environment (optional but recommended):
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install the required packages:
pip install -r requirements.txtTo train the machine learning model:
python main.pyThis script will process the data, train the model, and save the trained model in the models/ directory.
To launch the interactive web application:
streamlit run streamlit/app.pyThis will open a web interface where you can input mobile phone features and get a predicted price.
The project employs various regression algorithms to predict mobile prices. Model performance metrics and comparisons are detailed within the Jupyter notebooks in the notebooks/ directory.
- Incorporate more diverse datasets for improved model generalization
- Implement advanced machine learning algorithms for better accuracy
- Enhance the Streamlit app with more interactive features and visualizations
Contributions are welcome! Please fork the repository and submit a pull request for any enhancements or bug fixes.
This project is open-source and available under the MIT License.