{"id":34497452,"url":"https://github.com/kindo-tk/laptop_price_predictor","last_synced_at":"2026-05-04T17:32:10.443Z","repository":{"id":328668386,"uuid":"1116299630","full_name":"kindo-tk/laptop_price_predictor","owner":"kindo-tk","description":"An end-to-end machine learning project to predict laptop prices based on technical specifications. Built with Python and Scikit-Learn, featuring an interactive web app deployed using Streamlit.","archived":false,"fork":false,"pushed_at":"2025-12-24T19:04:52.000Z","size":608,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-25T13:00:41.381Z","etag":null,"topics":["decision-tree-regression","laptop-price-prediction","linear-regression","machine-learning","prediction","random-forest","regression-models","streamlit","xgboost-regression"],"latest_commit_sha":null,"homepage":"https://laptoppricepredictorbytk.streamlit.app/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kindo-tk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-14T15:40:15.000Z","updated_at":"2025-12-24T19:04:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kindo-tk/laptop_price_predictor","commit_stats":null,"previous_names":["kindo-tk/laptop_price_predictor"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kindo-tk/laptop_price_predictor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kindo-tk%2Flaptop_price_predictor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kindo-tk%2Flaptop_price_predictor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kindo-tk%2Flaptop_price_predictor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kindo-tk%2Flaptop_price_predictor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kindo-tk","download_url":"https://codeload.github.com/kindo-tk/laptop_price_predictor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kindo-tk%2Flaptop_price_predictor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32617701,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["decision-tree-regression","laptop-price-prediction","linear-regression","machine-learning","prediction","random-forest","regression-models","streamlit","xgboost-regression"],"created_at":"2025-12-24T01:45:47.549Z","updated_at":"2026-05-04T17:32:10.436Z","avatar_url":"https://github.com/kindo-tk.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Laptop Price Predictor\n\nThis project implements a machine learning-based system to estimate the market price of laptops based on their technical specifications. It is an end-to-end data science project, covering data cleaning, extensive feature engineering, model comparison, and deployment using a **Streamlit** web application.\n\n---\n\n## Overview\n\nThe laptop market is saturated with various brands and specifications, making it difficult for consumers to estimate the fair value of a device. The goal of this project is to solve this opacity by predicting prices based on features such as:\n\n- **Brand** (Apple, Dell, HP, etc.)\n- **Processor** (Intel i5/i7, AMD, etc.)\n- **RAM \u0026 Storage** (SSD/HDD)\n- **GPU** (Nvidia, Intel Iris, etc.)\n- **Screen Type** (IPS, Touchscreen, Resolution)\n\nThe project follows a complete Data Science lifecycle and provides a **modern web interface** for users to get instant price estimates.\n\n---\n\n##  Methodology \u0026 Workflow\n\nThis project was executed in the following detailed steps:\n\n### 1. Data Cleaning \u0026 Preprocessing\nThe raw dataset required significant cleaning to be usable for modeling:\n- **Unit Handling:** Removed non-numeric characters (e.g., \"GB\" from RAM, \"kg\" from Weight) and converted columns to numeric types.\n- **Missing Values:** Handled null values in critical columns to ensure data consistency.\n\n### 2. Exploratory Data Analysis (EDA)\n- **Target Variable:** Analyzed the distribution of the `Price` column. It was found to be right-skewed, so a **Log Transformation** was applied to normalize the distribution for better regression performance.\n- **Correlation:** Analyzed how features like RAM and Screen Resolution correlated with Price.\n\n### 3. Feature Engineering\nThis was the most critical phase, where raw text data was converted into meaningful features:\n- **Screen Resolution:** Extracted detailed specs to create new binary columns for `TouchScreen` and `IPS Panel`, and calculated `PPI` (Pixels Per Inch).\n- **CPU \u0026 GPU:** Parsed complex text strings to categorize processors (e.g., \"Intel Core i5\") and Graphics cards into generalized categories.\n- **Storage:** Split mixed storage types (e.g., \"128GB SSD + 1TB HDD\") into separate columns for `SSD` and `HDD` capacities to capture the premium value of solid-state drives.\n\n---\n\n##  Model Selection \u0026 Results\n\nMultiple regression algorithms were trained and evaluated using the R² Score metric. Below is the comparative analysis of their performance based on our testing:\n\n| **Model** | **R² Score** |\n| :--- | :--- | \n| **XGBoost Regressor** | **0.839459** | \n| Random Forest Regressor | 0.819675 | \n| Voting Regressor | 0.803241 |\n| Linear Regression | 0.759321 |\n| Ridge Regression | 0.758772 | \n| Lasso Regression | 0.748790 |\n| Decision Tree Regressor | 0.747561 | \n| SVR | 0.737686 | \n| KNN | 0.712115 | \n| Gradient Boosting | 0.704107 | \n| AdaBoost Regressor | 0.596751 |\n\n### XGBoost gave the highest R2 score\n---\n\n## Project Structure\n\n```text\nlaptop-price-predictor/\n│\n├── app.py                         # Streamlit application\n├── models/\n│   └── best_laptop_price_model.pkl  # Trained ML pipeline\n│\n├── notebooks/\n│   └── laptop_price_predictor.ipynb # EDA, preprocessing, training \u0026 evaluation\n│\n├── datasets/\n│   ├── laptop_data.csv             # Original dataset\n│   └── cleaned_data.csv            # Cleaned \u0026 feature-engineered dataset\n│\n├── .dockerignore                   # Files ignored by Docker\n├── .gitignore                      # Files \u0026 folders ignored by Git\n├── Dockerfile                      # Docker configuration\n├── LICENSE                         # Project license\n├── requirements.txt                # Project dependencies\n└── README.md                       # Project documentation\n```\n---\n\n### Setup\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/kindo-tk/laptop_price_predictor.git\n   ```\n2. **Navigate to the project directory:**\n\n    ```sh\n    cd laptop_price_predictor\n    ```\n    \n3. **Create and Activate the virtual environment:**\n\n   **Windows:**\n    ```bash\n    python -m venv .venv\n    .venv\\Scripts\\activate\n    ```\n    \n    **macOS/Linux:**\n    ```bash\n    python3 -m venv .venv\n    source .venv/bin/activate\n    ```\n\n\n4. **Install the required packages:**\n\n    ```sh\n    pip install -r requirements.txt\n    ```\n\n5. **Run the Streamlit application:**\n\n    ```sh\n    streamlit run app.py\n    ```\n---\n\n### 🐳 Docker Usage\n\nIf you prefer using Docker, you can pull the pre-built image from Docker Hub and run it instantly:\n\n1. **Pull the Docker Image:**\n\n    ```bash\n    docker pull kindotk/laptop_price_predictor\n    ```\n\n2. **Run the Container:**\n\n    ```bash\n    docker run -p 8501:8501 kindotk/laptop_price_predictor\n    ```\n\n3. **Access the App:**\n   Open your browser and navigate to `http://localhost:8501`\n\n---\n## Usage\n\n1. Enter the required laptop details:\n\n   - Brand (e.g., Dell, Apple)\n   - Processor \u0026 GPU\n   - RAM \u0026 Storage configuration\n   - Screen Size \u0026 Resolution\n\n2. Click **Predict Price** to see the estimated market value.\n\n---\n\n## Technologies Used\n\n- Python\n- Streamlit\n- scikit-learn\n- XGBoost\n- Pandas \u0026 NumPy\n\u003e See [`requirements.txt`](requirements.txt) for the full list of dependencies.\n---\n\n## License\n\nThis project is licensed under the MIT License. See [LICENSE](LICENSE) for details.\n\n---\n\n## Contact\n\nFor any inquiries or feedback, please contact:\n\n- [Tufan Kundu (LinkedIn)](https://www.linkedin.com/in/tufan-kundu-577945221/)\n- Email: tufan.kundu11@gmail.com\n\n---\n\n### Demo\n\nVisit the live app:\u003ca href = \"https://laptoppricepredictorbytk.streamlit.app/\" \u003e Click here \u003c/a\u003e\n\n\u003cimg src=\"https://github.com/kindo-tk/images/blob/main/ui.png\" width=\"600\"\u003e\n\u003cimg src=\"https://github.com/kindo-tk/images/blob/main/ui2.png\" width=\"600\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkindo-tk%2Flaptop_price_predictor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkindo-tk%2Flaptop_price_predictor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkindo-tk%2Flaptop_price_predictor/lists"}