Spaces:
Runtime error
Runtime error
import gradio as gr | |
import pandas as pd | |
from joblib import load | |
def humands(Sex,Age,Married,Monthlyincome,TotalWorkingYears,DistanceFromHome,Overtime,YearsAtCompany,NumCompaniesWorked): | |
model = load('modelo_entrenado.pkl') | |
df = pd.DataFrame.from_dict( | |
{ | |
"MonthlyIncome" : [Monthlyincome], | |
"Age" : [Age], | |
"TotalWorkingYears" : [TotalWorkingYears], | |
"DailyRate" : [Monthlyincome*2/30], | |
"HourlyRate" : [Monthlyincome*2/1640], | |
"DistanceFromHome" : [DistanceFromHome], | |
"OverTime_Yes" : [1 if Overtime else 0], | |
"OverTime_No" : [1 if not Overtime else 0], | |
"YearsAtCompany" : [YearsAtCompany], | |
"MonthlyRate" : [Monthlyincome*2], | |
"NumCompaniesWorked" : [NumCompaniesWorked], | |
"PercentSalaryHike" : [15], | |
"YearsInCurrentRole" : [YearsAtCompany-1], | |
"YearsWithCurrManager" : [YearsAtCompany-1], | |
"StockOptionLevel" : [1], | |
"YearsSinceLastPromotion" : [YearsAtCompany-1], | |
"JobSatisfaction" : [2], | |
"JobLevel" : [3], | |
"TrainingTimesLastYear" : [0], | |
"EnvironmentSatisfaction" : [2], | |
"WorkLifeBalance" : [2], | |
"MaritalStatus_Single" : [1 if Married==0 else 0], | |
"JobInvolvement" : [2], | |
"RelationshipSatisfaction" : [Married+1], | |
"Education" : [2], | |
"BusinessTravel_Travel_Frequently" : [1 if Overtime else 0], | |
"JobRole_Sales Representative" : [0], | |
"EducationField_Medical" : [0], | |
"Department_Sales" : [0], | |
"JobRole_Laboratory Technician" : [0], | |
"Department_Research & Development" : [1], | |
"Gender_Female" : [1 if Sex==0 else 0], | |
"MaritalStatus_Married" : [1 if Married==1 else 0], | |
"JobRole_Sales Executive" : [0], | |
"EducationField_Technical Degree" : [1], | |
"Gender_Male" : [1 if Sex==1 else 0], | |
"EducationField_Life Sciences" : [0], | |
"BusinessTravel_Travel_Rarely" : [0], | |
"MaritalStatus_Divorced" : [1 if Married==2 else 0], | |
"JobRole_Research Scientist" : [1], | |
"EducationField_Marketing" : [0], | |
"PerformanceRating" : [3], | |
"EducationField_Other" : [0], | |
"JobRole_Human Resources" : [0], | |
"BusinessTravel_Non-Travel" : [1 if not Overtime else 0], | |
"Department_Human Resources" : [0], | |
"JobRole_Manufacturing Director" : [0], | |
"JobRole_Healthcare Representative" : [0], | |
"EducationField_Human Resources" : [0], | |
"JobRole_Manager" : [0], | |
"JobRole_Research Director" : [0], | |
} | |
) | |
columnas = ['Age', 'DailyRate', 'DistanceFromHome', 'Education', | |
'EnvironmentSatisfaction', 'HourlyRate', 'JobInvolvement', 'JobLevel', | |
'JobSatisfaction', 'MonthlyIncome', 'MonthlyRate', 'NumCompaniesWorked', | |
'PercentSalaryHike', 'PerformanceRating', 'RelationshipSatisfaction', | |
'StockOptionLevel', 'TotalWorkingYears', 'TrainingTimesLastYear', | |
'WorkLifeBalance', 'YearsAtCompany', 'YearsInCurrentRole', | |
'YearsSinceLastPromotion', 'YearsWithCurrManager', | |
'BusinessTravel_Non-Travel', 'BusinessTravel_Travel_Frequently', | |
'BusinessTravel_Travel_Rarely', 'Department_Human Resources', | |
'Department_Research & Development', 'Department_Sales', | |
'EducationField_Human Resources', 'EducationField_Life Sciences', | |
'EducationField_Marketing', 'EducationField_Medical', | |
'EducationField_Other', 'EducationField_Technical Degree', | |
'Gender_Female', 'Gender_Male', 'JobRole_Healthcare Representative', | |
'JobRole_Human Resources', 'JobRole_Laboratory Technician', | |
'JobRole_Manager', 'JobRole_Manufacturing Director', | |
'JobRole_Research Director', 'JobRole_Research Scientist', | |
'JobRole_Sales Executive', 'JobRole_Sales Representative', | |
'MaritalStatus_Divorced', 'MaritalStatus_Married', | |
'MaritalStatus_Single', 'OverTime_No', 'OverTime_Yes'] | |
df = df.reindex(columns=columnas) | |
pred = model.predict(df)[0] | |
if pred == "Yes": | |
predicted1="Estamos ante un trabajador con alto nivel de desgaste del trabajo. Habría que plantearse alguna acción." | |
predicted2="stressed_image.jpg" | |
else: | |
predicted1="Estamos ante un trabajador con un nivel bajo de desgaste del trabajo. Se ha de seguir así." | |
predicted2="ok_image2.jpg" | |
return [predicted1,predicted2] | |
iface = gr.Interface( | |
humands, | |
[ | |
gr.Radio(["Mujer","Hombre"],type = "index",label="Sexo"), | |
gr.inputs.Slider(18,70,1,label="Edad del trabajador"), | |
gr.Radio(["Soltero","Casado","Divorciado"],type = "index",label="Esstado civil:"), | |
gr.inputs.Slider(1000,20000,1,label="Ingresos mensuales del trabajador"), | |
gr.inputs.Slider(0,40,1,label="Total de años trabajados del trabajador"), | |
gr.inputs.Slider(0,100,1,label="Distancia del trabajo al domicilio en Km"), | |
gr.Checkbox(label="¿Realiza horas extras habitualmente?"), | |
gr.inputs.Slider(0,40,1,label="Años del trabajador en la empresa"), | |
gr.inputs.Slider(0,40,1,label="Numero de empresas en las que ha estado el trabajador"), | |
], | |
["text",gr.Image(type='filepath')], | |
examples=[ | |
["Mujer",33,"Soltero",2917,9,1,False,9,1], | |
["Hombre",42,"Casado",3111,16,5,False,7,3], | |
["Hombre",50,"Divorciado",1732,20,50,True,3,3], | |
["Mujer",25,"Soltero",2556,6,58,True,2,4], | |
], | |
interpretation="default", | |
title = 'HUMANDS: Inteligencia artificial para empleados', | |
description = 'Uno de los motivos por los que las organizaciones pierden a sus empleados es la insatisfacción laboral, por ello, nuestro objetivo es predecir el verdadero nivel de desgaste de los empleados dentro de una organización mediante Inteligencia Artificial. Para saber más: https://saturdays.ai/2021/12/31/inteligencia-artificial-empleados/', | |
theme = 'peach' | |
) | |
iface.launch() |