Jonas Bechthold
README change
a0e63ac
raw
history blame
2.24 kB
# app.py
import streamlit as st
import joblib
import pandas as pd
from sklearn.linear_model import LinearRegression
pipe = joblib.load('lr_regression_ny2019.pkl')
st.title('Airbnb price predictor')
st.markdown("""
**Example data:**
- "latitude": 40.7128
- "longitude": -74.006
- "minimum_nights": 3.0
- "number_of_reviews": 5.0
- "reviews_per_month": 1.0
- "calculated_host_listings_count": 1.0
- "availability_365": 365.0
- "neighbourhood_group": "Manhattan"
- "neighbourhood": "Financial District"
- "room_type": "Entire home/apt"
The result should be 268 dollar!
Tutorial how to build this kind of app: [Link](https://medium.com/latinxinai/how-i-deployed-a-machine-learning-model-for-the-first-time-b82b9ea831e0)
""")
def get_user_input():
input_dict = {
"latitude": 40.7128,
"longitude": -74.006,
"minimum_nights": 3.0,
"number_of_reviews": 5.0,
"reviews_per_month": 1.0,
"calculated_host_listings_count": 1.0,
"availability_365": 365.0,
"neighbourhood_group": "Manhattan",
"neighbourhood": "Financial District",
"room_type": "Entire home/apt"
}
input_features = [
"latitude", "longitude", "minimum_nights", "number_of_reviews",
"reviews_per_month", "calculated_host_listings_count",
"availability_365", "neighbourhood_group", "neighbourhood", "room_type"
]
with st.form(key='my_form'):
for feat in input_features:
if feat in ['neighbourhood_group','neighbourhood','room_type']:
input_value = st.text_input(f"Enter value for {feat}", value=input_dict[feat])
else:
input_value = st.number_input(f"Enter value for {feat}", value=input_dict[feat], step=1.0)
input_dict[feat] = input_value
submit_button = st.form_submit_button(label='Submit')
return pd.DataFrame([input_dict]), submit_button
user_input, submit_button = get_user_input()
if submit_button:
# Predict wine quality
prediction = pipe.predict(user_input)
prediction_value = prediction[0]
# Display the prediction
st.header("Predicted Airbnb price")
st.write(f"the prediction is {prediction_value:.2f} dollar!")