|
|
import streamlit as st |
|
|
import pandas as pd |
|
|
import pickle |
|
|
|
|
|
|
|
|
with open('house.pkl', 'rb') as file: |
|
|
model = pickle.load(file) |
|
|
st.markdown( |
|
|
""" |
|
|
<style> |
|
|
.stApp { |
|
|
max-width: 600px; |
|
|
margin: auto; |
|
|
} |
|
|
.stTextInput, .stNumberInput, .stSelectbox { |
|
|
font-size: 14px; |
|
|
padding: 5px; |
|
|
} |
|
|
.stButton button { |
|
|
width: 100%; |
|
|
background-color: #4CAF50; |
|
|
color: white; |
|
|
} |
|
|
</style> |
|
|
""", |
|
|
unsafe_allow_html=True |
|
|
) |
|
|
|
|
|
|
|
|
st.markdown("<h1 style='text-align: center;'>Real Estate Price Prediction</h1>", unsafe_allow_html=True) |
|
|
|
|
|
|
|
|
area = st.number_input('Enter Area (in sqft)', min_value=0) |
|
|
bedrooms = st.selectbox('No. of Bedrooms', [1, 2, 3, 4, 5]) |
|
|
gymnasium = st.selectbox('Gymnasium', ['Yes', 'No']) |
|
|
swimming_pool = st.selectbox('Swimming Pool', ['Yes', 'No']) |
|
|
|
|
|
|
|
|
location = st.selectbox('Select Location', ['Kharghar', 'Sector-13 Kharghar', 'Sector 18 Kharghar', |
|
|
'Sector 20 Kharghar', 'Sector 15 Kharghar', 'Dombivali', |
|
|
'Churchgate', 'Prabhadevi', 'Jogeshwari West', 'Kalyan East', |
|
|
'Malad East', 'Virar East', 'Virar', 'Malad West', 'Borivali East', |
|
|
'Mira Road East', 'Goregaon West', 'Kandivali West', |
|
|
'Borivali West', 'Kandivali East', 'Andheri East', 'Goregaon East', |
|
|
'Wadala', 'Ulwe', 'Dahisar', 'kandivali', 'Goregaon', |
|
|
'Bhandup West', 'thakur village kandivali east', 'Santacruz West', |
|
|
'Kanjurmarg', 'I C Colony', 'Dahisar W', 'Marol', 'Parel', |
|
|
'Lower Parel', 'Worli', 'Jogeshwari East', 'Chembur Shell Colony', |
|
|
'Central Avenue', 'Chembur East', 'Diamond Market Road', 'Mulund', |
|
|
'Nalasopara West', 'raheja vihar', 'Powai Lake', 'MHADA Colony 20', |
|
|
'Tolaram Colony', 'Taloja', 'Thane West', 'Vangani', |
|
|
'Sector 5 Ulwe', 'Sector12 New Panvel', 'Sector 17 Ulwe', |
|
|
'Sector9 Kamothe', 'Sector 19 Kharghar', 'Navi Basti']) |
|
|
|
|
|
|
|
|
gymnasium = 1 if gymnasium == 'Yes' else 0 |
|
|
swimming_pool = 1 if swimming_pool == 'Yes' else 0 |
|
|
|
|
|
|
|
|
input_data = { |
|
|
'Area': [area], |
|
|
'No. of Bedrooms': [bedrooms], |
|
|
'Gymnasium': [gymnasium], |
|
|
'Swimming Pool': [swimming_pool], |
|
|
'Location': [location] |
|
|
} |
|
|
|
|
|
df_input = pd.DataFrame(input_data) |
|
|
|
|
|
|
|
|
df_input_encoded = pd.get_dummies(df_input, columns=['Location']) |
|
|
|
|
|
|
|
|
|
|
|
model_columns = [col for col in model.feature_names_in_ if col != 'Price'] |
|
|
for col in model_columns: |
|
|
if col not in df_input_encoded.columns: |
|
|
df_input_encoded[col] = 0 |
|
|
|
|
|
|
|
|
df_input_encoded = df_input_encoded[model_columns] |
|
|
|
|
|
|
|
|
if st.button('Predict Price'): |
|
|
prediction = model.predict(df_input_encoded)[0] |
|
|
st.markdown(f"<h2 style='text-align: center;'>Predicted Price: <strong>{prediction:.2f}</strong></h2>", unsafe_allow_html=True) |
|
|
|