Spaces:
Paused
Paused
import streamlit as st | |
import pandas as pd | |
import pickle | |
from utils import create_new_features, normalize, init_new_pred | |
with open('./trained_model.pkl', 'rb') as file: | |
model = pickle.load(file) | |
new_pred = st.text_area('Enter text') | |
# Define min and max values from the dictionaries | |
min_dict = { | |
'bedrooms': 0, | |
'bathrooms': 0, | |
'sqft_living': 370, | |
'sqft_lot': 638, | |
'floors': 1, | |
'waterfront': 0, | |
'view': 0, | |
'condition': 1, | |
'sqft_above': 370, | |
'sqft_basement': 0, | |
'yr_built': 1900, | |
'yr_renovated': 0, | |
'house_age': 0, | |
'years_since_renovation': 0 | |
} | |
max_dict = { | |
'bedrooms': 9, | |
'bathrooms': 8, | |
'sqft_living': 13540, | |
'sqft_lot': 1074218, | |
'floors': 3, | |
'waterfront': 1, | |
'view': 4, | |
'condition': 5, | |
'sqft_above': 9410, | |
'sqft_basement': 4820, | |
'yr_built': 2014, | |
'yr_renovated': 2014, | |
'house_age': 114, | |
'years_since_renovation': 2014 | |
} | |
# Create sliders for each item in the dictionaries | |
bedrooms = st.slider('Bedrooms', min_value=min_dict['bedrooms'], max_value=max_dict['bedrooms'], value=min_dict['bedrooms']) | |
bathrooms = st.slider('Bathrooms', min_value=min_dict['bathrooms'], max_value=max_dict['bathrooms'], value=min_dict['bathrooms']) | |
sqft_living = st.slider('Square Feet (Living)', min_value=min_dict['sqft_living'], max_value=max_dict['sqft_living'], value=min_dict['sqft_living']) | |
sqft_lot = st.slider('Square Feet (Lot)', min_value=min_dict['sqft_lot'], max_value=max_dict['sqft_lot'], value=min_dict['sqft_lot']) | |
floors = st.slider('Floors', min_value=min_dict['floors'], max_value=max_dict['floors'], value=min_dict['floors']) | |
waterfront = st.slider('Waterfront', min_value=min_dict['waterfront'], max_value=max_dict['waterfront'], value=min_dict['waterfront']) | |
view = st.slider('View', min_value=min_dict['view'], max_value=max_dict['view'], value=min_dict['view']) | |
condition = st.slider('Condition', min_value=min_dict['condition'], max_value=max_dict['condition'], value=min_dict['condition']) | |
sqft_above = st.slider('Square Feet (Above)', min_value=min_dict['sqft_above'], max_value=max_dict['sqft_above'], value=min_dict['sqft_above']) | |
sqft_basement = st.slider('Square Feet (Basement)', min_value=min_dict['sqft_basement'], max_value=max_dict['sqft_basement'], value=min_dict['sqft_basement']) | |
yr_built = st.slider('Year Built', min_value=min_dict['yr_built'], max_value=max_dict['yr_built'], value=min_dict['yr_built']) | |
yr_renovated = st.slider('Year Renovated', min_value=min_dict['yr_renovated'], max_value=max_dict['yr_renovated'], value=min_dict['yr_renovated']) | |
house_age = st.slider('House Age', min_value=min_dict['house_age'], max_value=max_dict['house_age'], value=min_dict['house_age']) | |
years_since_renovation = st.slider('Years Since Renovation', min_value=min_dict['years_since_renovation'], max_value=max_dict['years_since_renovation'], value=min_dict['years_since_renovation']) | |
# Display the selected values (optional) | |
st.write(f"Selected Bedrooms: {bedrooms}") | |
st.write(f"Selected Bathrooms: {bathrooms}") | |
st.write(f"Selected Sqft Living: {sqft_living}") | |
st.write(f"Selected Sqft Lot: {sqft_lot}") | |
st.write(f"Selected Floors: {floors}") | |
st.write(f"Selected Waterfront: {waterfront}") | |
st.write(f"Selected View: {view}") | |
st.write(f"Selected Condition: {condition}") | |
st.write(f"Selected Sqft Above: {sqft_above}") | |
st.write(f"Selected Sqft Basement: {sqft_basement}") | |
st.write(f"Selected Year Built: {yr_built}") | |
st.write(f"Selected Year Renovated: {yr_renovated}") | |
st.write(f"Selected House Age: {house_age}") | |
st.write(f"Selected Years Since Renovation: {years_since_renovation}") | |
if new_pred: | |
new_pred = init_new_pred() | |
new_pred['bedrooms'] = 5 | |
new_pred['bathrooms'] = 3 | |
new_pred['sqft_living'] = 10000 | |
new_pred['sqft_lot'] = 1000 | |
new_pred['floors'] = 2 | |
new_pred['waterfront'] = 1 | |
new_pred['view'] = 3 | |
new_pred['condition'] = 5 | |
new_pred['sqft_above'] = 500 | |
new_pred['sqft_basement'] = 500 | |
new_pred['yr_built'] = 2012 | |
new_pred['yr_renovated'] = 2013 | |
new_pred['city_Bellevue'] = 1 | |
new_pred = pd.DataFrame([new_pred]) | |
new_pred = create_new_features(new_pred) | |
new_pred = normalize(new_pred) | |
predicted_price = model.predict(new_pred) | |
st.write(predicted_price[0][0]) | |