Sahithi27 commited on
Commit
7cdd673
·
verified ·
1 Parent(s): f72e6ea

Create PUE

Browse files
Files changed (1) hide show
  1. PUE +80 -0
PUE ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import joblib
2
+ import pandas as pd
3
+ import gradio as gr
4
+
5
+ # Load model once (HF best practice)
6
+ artifact = joblib.load("pue_artifact.joblib")
7
+
8
+ def predict_pue(input_dict):
9
+ X = pd.DataFrame([input_dict])
10
+ X = X.reindex(columns=artifact["features"], fill_value=0)
11
+
12
+ ride = artifact["ride_encoder"].inverse_transform(
13
+ artifact["ride_model"].predict(X)
14
+ )[0]
15
+
16
+ discount_prob = artifact["discount_model"].predict_proba(X)[0][1]
17
+
18
+ route = artifact["route_encoder"].inverse_transform(
19
+ artifact["route_model"].predict(X)
20
+ )[0]
21
+
22
+ return {
23
+ "Recommended Ride Type": ride,
24
+ "Discount Probability": round(float(discount_prob), 2),
25
+ "Preferred Route": route
26
+ }
27
+
28
+ def ui_predict(
29
+ zone_id, hour, day_of_week, is_weekend,
30
+ weather_factor, event_factor, traffic_index,
31
+ distance_km, duration_min, base_fare,
32
+ avg_distance, avg_duration, avg_fare,
33
+ discount_usage_rate, total_rides
34
+ ):
35
+
36
+ input_data = {
37
+ "zone_id": int(zone_id),
38
+ "hour": int(hour),
39
+ "day_of_week": int(day_of_week),
40
+ "is_weekend": int(is_weekend),
41
+ "weather_factor": weather_factor,
42
+ "event_factor": event_factor,
43
+ "traffic_index": traffic_index,
44
+ "distance_km": distance_km,
45
+ "duration_min": duration_min,
46
+ "base_fare": base_fare,
47
+ "avg_distance": avg_distance,
48
+ "avg_duration": avg_duration,
49
+ "avg_fare": avg_fare,
50
+ "discount_usage_rate": discount_usage_rate,
51
+ "total_rides": int(total_rides)
52
+ }
53
+
54
+ return predict_pue(input_data)
55
+
56
+ demo = gr.Interface(
57
+ fn=ui_predict,
58
+ inputs=[
59
+ gr.Number(label="Zone ID"),
60
+ gr.Slider(0,23,step=1,label="Hour"),
61
+ gr.Slider(0,6,step=1,label="Day of Week"),
62
+ gr.Radio([0,1],label="Weekend"),
63
+ gr.Slider(1,1.5,label="Weather Factor"),
64
+ gr.Slider(1,1.6,label="Event Factor"),
65
+ gr.Slider(0.5,2,label="Traffic Index"),
66
+ gr.Number(label="Distance (km)"),
67
+ gr.Number(label="Duration (min)"),
68
+ gr.Number(label="Base Fare"),
69
+ gr.Number(label="Avg Distance"),
70
+ gr.Number(label="Avg Duration"),
71
+ gr.Number(label="Avg Fare"),
72
+ gr.Slider(0,1,label="Discount Usage Rate"),
73
+ gr.Number(label="Total Rides")
74
+ ],
75
+ outputs="json",
76
+ title="Personalized User Experience – Ride-Hailing ML",
77
+ description="Real-time personalization: ride type, discount probability, and route preference."
78
+ )
79
+
80
+ demo.launch()