ZachZeke2004 commited on
Commit
fdba25f
·
verified ·
1 Parent(s): 1fe6060

Upload 8 files

Browse files
app.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import joblib
3
+ import numpy as np
4
+ # Load models
5
+ model_flavor = joblib.load("random_forest_model_flavor.pkl")
6
+ model_topping = joblib.load("random_forest_model_topping.pkl")
7
+ model_drink = joblib.load("random_forest_model_drink.pkl")
8
+
9
+ # Load encoders
10
+ encoder_flavor = joblib.load("encoder_flavor.pkl")
11
+ encoder_topping = joblib.load("encoder_topping.pkl")
12
+ encoder_drink = joblib.load("encoder_drink.pkl")
13
+ input_encoders = joblib.load("input_encoders.pkl")
14
+
15
+ # Prediction function
16
+ def predict_merienda(mood, weather, craving_level, last_meal, budget):
17
+ features = [mood, weather, craving_level, last_meal, budget]
18
+ encoded = [input_encoders[col].transform([val])[0] for col, val in zip(input_encoders.keys(), features)]
19
+ encoded_np = np.array(encoded).reshape(1, -1)
20
+ pred_flavor = encoder_flavor.inverse_transform(model_flavor.predict(encoded_np))[0]
21
+ pred_topping = encoder_topping.inverse_transform(model_topping.predict(encoded_np))[0]
22
+ pred_drink = encoder_drink.inverse_transform(model_drink.predict(encoded_np))[0]
23
+ return pred_flavor, pred_topping, pred_drink
24
+
25
+ # Dropdown options
26
+ mood_list = input_encoders["mood"].classes_.tolist()
27
+ weather_list = input_encoders["weather"].classes_.tolist()
28
+ craving_list = input_encoders["craving_level"].classes_.tolist()
29
+ last_meal_list = input_encoders["last_meal"].classes_.tolist()
30
+ budget_list = input_encoders["budget"].classes_.tolist()
31
+ # Gradio Interface
32
+ iface = gr.Interface(
33
+ fn=predict_merienda,
34
+ inputs=[
35
+ gr.Dropdown(mood_list, label="Mood"),
36
+ gr.Dropdown(weather_list, label="Weather"),
37
+ gr.Dropdown(craving_list, label="Craving Level"),
38
+ gr.Dropdown(last_meal_list, label="Last Meal"),
39
+ gr.Dropdown(budget_list, label="Budget"),
40
+ ],
41
+ outputs=[
42
+ gr.Text(label="Recommended Flavor"),
43
+ gr.Text(label="Recommended Topping"),
44
+ gr.Text(label="Recommended Drink"),
45
+ ],
46
+ title=" Merienda Classifier",
47
+ description="Predicts the best pancit canton flavor, topping, and drink based on your current situation"
48
+ )
49
+
50
+ iface.launch()
encoder_drink.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a51dbe23091e1c720ae106f50a6c11eb437eceecfd08bdd1ea9b50a684bc9714
3
+ size 560
encoder_flavor.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e48386a93abacc281d0be9271235411a248960ddb33120067299012e32beea89
3
+ size 594
encoder_topping.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dec3f14ffe95d20902b4575630f61c8276a8a9537fdd41cbc0f265c9064384b6
3
+ size 563
input_encoders.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:695f76247033661a613c1da75ebcc6fb27854c52f5e8215fa9899cd685986864
3
+ size 1856
random_forest_model_drink.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:13ae7cf3a611ed9ec50c79716481b8f8253ee060b6743ba85d9c3399a98eff1c
3
+ size 8481105
random_forest_model_flavor.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e572b8564b02f822d32a8f3c68c1544a3ce24cb3f98cc17d302ccba905a015b1
3
+ size 10586497
random_forest_model_topping.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ca163d8c571c79cac7316304cc9e4d424fe23fa99a14393116e59b12f6a95e1d
3
+ size 8121889