curiouscurrent's picture
Upload app.py with huggingface_hub
ceb7230 verified
raw
history blame
1.33 kB
import gradio as gr
import pickle
import pandas as pd
# Load trained XGBoost model
with open("xgboost_trip_delay_model.pkl", "rb") as f:
model = pickle.load(f)
# Define the prediction function for Gradio
def predict_bus_delay(route_id, trip_direction, speed, trip_delay_y, hour, minute, last_stop_arrival_seconds):
data = pd.DataFrame({
"route_id": [route_id],
"trip_direction": [1 if trip_direction == "UP" else 0],
"speed": [float(speed)],
"trip_delay_y": [float(trip_delay_y)],
"hour": [int(hour)],
"minute": [int(minute)],
"last_stop_arrival_seconds": [int(last_stop_arrival_seconds)]
})
data["route_id"] = data["route_id"].astype("category")
# Make prediction
prediction = model.predict(data)[0]
return f"Predicted Bus Delay Between Stops: {prediction:.2f} seconds"
# Create Gradio interface
interface = gr.Interface(
fn=predict_bus_delay,
inputs=[
gr.Textbox(label="Route ID"),
gr.Dropdown(label="Direction", choices=["UP", "DN"]),
gr.Number(label="Speed"),
gr.Number(label="Previous Stop Delay"),
gr.Number(label="Hour"),
gr.Number(label="Minute"),
gr.Number(label="Last Stop Arrival (s)")
],
outputs="text"
)
# Launch the Gradio interface
interface.launch()