File size: 2,395 Bytes
20918ad
64a2aa9
 
 
 
 
 
20918ad
ce2a170
5c6f78e
64a2aa9
 
 
 
 
 
 
 
90f2a58
64a2aa9
 
ce2a170
1693da5
64a2aa9
 
 
5c6f78e
045b70a
 
447347b
045b70a
91c3097
447347b
045b70a
64a2aa9
c025e3c
a7afcc6
64a2aa9
982ddaf
64a2aa9
 
 
 
 
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
import gradio as gr
import pandas as pd
from sklearn.preprocessing import LabelEncoder
from sklearn.feature_selection import mutual_info_classif
from sklearn.feature_selection import chi2
from sklearn.linear_model import LinearRegression
import numpy as np


def update(array_value):
    df = pd.read_csv('emp_experience_data.csv')
    pd.options.display.max_columns = 25
    data_encoded = df.copy(deep=True)
    categorical_column = ['Attrition', 'Gender', 'BusinessTravel', 'Education', 'EmployeeExperience', 'EmployeeFeedbackSentiments', 'Designation',
                            'SalarySatisfaction', 'HealthBenefitsSatisfaction', 'UHGDiscountProgramUsage', 'HealthConscious', 'CareerPathSatisfaction', 'Region']
    label_encoding = LabelEncoder()
    for col in categorical_column:
        data_encoded[col] = label_encoding.fit_transform(data_encoded[col])

    data_selected = data_encoded[['EmployeeExperience', 'HealthBenefitsSatisfaction', 'SalarySatisfaction', 'Designation', 'HealthConscious',
                            'EmployeeFeedbackSentiments', 'Education', 'Gender', 'HoursOfTrainingAttendedLastYear', 'InternalJobMovement', 'Attrition']]

    validation_data = data_selected[100:198]
    validation_input_data = validation_data.drop(['Attrition'], axis=1)
    validation_target_data = validation_data[['Attrition']]
    reg = LinearRegression().fit(validation_input_data, validation_target_data)
    # In future pass data through array_value parameter
    if array_value == "2,2,1,3,1,2,0,1,40,1":
        prediction_value = reg.predict(np.array([[2,2,1,3,1,2,0,1,40,1]]))
        return f"Attrition Prediction : {prediction_value}!"
    if array_value == "0,0,0,3,0,2,0,1,2,1":
        prediction_value = reg.predict(np.array([[0,0,0,3,0,2,0,1,2,1]]))
        return f"Attrition Prediction : {prediction_value}!"

with gr.Blocks() as demo:
    gr.Markdown("*** Employee Experience Prediction ***")
    gr.Markdown("[EmployeeExperience, HealthBenefitsSatisfaction, SalarySatisfaction, Designation, HealthConscious, EmployeeFeedbackSentiments, Education, Gender, HoursOfTrainingAttendedLastYear, InternalJobMovement, Attrition]")
    with gr.Row():
        inp = gr.Dropdown(["2,2,1,3,1,2,0,1,40,1", "0,0,0,3,0,2,0,1,2,1"], label="Prediction Scenario:")
        out = gr.Textbox()
    btn = gr.Button("Run")
    btn.click(fn=update, inputs=inp, outputs=out)

demo.launch()