# πŸ“± Phone Price Prediction ## πŸš€ Introduction The **Phone Price Detector** project aims to develop a machine learning model capable of predicting smartphone prices based on various features. By leveraging **Object-Oriented Programming (OOP)** principles, we will create a modular and maintainable codebase. This project includes **data preprocessing, implementing the K-Nearest Neighbors (KNN) algorithm, and utilizing classifiers** to achieve accurate price predictions. ## 🎯 Objectives 1. **πŸ›  Utilize OOP Concepts** - Design the system using **object-oriented programming** to encapsulate data and methods related to phone features and pricing. 2. **πŸ“Š Data Preprocessing** - βœ… Clean and analyze the dataset to ensure high-quality input for the model. - βœ… Handle missing values, outliers, and categorical data encoding. 3. **πŸ“ˆ KNN Implementation** - Implement the **K-Nearest Neighbors (KNN)** algorithm for price prediction. - Optimize hyperparameters to improve model performance. 4. **πŸ“‰ Evaluation Metrics** - Display **accuracy, precision, recall, and F1 score** to evaluate model performance. - Provide insights into model reliability. 5. **πŸ“² User Input Features** - Enable users to input smartphone features for price prediction. - Present prediction results along with evaluation metrics. # Screen shots ## Home ![Home](https://github.com/user-attachments/assets/91614c81-4c4e-4906-8991-fd0ce9fae488) ## Predicting Price ![Predicting](https://github.com/user-attachments/assets/d210bc65-39bc-49aa-a84a-45f34d842e9d) ### Result ![Result](https://github.com/user-attachments/assets/32a8cb42-dd70-4e11-83c5-a308b64d6aff) ## View Phones list ![Phoneslist](https://github.com/user-attachments/assets/097c9391-3c96-4741-a878-b7a131234b9c) ## πŸ” Methodology 1. **πŸ“₯ Data Collection** - Gather a **comprehensive dataset** containing smartphone features such as brand, model, RAM, storage, camera specifications, and their corresponding prices. 2. **πŸ›  Data Preprocessing** - Use **Pandas** and **NumPy** for data manipulation. - Clean the dataset by removing duplicates and handling missing values. - Analyze feature relationships using visualizations with **Matplotlib** and **Seaborn**. 3. **πŸ€– Model Development** - Implement **KNN, ANN, or NaΓ―ve Bayes** algorithms using **scikit-learn** based on requirements. - Train the model on the preprocessed dataset. - Use cross-validation techniques for better performance assessment. 4. **πŸ“Š Model Evaluation** - Calculate and display **accuracy, precision, recall, and F1 score** using **scikit-learn's metrics module**. - Provide insights into model effectiveness. 5. **πŸ’» User Interface** - Develop an **interactive Jupyter Notebook** environment for users to input features and view predictions. ## πŸ›  Tools and Technologies - **πŸ’» Programming Language:** Python - **πŸ›  Development Environment:** Jupyter Notebook - **πŸ“š Libraries Used:** - πŸ“Š `pandas` for data manipulation - πŸ”’ `numpy` for numerical operations - πŸ“‰ `matplotlib` and `seaborn` for data visualization - πŸ€– `scikit-learn` for implementing KNN and evaluation metrics - βž• Additional libraries as needed ## 🎯 Expected Outcomes - βœ… A **robust price prediction model** for smartphones based on user-input features. - πŸ“ˆ **Detailed evaluation metrics** to assess model performance. - πŸ’‘ An **interactive Jupyter Notebook** for users to explore predictions. ## 🎀 Conclusion The **Phone Price Detector** project provides valuable insights into smartphone pricing trends, helping users make informed purchasing decisions. By implementing **OOP principles**, we ensure a structured and maintainable codebase, facilitating future improvements and scalability. --- πŸ‘¨β€πŸ’» **Developed by:** Abdullah Bilal Yousif Student of AI at SZABIST-ISB