# -*- coding: utf-8 -*- """Untitled6.ipynb Automatically generated by Colaboratory. Original file is located at https://colab.research.google.com/github/kdemertzis/Earthquakes/blob/main/GRADIO-Classification_ROW_FORM_BARE.ipynb """ #pip install pycaret #pip install gradio #pip install pyyaml==5.4.1 """ Import library """ ##-- PyCaret import pycaret from pycaret.classification import * ##-- Pandas import pandas as pd from pandas import Series, DataFrame ##-- Scikit-learn import sklearn from string import ascii_letters import numpy as np import seaborn as sns import matplotlib.pyplot as plt ##-- Gradio import gradio as gr import warnings warnings.simplefilter(action='ignore', category=FutureWarning) url = 'https://raw.githubusercontent.com/kdemertzis/Earthquakes/main/Data/Gradio/1_3class.csv' # load the dataset df = pd.read_csv(url) # setup the dataset grid = setup(data=df, target=df.columns[-1], html=False, silent=True, verbose=False) df.describe() best = compare_models(cross_validation=True, n_select = 10, turbo=True) compare_model_results = pull() len(best) 10 print(best[:5]) # creating a predict function to be passed into gradio UI def predict(model, HI, PGA, VMAX, ASI, TSIGN, TBRAC, PP, CAV, SED, TUD, EPA, PGV, PGD, IA, HTOT, ECC, VW1, VW2): df = pd.DataFrame.from_dict({'HI': [HI], 'PGA': [PGA], 'VMAX': [VMAX], 'ASI': [ASI], 'TSIGN': [TSIGN], 'TBRAC': [TBRAC], 'PP': [PP], 'CAV': [CAV], 'SED': [SED], 'TUD': [TUD], 'EPA': [EPA], 'PGV': [PGV], 'PGD': [PGD], 'IA': [IA], 'HTOT': [HTOT], 'ECC': [ECC], 'VW1': [VW1], 'VW2': [VW2]}) model_index = list(compare_model_results['Model']).index(model) model = best[model_index] pred = predict_model(model, df, raw_score=True) return {'Slight': pred['Score_A'][0].astype('float64'), 'Moderate': pred['Score_B'][0].astype('float64' ), 'Heavy': pred['Score_C'][0].astype('float64')} title="Classification of Buildings' Seismic Damage by ML Techniques" model = gr.inputs.Dropdown(list(compare_model_results['Model']),label="Model") HI = gr.inputs.Slider(minimum=-1, maximum=1, default=df['HI'].mean(), label="HI") PGA = gr.inputs.Slider(minimum=-1, maximum=1, default=df['PGA'].mean(), label="PGA") VMAX = gr.inputs.Slider(minimum=-1, maximum=1, default=df['VMAX'].mean(), label="VMAX") ASI = gr.inputs.Slider(minimum=-1, maximum=1, default=df['ASI'].mean(), label="ASI") TSIGN = gr.inputs.Slider(minimum=-1, maximum=1, default=df['TSIGN'].mean(), label="TSIGN") TBRAC = gr.inputs.Slider(minimum=-1, maximum=1, default=df['TBRAC'].mean(), label="TBRAC") PP = gr.inputs.Slider(minimum=-1, maximum=1, default=df['PP'].mean(), label="PP") CAV = gr.inputs.Slider(minimum=-1, maximum=1, default=df['CAV'].mean(), label="CAV") SED = gr.inputs.Slider(minimum=-1, maximum=1, default=df['SED'].mean(), label="SED") TUD = gr.inputs.Slider(minimum=-1, maximum=1, default=df['TUD'].mean(), label="TUD") EPA = gr.inputs.Slider(minimum=-1, maximum=1, default=df['EPA'].mean(), label="EPA") PGV = gr.inputs.Slider(minimum=-1, maximum=1, default=df['PGV'].mean(), label="PGV") PGD = gr.inputs.Slider(minimum=-1, maximum=1, default=df['PGD'].mean(), label="PGD") IA = gr.inputs.Slider(minimum=-1, maximum=1, default=df['IA'].mean(), label="IA") HTOT = gr.inputs.Slider(minimum=-1, maximum=1, default=df['HTOT'].mean(), label="HTOT") ECC = gr.inputs.Slider(minimum=-1, maximum=1, default=df['ECC'].mean(), label="ECC") VW1 = gr.inputs.Slider(minimum=-1, maximum=1, default=df['VW1'].mean(), label="VW1") VW2 = gr.inputs.Slider(minimum=-1, maximum=1, default=df['VW2'].mean(), label="VW2") gr.Interface(predict,[model, HI, PGA, VMAX, ASI, TSIGN, TBRAC, PP, CAV, SED, TUD, EPA, PGV, PGD, IA, HTOT, ECC, VW1, VW2], "label", title=title, live=True).launch()