Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| import pickle | |
| import json | |
| import pandas as pd | |
| import numpy as np | |
| with open("list_num_columns.txt", 'r') as file_1: | |
| list_num_skew_columns = json.load(file_1) | |
| with open("list_cat_nominal_columns.txt", "r") as file_2: | |
| nom_col_skew = json.load(file_2) | |
| with open("list_cat_ordinal_columns.txt", "r") as file_3: | |
| ord_col_skew = json.load(file_3) | |
| with open("best_pipeline.pkl", "rb") as file_4: | |
| best_pipeline = pickle.load(file_4) | |
| def run(): | |
| # create form | |
| with st.form("form"): | |
| age = st.number_input("age", | |
| min_value= 5, | |
| max_value= 90, | |
| value=30, | |
| step=2) | |
| flight_distance = st.number_input("flight distance", | |
| min_value= 31, | |
| max_value= 5000, | |
| value=850, | |
| step=10) | |
| departure_delay_in_minutes = st.number_input("departure delay in minutes", | |
| min_value= 0, | |
| max_value= 1600, | |
| value=200, | |
| step=10) | |
| arrival_delay_in_minutes = st.number_input("arrival delay in minutes", | |
| min_value= 0, | |
| max_value= 1600, | |
| value=200, | |
| step=10) | |
| st.markdown("---") | |
| gender = st.radio("gender",("Male","Female"),index= 0) | |
| customer_type = st.radio("customer type",("Loyal customer","disloyal customer"),index= 0) | |
| type_of_travel = st.radio("type of travel",('Personal Travel', 'Business travel'),index= 0) | |
| class_flight = st.radio("class flight",('Eco Plus', 'Business', 'Eco'),index= 0) | |
| st.markdown("---") | |
| inflight_wifi_service = st.radio("inflight_wifi_service",(0,1,2,3,4,5),index= 0) | |
| departure_arrival_time_convenient = st.radio("departure/arrival_time_convenient",(0,1,2,3,4,5),index= 0) | |
| ease_of_online_booking = st.radio("ease_of_online_booking",(0,1,2,3,4,5),index= 0) | |
| gate_location = st.radio("gate_location",(0,1,2,3,4,5),index= 0) | |
| food_and_drink = st.radio("food_and_drink",(0,1,2,3,4,5),index= 0) | |
| online_boarding = st.radio("online_boarding",(0,1,2,3,4,5),index= 0) | |
| seat_comfort = st.radio("seat_comfort",(0,1,2,3,4,5),index= 0) | |
| inflight_entertainment = st.radio("inflight_entertainment",(0,1,2,3,4,5),index= 0) | |
| on_board_service = st.radio("on_board_service",(0,1,2,3,4,5),index= 0) | |
| leg_room_service = st.radio("leg_room_service",(0,1,2,3,4,5),index= 0) | |
| baggage_handling = st.radio("baggage_handling",(0,1,2,3,4,5),index= 0) | |
| checkin_service = st.radio("checkin_service",(0,1,2,3,4,5),index= 0) | |
| inflight_service = st.radio("inflight_service",(0,1,2,3,4,5),index= 0) | |
| cleanliness = st.radio("cleanliness",(0,1,2,3,4,5),index= 0) | |
| st.markdown("---") | |
| submitted = st.form_submit_button("predict") | |
| data_inf = { | |
| "gender" : gender, | |
| "customer type" : customer_type, | |
| "age" : age, | |
| "type of travel" : type_of_travel, | |
| "class" : class_flight, | |
| "inflight wifi service" : inflight_wifi_service, | |
| "departure/arrival time convenient" : departure_arrival_time_convenient, | |
| "ease of online booking" : ease_of_online_booking, | |
| "gate location" : gate_location, | |
| "food and drink" : food_and_drink, | |
| "online boarding" : online_boarding, | |
| "seat comfort" : seat_comfort, | |
| "inflight entertainment" : inflight_entertainment, | |
| "on-board service" : on_board_service, | |
| "leg room service" : leg_room_service, | |
| "baggage handling" : baggage_handling, | |
| "checkin service" : checkin_service, | |
| "inflight service" : inflight_service, | |
| "cleanliness" : cleanliness, | |
| "flight distance" : flight_distance, | |
| "departure delay in minutes" : departure_delay_in_minutes, | |
| "arrival delay in minutes" : arrival_delay_in_minutes | |
| } | |
| data_inf = pd.DataFrame([data_inf]) | |
| st.dataframe(data_inf) | |
| age_category = [] | |
| for x in data_inf["age"]: | |
| if 6 <= x <= 21: | |
| age_category.append('Generation z') | |
| elif 22 <= x <= 36: | |
| age_category.append('Millennials') | |
| elif 37 <= x <= 52: | |
| age_category.append('Generation X') | |
| elif 53 <= x <= 73: | |
| age_category.append('Baby Boomers') | |
| else: | |
| age_category.append('Silent Generation') | |
| data_inf["generation"] = age_category | |
| if submitted: | |
| data_inf_num_skew = data_inf[list_num_skew_columns] | |
| data_inf_cat_nom = data_inf[nom_col_skew] | |
| data_inf_cat_ord = data_inf[ord_col_skew] | |
| y_predict_inf = best_pipeline.predict(data_inf) | |
| st.write("# Satisfaction: ", str(y_predict_inf[0])) | |
| if __name__=="__main__": | |
| run() |