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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -10
app.py CHANGED
@@ -2,9 +2,8 @@ import gradio as gr
2
  import joblib
3
  import numpy as np
4
 
5
- # Carregar o modelo treinado, encoder e objetos de binning da raiz do projeto
6
  model = joblib.load("tiebreak_model_v1b.pkl")
7
- encoder = joblib.load("ordinal_encoder_tiebreak_model_v1b.pkl")
8
  binning_mean_log_odds = joblib.load("Mean_Log_Odds_binning_tiebreak_model_v1b.pkl")
9
  binning_sum_prob = joblib.load("Sum_Prob_binning_tiebreak_model_v1b.pkl")
10
 
@@ -13,7 +12,7 @@ best_threshold = 0.9400000000000005
13
 
14
  # Função para realizar a previsão
15
  def predict_tiebreak(odds1_input, odds2_input):
16
- # Converter as odds para o formato float e garantir que as virgulas sejam substituídas por pontos
17
  odds1 = float(str(odds1_input).replace(',', '.'))
18
  odds2 = float(str(odds2_input).replace(',', '.'))
19
 
@@ -25,14 +24,12 @@ def predict_tiebreak(odds1_input, odds2_input):
25
  sum_prob = (1 / odds_min) + (1 / odds_max)
26
 
27
  # Aplicar binning nas métricas
28
- mean_log_odds_bin = binning_mean_log_odds.transform(np.array([[mean_log_odds]]), metric="bins")
29
- sum_prob_bin = binning_sum_prob.transform(np.array([[sum_prob]]), metric="bins")
30
 
31
- # Codificar as variáveis binadas
32
- encoded_features = encoder.transform(np.column_stack((mean_log_odds_bin, sum_prob_bin)))
33
-
34
- # Criar o vetor de features para o modelo
35
- features = np.array([[encoded_features[0], encoded_features[1], odds_ratio]])
36
 
37
  # Realizar a previsão com o modelo
38
  raw_prob = model.predict_proba(features)[0, 1] # Probabilidade da classe 1 (menos de 1.5 tiebreaks)
 
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
 
 
12
 
13
  # Função para realizar a previsão
14
  def predict_tiebreak(odds1_input, odds2_input):
15
+ # Converter as odds para o formato float e garantir que as vírgulas sejam substituídas por pontos
16
  odds1 = float(str(odds1_input).replace(',', '.'))
17
  odds2 = float(str(odds2_input).replace(',', '.'))
18
 
 
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)