# 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!")