File size: 2,186 Bytes
fac37fe
 
 
 
 
956127b
fac37fe
d4e49b0
ca1de39
956127b
43ca9c2
956127b
43ca9c2
c408675
956127b
e1564de
6448874
351771b
68c8a8e
43855cb
956127b
 
6448874
fac37fe
d4e49b0
cdfa50b
4057e5d
 
 
 
 
d4e49b0
4057e5d
 
 
 
 
d4e49b0
4057e5d
 
 
 
 
 
50b9a9e
fac37fe
ca1de39
 
 
 
 
c7e7fdf
ca1de39
4eec90c
 
c7e7fdf
4eec90c
ca1de39
 
4eec90c
 
c7e7fdf
4eec90c
ca1de39
 
4eec90c
 
c7e7fdf
4eec90c
ca1de39
 
 
 
 
 
 
 
 
4eec90c
ca1de39
4057e5d
ca1de39
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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()