futebol / app.py
joaomaia's picture
Update app.py
e22cd7c verified
raw
history blame
2.55 kB
import gradio as gr
import joblib
import pandas as pd
# Carregar o modelo
model_LayAway = joblib.load('model_class_layaway_0.pkl')
model_LayHome = joblib.load('model_class_layhome_1.pkl')
def converter_para_float(valor):
# Substitui vírgula por ponto e converte para float
return float(valor.replace(',', '.'))
def fazer_previsao(ODD_H, ODD_D, ODD_A):
# Converter entradas para float
ODD_H = converter_para_float(ODD_H)
ODD_D = converter_para_float(ODD_D)
ODD_A = converter_para_float(ODD_A)
data = pd.DataFrame(
{'H/A': [ODD_H / ODD_A], 'Diff': [(ODD_H / ODD_D) - (ODD_H / ODD_A)]})
previsao_LayAway = model_LayAway.predict(data)[0]
previsao_LayHome = model_LayHome.predict(data)[0]
if previsao_LayAway == previsao_LayHome:
resultado = 'Não entre!'
else:
if previsao_LayAway == 1:
entrada_LayAway = 'SIM'
else:
entrada_LayAway = 'NAO'
probabilidade_LayAway = round(
100 * model_LayAway.predict_proba(data)[0][1], 2)
probabilidade_LayHome = round(
100 * model_LayHome.predict_proba(data)[0][1], 2)
if probabilidade_LayAway > 68.2:
entrada_Home = 'SIM'
else:
entrada_Home = 'NAO'
if (probabilidade_LayAway < 26.1) & (probabilidade_LayHome > 88.5):
entrada_Away = 'SIM'
else:
entrada_Away = 'NAO'
if previsao_LayHome == 1:
entrada_LayHome = 'SIM'
else:
entrada_LayHome = 'NAO'
resultado = f"entrada LayAway (se Odd> 1.17): {entrada_LayAway}\n" \
f"---> probabilidade: {probabilidade_LayAway}%\n" \
f"\n" \
f"entrada Home: {entrada_Home}\n" \
f"obs: Muito risco, apenas 67% de acerto (odds>1.489)\n" \
f"\n" \
f"entrada LayHome (se Odd> 1.28): {entrada_LayHome}\n" \
f"---> probabilidade: {probabilidade_LayHome}%\n" \
f"\n" \
return resultado
# Criar uma interface Gradio
iface = gr.Interface(
fn=fazer_previsao,
inputs=[gr.Textbox(label="Odds para CASA vencer"),
gr.Textbox(label="Odds para EMPATE"),
gr.Textbox(label="Odds para VISITANTE vencer")],
outputs="text",
title="Redução de Risco em Apostas",
description="Insira as Odds e obtenha uma sugestão para entradas LayAway (CASA vence ou EMPATA) e LayHome (VISITANTE vence ou EMPATA)."
)
iface.launch()