File size: 2,731 Bytes
2ca7885 bccc80c 2ca7885 857dd41 2ca7885 ffb01f6 2ca7885 7a9dc15 0d9c93e 2ca7885 65b5fd6 9315c89 86a2385 a0b3335 9315c89 a0b3335 2f744ab a0b3335 2fdcc14 7a9dc15 40d86da a52f655 5ba6644 a52f655 640f78e 7a9dc15 c93bb7e 662c051 025c1e3 86a2385 43f0558 7a9dc15 80e219a |
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 |
# Cargamos librerías
import pickle
import numpy as np
import gradio as gr
import sklearn
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import ExtraTreesRegressor
# You can use this block to train and save a model.
# Load the data
filename = 'Dataset_RCS_3.csv'
names0 = ['JET', "Suelo",'SPT', 'WtoC', 'Presion', 'Velocidad','RCS']
dataset=pd.read_csv(filename, names=names0)
# Dividimos el dataset en entrenamiento y test
y = dataset['RCS']
X = dataset.drop('RCS', axis=1)
# Categorical data
categorical_cols = ['JET', "Suelo"]
df = pd.get_dummies(X, columns = categorical_cols)
# Split the data into training and testing sets
validation_size = 0.20
seed = 10
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=validation_size, random_state=seed)
# Train the model
modelodef=ExtraTreesRegressor(
n_estimators=1000,
max_depth=9,
min_samples_leaf=1,
random_state=seed)
modelodef.fit(X_train, y_train)
# Save the model
pickle.dump(modelodef, open("modelodef.pkl", "wb"))
#create a function for gradio
def RCS(JET, Suelo,SPT, WtoC, Presion, Velocidad):
modelodef = pickle.load(open("modelodef.pkl", "rb"))
prediction0 = modelodef.predict([[JET, Suelo,SPT, WtoC, Presion, Velocidad]])
prediction = np.round(prediction0,2)
return prediction
title = "ASSESSMENT OF UNIAXIAL COMPRESSIVE STRENGTH OF JET GROUTING"
description = "This app corresponds to the research paper Machine learning as a solution to discover complex patterns: assessment of compressive strength of jet grouting"
article = """
Notes:
- Click submit/enviar button to obtain the UCS prediction
- Click clear/limpiar button to refresh text
- Please note the application ranges of the variables in the above referenced paper
- As decimal separator you can use either a point or a comma
"""
app = gr.Interface(
RCS,
inputs=[
gr.Radio(['1', '2', '3'], label="Jet system. 1:Single. 2:Double. 3:Triple",value="1"),
gr.Radio(['1', '2', '3', '4'], label="Soil type. 1:Coarse without fines. 2:Coarse with fines. 3:Fine. 4:Organic",value="1"),
gr.Number(value=1, label="Nspt"),
gr.Number(value=1, label="W/C"),
gr.Number(value=1, label="Grout pressure (MPa)"),
gr.Number(value=1, label="Rotation speed (rpm)"),
],
outputs=[gr.Text(label="UCS (MPa)")],
title=title,
description=description,
article = article,
theme="dark-seafoam"
)
app.launch() |