joaomaia commited on
Commit
8fe9115
·
verified ·
1 Parent(s): 9fd6b10

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -5
app.py CHANGED
@@ -1,11 +1,14 @@
1
  import gradio as gr
2
  import joblib
3
  import numpy as np
 
 
4
 
5
  # Carregar o modelo treinado e objetos de binning da raiz do projeto
6
  model = joblib.load("tiebreak_model_v1b.pkl")
7
  binning_mean_log_odds = joblib.load("Mean_Log_Odds_binning_tiebreak_model_v1b.pkl")
8
  binning_sum_prob = joblib.load("Sum_Prob_binning_tiebreak_model_v1b.pkl")
 
9
 
10
  # Definir o melhor threshold encontrado
11
  best_threshold = 0.9400000000000005
@@ -24,12 +27,17 @@ def predict_tiebreak(odds1_input, odds2_input):
24
  sum_prob = (1 / odds_min) + (1 / odds_max)
25
 
26
  # Aplicar binning nas métricas
27
- mean_log_odds_bin = binning_mean_log_odds.transform([[mean_log_odds]], metric="bins")[0]
28
- sum_prob_bin = binning_sum_prob.transform([[sum_prob]], metric="bins")[0]
29
 
30
- # Substituir o uso de OrdinalEncoder por uma transformação manual baseada nos bins
31
- # Aqui simplesmente usamos os valores binados diretamente, assumindo que eles já estão na forma necessária.
32
- features = np.array([[mean_log_odds_bin, sum_prob_bin, odds_ratio]])
 
 
 
 
 
33
 
34
  # Realizar a previsão com o modelo
35
  raw_prob = model.predict_proba(features)[0, 1] # Probabilidade da classe 1 (menos de 1.5 tiebreaks)
 
1
  import gradio as gr
2
  import joblib
3
  import numpy as np
4
+ import pandas as pd
5
+ from sklearn.preprocessing import OrdinalEncoder
6
 
7
  # Carregar o modelo treinado e objetos de binning da raiz do projeto
8
  model = joblib.load("tiebreak_model_v1b.pkl")
9
  binning_mean_log_odds = joblib.load("Mean_Log_Odds_binning_tiebreak_model_v1b.pkl")
10
  binning_sum_prob = joblib.load("Sum_Prob_binning_tiebreak_model_v1b.pkl")
11
+ encoder = joblib.load("ordinal_encoder_tiebreak_model_v1b.pkl") # Carregue o encoder treinado
12
 
13
  # Definir o melhor threshold encontrado
14
  best_threshold = 0.9400000000000005
 
27
  sum_prob = (1 / odds_min) + (1 / odds_max)
28
 
29
  # Aplicar binning nas métricas
30
+ mean_log_odds_bin = binning_mean_log_odds.transform([[mean_log_odds]], metric="bins")[0][0]
31
+ sum_prob_bin = binning_sum_prob.transform([[sum_prob]], metric="bins")[0][0]
32
 
33
+ # Preparar os dados para a predição
34
+ bin_features = np.array([[mean_log_odds_bin, sum_prob_bin]])
35
+
36
+ # Aplicar o OrdinalEncoder nas features binadas
37
+ encoded_features = encoder.transform(bin_features)
38
+
39
+ # Criar o vetor de features para o modelo
40
+ features = np.array([[encoded_features[0][0], encoded_features[0][1], odds_ratio]])
41
 
42
  # Realizar a previsão com o modelo
43
  raw_prob = model.predict_proba(features)[0, 1] # Probabilidade da classe 1 (menos de 1.5 tiebreaks)