A machine learning-powered web application that estimates house prices in India based on property specifications. This project utilizes a dataset of housing features to train predictive models and serves them via an interactive Streamlit interface.
This project demonstrates the end-to-end process of building a data science application:
- Data Analysis: Exploratory Data Analysis (EDA) on housing data.
- Model Training: Training and tuning machine learning models (Linear Regression, Decision Trees, Random Forest) using Scikit-Learn.
- Deployment: Building a user-friendly web interface using Streamlit.
- Interactive UI: Clean, custom-styled interface built with Streamlit.
- Real-time Valuation: Instant price estimation based on user inputs.
- Key Parameters: Considers factors such as:
- Number of Bedrooms & Bathrooms
- Living Area (sq ft)
- Condition of the House
- Number of Schools Nearby
- Custom Styling: Enhanced visual experience using custom CSS.
- Python (Core Language)
- Pandas & NumPy (Data Manipulation)
- Scikit-Learn (Machine Learning & GridSearch)
- Streamlit (Web Framework)
- Joblib (Model Serialization)
├── app.py # Main Streamlit application script
├── notebook.ipynb # Jupyter Notebook for EDA and Model Training
├── style.css # Custom CSS for UI styling
├── House Price India.csv # Dataset source
└── README.md # Project documentation
-
Clone the repository:
git clone https://github.com/your-username/house-price-prediction.git cd house-price-prediction -
Install dependencies:
pip install pandas numpy scikit-learn streamlit joblib
-
Generate the Model:
- Open
notebook.ipynbin Jupyter Notebook or VS Code. - Run all cells to perform data analysis and train the model.
- Ensure the notebook saves the trained model as
model.pklin the root directory.
- Open
-
Run the Application:
streamlit run app.py
The project explores multiple regression algorithms to determine the best fit for the data. The notebook.ipynb file contains:
- Data cleaning and preprocessing.
- Feature selection (
number of bedrooms,living area, etc.). - Hyperparameter tuning using
GridSearchCV. - Evaluation of models like Linear Regression, Decision Tree Regressor, and Random Forest Regressor.
The dataset used in this project is House Price India.csv, sourced from Kaggle. It contains various features regarding houses in India, including location coordinates, area details, and amenities.