Spaces:
Build error
Build error
| import pickle | |
| import gradio as gr | |
| import numpy as np | |
| # Load the trained model | |
| with open(r"final_pickle_test.pkl","rb") as f: | |
| model = pickle.load(f) | |
| # Define encoding mappings for categorical variables | |
| sales_channel_mapping = {"Online": 0, "Offline": 1} | |
| trip_type_mapping = {"Single Trip": 0, "Round Trip": 1} | |
| route_mapping = { | |
| "AKLDEL": 0, "AKLHGH": 1, "AKLHND": 2, "AKLICN": 3, "AKLKIX": 4, "AKLKTM": 5 | |
| } | |
| booking_origin_mapping = {"India": 0, "USA": 1, "UK": 2} # Add actual values | |
| def predict_booking(num_passengers, sales_channel, trip_type, purchase_lead, length_of_stay, | |
| flight_hour, flight_day, route, booking_origin, wants_extra_baggage, | |
| wants_preferred_seat, wants_in_flight_meals, flight_duration): | |
| # Convert categorical values to numerical | |
| sales_channel_encoded = sales_channel_mapping.get(sales_channel, -1) | |
| trip_type_encoded = trip_type_mapping.get(trip_type, -1) | |
| route_encoded = route_mapping.get(route, -1) | |
| booking_origin_encoded = booking_origin_mapping.get(booking_origin, -1) | |
| wants_extra_baggage = 1 if wants_extra_baggage == "Yes" else 0 | |
| wants_preferred_seat = 1 if wants_preferred_seat == "Yes" else 0 | |
| wants_in_flight_meals = 1 if wants_in_flight_meals == "Yes" else 0 | |
| # Ensure correct feature shape | |
| input_data = np.array([[num_passengers, sales_channel_encoded, trip_type_encoded, purchase_lead, | |
| length_of_stay, flight_hour, flight_day, route_encoded, booking_origin_encoded, | |
| wants_extra_baggage, wants_preferred_seat, wants_in_flight_meals, flight_duration]]) | |
| print("Input Data Shape:", input_data.shape) # Debugging | |
| # Make prediction | |
| prediction = model.predict(input_data)[0] | |
| return "Booking Completed β " if prediction == 1 else "Booking Not Completed β" | |
| # Define available options for dropdowns | |
| routes = ["AKLDEL", "AKLHGH", "AKLHND", "AKLICN", "AKLKIX", "AKLKTM"] | |
| booking_origins = ["India", "USA", "UK"] # Add actual locations if needed | |
| # Create Gradio interface | |
| iface = gr.Interface( | |
| fn=predict_booking, | |
| inputs=[ | |
| gr.Number(label="Number of Passengers"), | |
| gr.Dropdown(choices=["Online", "Offline"], label="Sales Channel"), | |
| gr.Dropdown(choices=["Single Trip", "Round Trip"], label="Trip Type"), | |
| gr.Number(label="Purchase Lead"), | |
| gr.Number(label="Length of Stay"), | |
| gr.Number(label="Flight Hours"), | |
| gr.Number(label="Flight Day"), | |
| gr.Dropdown(choices=routes, label="Route"), | |
| gr.Dropdown(choices=booking_origins, label="Booking Origin"), | |
| gr.Dropdown(choices=["Yes", "No"], label="Want Extra Baggage"), | |
| gr.Dropdown(choices=["Yes", "No"], label="Want Preferred Seat"), | |
| gr.Dropdown(choices=["Yes", "No"], label="Want In-Flight Meals"), | |
| gr.Number(label="Flight Duration") | |
| ], | |
| outputs=gr.Textbox(label="Booking Prediction"), | |
| title="British Airways Booking Predictions", | |
| description="Enter Flight Details to Predict Booking Completion" | |
| ) | |
| iface.launch() | |