import gradio as gr from joblib import load import pandas as pd y_values = ['L', 'W'] y=pd.Series(y_values) y=y.astype('category') model=load('./model_SVM.joblib') #aquí indicamos cuál es el valor de las clases label_encoding=load('./label_classes.joblib') # aquí traemos el orden de clasificación de las categoría idx_labels=label_encoding.transform(y.cat.categories) # reordeno mis categorías con esos índices class_names=y.cat.categories[idx_labels] # aquí damos los valores de las categorías en el orden que teníamos guardados def run_my_model(tabla): #aquí ponemos que es solo una entrada pero es UNA TABLA la entrada # Proceso a realizar (modelo ML) X_new=tabla y_predict=model.predict(X_new)[0] # para que me quiten los corchetes del resultado debemos agregar el elemento 0 return "El resultado es: " + class_names[y_predict] # aquí indexamos el resultado del número de clase para que me arroje cuál es la categoría gui= gr.Interface( fn=run_my_model, inputs=gr.Dataframe( headers=['HOME/AWAY','WINS_DIFFERENTIAL','WINNING PERCENTAGE DIFFERENTIAL','AWAY WINS DIFFERENTIAL','WINS IN LAST 10 GAMES','WINS IN LAST 5 GAMES','BACK-TO-BACK'], # que me de todas excepto la última datatype=['str','number','number','number','number','number','str'], #lo tengo que poner tal cual lo quiero poner, la última que se llama obesidad no cuenta para nosotros #default=[X.iloc[0,:].tolist()],# esto es para que aparezca prerellenados los campos de entrada row_count=1, # aquí asignamos el # de renglones que pondremos en la tabla col_count=7), # aquí asignamos el # de columnas que pondremos en la tabla #aquí le hago para meter como inputs una tabla outputs="text", live=True, #significa que podemos producir el resultado de salida al tiempo que doy una entrada title='Nombre de servicio web' ) gui.launch()