File size: 1,885 Bytes
eb0c6cc
42fc065
e7bbd89
 
bea17f1
e7bbd89
7468c2f
e84c899
e7bbd89
 
 
 
 
8bbc201
177d0ad
 
8bbc201
177d0ad
db630a6
177d0ad
 
a946677
42fc065
177d0ad
42fc065
 
 
 
e7bbd89
 
eb0c6cc
 
95476c4
eb0c6cc
8ff2368
95476c4
8bbc201
95476c4
 
 
 
 
e7bbd89
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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}")