Spaces:
Runtime error
Runtime error
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") | |
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() |