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("

🏡 House Price Predictor

", 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"
🏠 Predicted Price: ₹ {predicted_price:.2f} Lakhs
", unsafe_allow_html=True) except ValueError as e: st.error(f"❌ Error during prediction: {e}")