GeorgyVlasov commited on
Commit
15604af
1 Parent(s): f943d62

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +148 -0
app.py ADDED
@@ -0,0 +1,148 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ '''
2
+ cd h2o-3.42.0.2
3
+ java -jar h2o.jar
4
+ http://localhost:54321
5
+ source h20env/bin/activate
6
+ jupyter notebook
7
+
8
+
9
+ '''
10
+
11
+ import h2o
12
+ import pandas as pd
13
+ import matplotlib as plt
14
+ import gradio as gr
15
+ import random
16
+ plt.use("Agg")
17
+
18
+ h2o.init()
19
+
20
+ gbm_saved_model = h2o.load_model('/mnt/c/Users/MI/Documents/Machine learning/retention_automl/GBM_2_AutoML_1_20230812_124802')
21
+
22
+
23
+ def predict(*args):
24
+ df = pd.DataFrame([list(args)], columns=['department','promoted','review','projects','salary','tenure','satisfaction','bonus','avg_hrs_month'])
25
+ x = h2o.H2OFrame(df)
26
+ pos_pred = gbm_saved_model.predict(x)
27
+ #str(pos_pred)
28
+ return (pos_pred.as_data_frame())
29
+
30
+
31
+
32
+
33
+ unique_department = ['IT',
34
+ 'admin',
35
+ 'engineering',
36
+ 'finance',
37
+ 'logistics',
38
+ 'marketing',
39
+ 'operations',
40
+ 'retail',
41
+ 'sales',
42
+ 'support']
43
+
44
+ unique_salary = ['high', 'low', 'medium']
45
+
46
+ with gr.Blocks() as demo:
47
+ gr.Markdown("""
48
+ **Employee leave probability prediction using H2O AutoML demo app**.
49
+ Data set used - https://www.kaggle.com/datasets/marikastewart/employee-turnover .
50
+ Jupyter Notebook is available at *Files* tab
51
+ """)
52
+ with gr.Row():
53
+ with gr.Column():
54
+
55
+
56
+ department = gr.Dropdown(
57
+ label="Department",
58
+ choices=unique_department,
59
+ value=lambda: random.choice(unique_department),
60
+ )
61
+
62
+ promoted = gr.Number(
63
+
64
+ label="Promoted",
65
+ minimum=0.0,
66
+ maximum=1.0
67
+
68
+ )
69
+
70
+ review = gr.Slider(label="Review", minimum=0, maximum=1, step=0.01, randomize=True)
71
+
72
+ # review = gr.Number(
73
+ # label="Review",
74
+ # minimum=0.0,
75
+ # maximum=1.0
76
+ # )
77
+
78
+ projects = gr.Number(
79
+ label="Projects",
80
+ minimum=0.0,
81
+ maximum=30.0
82
+
83
+ )
84
+
85
+ salary = gr.Dropdown(
86
+ label="salary",
87
+ choices=unique_salary,
88
+ value=lambda: random.choice(unique_salary),
89
+ )
90
+
91
+ tenure = gr.Number(
92
+ label="Tenure",
93
+ minimum=0.0,
94
+ maximum=50.0
95
+ )
96
+
97
+ satisfaction = gr.Slider(label="Satisfaction", minimum=0, maximum=1, step=0.01, randomize=True)
98
+
99
+ # satisfaction = gr.Number(
100
+ # label="Satisfaction",
101
+ # minimum=0.0,
102
+ # maximum=1.0
103
+ # )
104
+
105
+ bonus = gr.Number(
106
+
107
+ label="Bonus",
108
+ minimum=0.0,
109
+ maximum=1.0
110
+
111
+ )
112
+
113
+ avg_hrs_month = gr.Number(
114
+ label="Avg_hrs_month",
115
+ minimum=0.0,
116
+ maximum=500.0
117
+ )
118
+
119
+
120
+
121
+
122
+ with gr.Column():
123
+ label = gr.Dataframe()
124
+
125
+ with gr.Row():
126
+ predict_btn = gr.Button(value="Predict")
127
+
128
+ predict_btn.click(
129
+ predict,
130
+
131
+ inputs=[
132
+ department,
133
+ promoted,
134
+ review,
135
+ projects,
136
+ salary,
137
+ tenure,
138
+ satisfaction,
139
+ bonus,
140
+ avg_hrs_month
141
+ ],
142
+
143
+
144
+ outputs=[label],
145
+ )
146
+
147
+
148
+ demo.launch()