File size: 5,583 Bytes
3587e2b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import pickle
import gradio as gr
def make_prediction(age1,gender1,occupation1,line_of_work1,time_bp1,time_dp1,travel_time1,easeof_online1,home_env1,prod_inc1,sleep_bal1,new_skill1,fam_connect1,relaxed1,self_time1,like_hw1,dislike_hw1,certaindays_hw1):
    #print(age1+gender1+occupation1+line_of_work1+time_bp1+time_dp1+travel_time1+easeof_online1+home_env1+prod_inc1+sleep_bal1+new_skill1+fam_connect1+relaxed1+self_time1+like_hw1+dislike_hw1+certaindays_hw1)
    print(age1+gender1+occupation1+line_of_work1+certaindays_hw1)
    if age1=="18":
        age1=int(1)
    elif age1=="19-25":
        age1=int(0)
    elif age1=="33-40":
        age1=int(2)
    elif age1=="60+":
        age1=int(3)
    elif age1=="26-32":
        age1=int(4)
    elif age1=="40-50":
        age1=int(5)
    else:   age1=int(6)
    print(str(age1))
    if gender1=="Male":
        gender1=int(0)
    elif gender1=="Female":
        gender1=int(1)
    else:   gender1=int(2)
    print(str(gender1))
    if occupation1=="Student in College":
        occupation1=int(0)
    elif occupation1=="Student in School":
        occupation1=int(1)
    elif occupation1=="Working Professional":
        occupation1=int(2)
    elif occupation1=="Entrepreneur":
        occupation1=int(3)
    elif occupation1=="Retired/Senior Citizen":
        occupation1=int(4)
    elif occupation1=="Homemaker":
        occupation1=int(5)
    else: occupation1=int(6)
    print(str(occupation1))
    if line_of_work1=="Teaching":
        line_of_work1=int(0)
    elif line_of_work1=="Engineering":
        line_of_work1=int(1)
    elif line_of_work1=="Management":
        line_of_work1=int(2)
    elif line_of_work1=="APSPDCL":
        line_of_work1=int(3)
    elif line_of_work1=="Architecture":
        line_of_work1=int(4)
    elif line_of_work1=="Other":
        line_of_work1=int(5)
    else: line_of_work1=int(6)
    print(str(line_of_work1)) 
    if certaindays_hw1=="Yes":
        certaindays_hw1=int(0)
    elif certaindays_hw1=="No":
        certaindays_hw1=int(1)
    else:   certaindays_hw1=int(2)
    print(str(certaindays_hw1))
    with open("covid_psyc_model.pkcls", "rb") as f:
		#Then feeds our data into the model, then sets the "preds" variable to the prediction output for our class variable, which is price.	
        clf  = pickle.load(f)
        preds=clf.predict([[age1,gender1,occupation1,line_of_work1,time_bp1,time_dp1,travel_time1,easeof_online1,home_env1,prod_inc1,sleep_bal1,new_skill1,fam_connect1,relaxed1,self_time1,like_hw1,dislike_hw1,certaindays_hw1]])
        if preds == 0:
            return "Complete Physical Attendance"
        elif preds== 1:
            return "Work/study from home"
        else:
            return "Please check and re-enter your inputs"
		#Finally, we send the prediction to the website.
        return preds
    
HasAge=gr.Dropdown(["18","19-25","26-32","33-40","40-50","50-60","60+"],label="Please select your age range")
HasGender=gr.Dropdown(["Male","Female","Prefer not to say"],label="Please select your gender")
HasOccupation=gr.Dropdown(["Student in College", "Student in School", "Working Professional",
    "Entrepreneur", "Retired/Senior Citizen", "Homemaker",
    "Currently Out of Work",
    "Medical Professional aiding efforts against COVID-19"],label="Please select your occupation")
HasLineOfWork=gr.Dropdown(["Teaching","Engineering","Management","APSPDCL","Architecture","Other","Government Employee"],label="Please select your line of work")
HasTimeBP=gr.Slider(minimum=4,maximum=12,step=1,label="How many hours before pandemic did the employee work?")
HasTimeDP=gr.Slider(minimum=4,maximum=12,step=1,label="How many hours after pandemic did the employee work?")
HasTravelTime=gr.Slider(minimum=0.5,maximum=3,step=0.5,label="How many hours does the employee travel for work?")
HasEaseOfOnline=gr.Slider(minimum=1,maximum=5,step=1,label="On a scale of 1-5, how easy does the employee find to work online?")
HasHomeEnv=gr.Slider(minimum=1,maximum=5,step=1,label="On a scale of 1-5, how comfortable is the employee in home environment?")
HasProdInc=gr.Slider(minimum=-1,maximum=1,step=0.5,label="On a scale of -1 to 1, how productive is the employee?")
HasSleepBal=gr.Slider(minimum=-1,maximum=1,step=0.5,label="On a scale of -1 to 1, how is the employee's sleep cycle?")
HasNewSkill=gr.Slider(minimum=-1,maximum=1,step=0.5,label="On a scale of -1 to 1, how likely is it that the employee learnt a new skill?")
HasFamConnect=gr.Slider(minimum=-1,maximum=1,step=0.5,label="On a scale of -1 to 1, how is the employee's family connection impacted?")
HasRelaxed=gr.Slider(minimum=-1,maximum=1,step=0.5,label="On a scale of -1 to 1, how relaxed does the employee feel?")
HasSelfTime=gr.Slider(minimum=-1,maximum=1,step=0.5,label="On a scale of -1 to 1, how likely does the employee feel the presence of self-time?")
HasLikeHW=gr.Slider(minimum=0,maximum=1,step=0.1,label="On a scale of 0 to 1, how much does the employee like working from home?")
HasDislikeHW=gr.Slider(minimum=0,maximum=1,step=0.1,label="On a scale of 0 to 1, how much does the employee dislike working from home?")
HasCertainDaysHW=gr.Dropdown(["Yes","No","Maybe"],label="Is the employee okay to work in a hybrid setting?")

output = gr.Textbox(label="Employee Preference Prediction:")

app = gr.Interface(fn = make_prediction, inputs=[HasAge,HasGender,HasOccupation,HasLineOfWork,HasTimeBP,HasTimeDP,HasTravelTime,HasEaseOfOnline,HasHomeEnv,HasProdInc,HasSleepBal,HasNewSkill,HasFamConnect,HasRelaxed,HasSelfTime,HasLikeHW,HasDislikeHW,HasCertainDaysHW], outputs=output)
app.launch()