Spaces:
No application file
No application file
import gradio as gr | |
from pathlib import Path | |
import os | |
import pandas as pd | |
import xgboost | |
# Comentario | |
print("Comentario.") | |
input_1 = gr.Slider(minimum=0, maximum=80, | |
value=22, | |
label="Edad_del_comprador", info="Colocar una edad") | |
input_2 = gr.Radio(['Youth (<25)', 'Adults (35-64)', 'Young Adults (25-34)', 'Seniors (64+)'], | |
value="Youth (<25)", | |
label="Grupo_de_edad", info="Seleccionar una opci贸n") | |
input_3 = gr.Radio(['M', 'F'], | |
value="M", | |
label="Genero_del_cliente", info="Seleccionar una opci贸n") | |
input_4 = gr.Radio(['Canada', 'Australia', 'United States', 'Germany', 'France', 'United Kingdom'], | |
value="United States", | |
label="Pais", info="Seleccionar una opci贸n") | |
input_5 = gr.Radio(['British Columbia', 'New South Wales', 'Victoria', 'Oregon', 'California', | |
'Saarland', 'Seine Saint Denis', 'Moselle', 'Queensland', 'England', 'Nord', | |
'Washington', 'Hessen', 'Nordrhein-Westfalen', 'Hamburg', 'Loir et Cher', | |
'Kentucky', 'Seine (Paris)', 'South Australia', 'Loiret', 'Alberta', 'Bayern', | |
'Hauts de Seine', 'Yveline', 'Essonne', "Val d'Oise", 'Tasmania', | |
'Seine et Marne', 'Val de Marne', 'Pas de Calais', 'Charente-Maritime', | |
'Garonne (Haute)', 'Brandenburg', 'Texas', 'New York', 'Florida', 'Somme', | |
'Illinois', 'South Carolina', 'North Carolina', 'Georgia', 'Virginia', 'Ohio', | |
'Ontario', 'Wyoming', 'Missouri', 'Montana', 'Utah', 'Minnesota', 'Mississippi', | |
'Massachusetts', 'Arizona', 'Alabama'], | |
value="California", | |
label="Estado", info="Seleccionar una opci贸n") | |
input_6 = gr.Radio(['Accessories', 'Clothing', 'Bikes'], | |
value="Bikes", | |
label="Categoria_del_producto", info="Seleccionar una opci贸n") | |
input_7 = gr.Radio(['Bike Racks', 'Bike Stands', 'Bottles and Cages', 'Caps', 'Cleaners', | |
'Fenders', 'Gloves', 'Helmets', 'Hydration Packs', 'Jerseys', 'Mountain Bikes', | |
'Road Bikes', 'Shorts', 'Socks', 'Tires and Tubes', 'Touring Bikes', 'Vests'], | |
value='Bike Racks', | |
label="Subcategor铆a_del_producto", info="Seleccionar una opci贸n") | |
input_8 = gr.Slider(minimum=1, maximum=40, | |
value=1, | |
label="Cantidad_de_pedidos_realizados", info="Colocar una opci贸n") | |
input_9 = gr.Slider(minimum=1, maximum=40, | |
value=1, | |
label="Precio_unitario", info="Colocar una opci贸n") | |
output_1 = gr.Textbox(label="Ingresos") | |
def predecir_ingreso(input_1, input_2, input_3, input_4, input_5, | |
input_6, input_7, input_8, input_9): | |
valores = { | |
'Edad_del_comprador':input_1, | |
'Grupo_de_edad':input_2, | |
'Genero_del_cliente':input_3, | |
'Pais':input_4, | |
'Estado':input_5, | |
'Categoria_del_producto':input_6, | |
'Subcategor铆a_del_producto':input_7, | |
'Cantidad_de_pedidos_realizados':input_8, | |
'Precio_unitario':input_9 | |
} | |
valores_df = pd.DataFrame() | |
valores_df = pd.concat([valores_df, pd.DataFrame([valores])], ignore_index=True) | |
valores_df["Grupo_de_edad"] = valores_df["Grupo_de_edad"].astype("category") | |
valores_df["Genero_del_cliente"] = valores_df["Genero_del_cliente"].astype("category") | |
valores_df["Pais"] = valores_df["Pais"].astype("category") | |
valores_df["Estado"] = valores_df["Estado"].astype("category") | |
valores_df["Categoria_del_producto"] = valores_df["Categoria_del_producto"].astype("category") | |
valores_df["Subcategor铆a_del_producto"] = valores_df["Subcategor铆a_del_producto"].astype("category") | |
# Cargar el modelo desde el archivo | |
model_file = f"{os.getcwd()}/modelo_xgboost.json" | |
print(model_file) | |
modelo_cargado = xgboost.Booster(model_file=model_file) | |
# Crear una matriz DMatrix para los nuevos datos | |
dmatrix_valores = xgboost.DMatrix(data=valores_df, enable_categorical=True) | |
# Realizar predicciones | |
predicciones = modelo_cargado.predict(dmatrix_valores)[0] | |
# Las predicciones se encuentran en el array 'predicciones' | |
print(predicciones) | |
return predicciones | |
# Interfaz Gradio | |
demo = gr.Interface( | |
fn=predecir_ingreso, | |
inputs=[input_1, input_2, input_3, input_4, input_5, | |
input_6, input_7, input_8, input_9], | |
outputs=output_1, | |
title="Practica 1 de Machine Learning", | |
) | |
demo.launch(debug=True) |