jaleesahmed's picture
app
786dd64
raw
history blame
2.71 kB
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn.preprocessing import LabelEncoder
import seaborn as sns
import gradio as gr
plt.switch_backend('Agg')
pd.options.display.max_columns = 25
pd.options.display.max_rows = 300
def outbreak(plot_type):
df = pd.read_csv('emp_experience_data.csv')
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])
if plot_type == "Find Data Correlation":
fig = plt.figure()
data_correlation = data_encoded.corr()
sns.heatmap(data_correlation, xticklabels = data_correlation.columns, yticklabels = data_correlation.columns)
return fig
if plot_type == "Filter Correlation Data":
fig = plt.figure()
filtered_df = df[['EmployeeExperience', 'EmployeeFeedbackSentiments', 'Age', 'SalarySatisfaction', 'BusinessTravel', 'HealthBenefitsSatisfaction']]
correlation_filter_data = filtered_df.corr()
sns.heatmap(correlation_filter_data, xticklabels = filtered_df.columns, yticklabels = filtered_df.columns)
return fig
if plot_type == "Age Attrition":
fig = plt.figure()
positive_attrition_df = data_encoded.loc[data_encoded['Attrition'] == "Yes"]
plt.hist(positive_attrition_df['Age'], bins=np.arange(0,80,10), alpha=0.8, rwidth=0.9, color='blue')
plt.xlabel("Age")
plt.ylabel("Count")
plt.title("Age vs Attrition")
return fig
if plot_type == "Distance Attrition":
fig = plt.figure()
positive_attrition_df = data_encoded.loc[data_encoded['Attrition'] == "Yes"]
plt.hist(positive_attrition_df['DistanceFromHome'], bins=np.arange(0,80,10), alpha=0.8, rwidth=0.9, color='green')
plt.xlabel("Distance From Home")
plt.ylabel("Count")
plt.title("Distance vs Attrition")
return fig
inputs = [
gr.Dropdown(["Find Data Correlation", "Filter Correlation Data", "Age Attrition", "Distance Attrition"], label="Data Correlation and Visualization")
]
outputs = gr.Plot()
demo = gr.Interface(
fn = outbreak,
inputs = inputs,
outputs = outputs,
title="Employee-Experience: Data Correlation and Pattern Visualization",
allow_flagging=False
)
if __name__ == "__main__":
demo.launch()