Spaces:
Sleeping
Sleeping
File size: 1,822 Bytes
a103715 ed4b241 a103715 6bd018f dcbfdda 6bd018f dcbfdda 6bd018f ed4b241 dcbfdda ed4b241 a103715 ed4b241 a103715 ed4b241 6bd018f a103715 ed4b241 a103715 dcbfdda ed4b241 dcbfdda a103715 06ad1ac 9453a04 a103715 6bd018f |
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 |
import gradio as gr
import joblib
import numpy as np
# Carregar o novo modelo serializado
model = joblib.load("tiebreak_model_v1.pkl")
# Função para realizar a previsão
def predict_tiebreak(odds1_input, odds2_input):
# Converter vírgulas para pontos caso necessário
odds1_input = str(odds1_input).replace(',', '.')
odds2_input = str(odds2_input).replace(',', '.')
# Converter para float
odds1 = float(odds1_input)
odds2 = float(odds2_input)
# Identificar a menor e maior odd (não precisamos assumir qual é qual)
odds_min = min(odds1, odds2)
odds_max = max(odds1, odds2)
# Calculando as features com base nas novas métricas
odds_ratio = odds_min / odds_max
diff_log_odds = np.log(odds_max) - np.log(odds_min)
sum_prob = (1 / odds_min) + (1 / odds_max)
# Criando o vetor de features para o modelo
features = np.array([[odds_ratio, diff_log_odds, sum_prob]])
# Realizando a previsão com o novo modelo
raw_prob = model.predict_proba(features)[0, 1] # Probabilidade da classe 1 (menos de 1.5 tiebreaks)
# Calculando a odds mínima
odds_minima = 1 / raw_prob
# Formatando a probabilidade para percentual com duas casas decimais
prob_percent = f"{round(raw_prob * 100, 2)}%"
# Retornando os valores
return prob_percent, round(odds_minima, 2)
# Interface Gradio
inputs = [gr.Number(label="Odds 1"), gr.Number(label="Odds 2")]
outputs = [gr.Textbox(label="Probabilidade de menos de 1.5 Tiebreaks"), gr.Textbox(label="Odds Mínima")]
# Criação da interface
gr.Interface(fn=predict_tiebreak, inputs=inputs, outputs=outputs, title="Previsão de Tiebreaks",
description="Insira as odds para prever a probabilidade de haver menos de 1.5 tiebreaks e calcular as odds mínimas.").launch()
|