DOMMETI's picture
Update app.py
bea17f1 verified
import pandas as pd
import streamlit as st
import pickle
try:
with open("final_model_3.pkl", "rb") as f:
model = pickle.load(f)
st.success("βœ… Model loaded successfully!")
except FileNotFoundError:
st.error("❌ Model file not found! Please upload `final_model.pkl`.")
model = None
st.markdown("<h1 class='title'>🏑 House Price Predictor</h1>", unsafe_allow_html=True)
with st.expander("πŸ”Ή **Property Details**", expanded=True):
POSTED_BY = st.selectbox("POSTED_BY", ["Owner", "Dealer", "Builder"])
UNDER_CONSTRUCTION = st.selectbox("UNDER_CONSTRUCTION", [1, 0])
RERA = st.selectbox("RERA", [1, 0])
BHK_NO_ = st.selectbox("BHK_NO.", [1.0, 2.0, 3.0, 4.0, 4.5])
BHK_OR_RK = st.selectbox("BHK_OR_RK", ["BHK", "RK"])
SQUARE_FT = st.number_input("SQUARE_FT", min_value=100, max_value=5000, value=1200)
READY_TO_MOVE = st.selectbox("READY_TO_MOVE", [1, 0])
RESALE = st.selectbox("RESALE", [1, 0])
LONGITUDE = st.number_input("LONGITUDE", min_value=-37.713008, max_value=39.573320499999994, value=20.750000)
LATITUDE = st.number_input("LATITUDE", min_value=-121.761248, max_value=152.962676, value=77.324137)
if st.button("πŸ” Predict Price"):
input_data = pd.DataFrame([[POSTED_BY, UNDER_CONSTRUCTION, RERA, BHK_NO_, BHK_OR_RK, SQUARE_FT,
READY_TO_MOVE, RESALE, LONGITUDE, LATITUDE]],
columns=["POSTED_BY", "UNDER_CONSTRUCTION", "RERA", "BHK_NO.", "BHK_OR_RK", "SQUARE_FT",
"READY_TO_MOVE", "RESALE", "LONGITUDE", "LATITUDE"])
try:
predicted_price = model.predict(input_data)[0]
st.markdown(f"<div class='result-box'>🏠 Predicted Price: β‚Ή {predicted_price:.2f} Lakhs</div>", unsafe_allow_html=True)
except ValueError as e:
st.error(f"❌ Error during prediction: {e}")