FahadAlam's picture
Update app.py
c7e7fdf
import gradio as gr
import pandas as pd
from sklearn import datasets
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.preprocessing import LabelEncoder
def findCorrelation(dataset, target):
df = pd.read_csv(dataset.name)
non_numeric_cols = df.select_dtypes('object').columns.tolist()
if target in non_numeric_cols:
label_encoder = LabelEncoder()
df[non_numeric_col] = label_encoder.fit_transform(df[target])
d = df.corr()[target].to_dict()
d.pop(target)
keys = sorted(d.items(), key=lambda x: x[0], reverse=True)
fig1 = plt.figure()
hm = sns.heatmap(df.corr(), annot = True)
hm.set(title = "Correlation matrix of dataset\n")
try:
fig2 = plt.figure()
sns.regplot(x=df[keys[0][0]], y=df[target])
except:
fig2 = plt.figure()
try:
fig3 = plt.figure()
sns.regplot(x=df[keys[1][0]], y=df[target])
except:
fig3 = plt.figure()
try:
fig4 = plt.figure()
sns.regplot(x=df[keys[2][0]], y=df[target])
except:
fig4 = plt.figure()
return d, fig1, fig2, fig3, fig4
with gr.Blocks() as demo:
with gr.Row():
with gr.Column():
file = gr.File()
with gr.Column():
inp = gr.Textbox(placeholder="Enter the target feature name", label="Target Variable")
btn = gr.Button("Find Correlation")
gr.Markdown(
"""
## Correlation with other numeric features
""")
with gr.Row():
labels = gr.Label(num_top_classes = 10)
gr.Markdown(
"""
## HeatMap
""")
with gr.Row():
fig1 = gr.Plot()
gr.Markdown(
"""
## Plot of top 3 correlated features
""")
with gr.Row():
with gr.Column():
fig2 = gr.Plot()
with gr.Column():
fig3 = gr.Plot()
with gr.Row():
fig4 = gr.Plot()
with gr.Row():
gr.Examples(
examples = [["boston.csv", "MEDV"]], fn=findCorrelation, inputs=[file, inp], outputs=[labels, fig1, fig2, fig3, fig4], cache_examples=True)
btn.click( fn=findCorrelation, inputs=[file, inp], outputs=[labels, fig1, fig2, fig3, fig4])
demo.launch()