252106862eder commited on
Commit
6eaef4e
·
verified ·
1 Parent(s): 5e29983

Update model_utils.py

Browse files
Files changed (1) hide show
  1. model_utils.py +12 -8
model_utils.py CHANGED
@@ -387,16 +387,16 @@ class ChurnModelPipeline:
387
  latex_story.append(NoEscape(r'\textbf{Passos do Cálculo para o Cliente "Simulado":}\n'))
388
  latex_story.append(NoEscape(r'\begin{enumerate}'))
389
  latex_story.append(NoEscape(fr'\item \textbf{{Calcular o Logit (L):}} O Logit é a soma ponderada de todas as características do cliente (já processadas pelo pré-processador do modelo) multiplicadas por seus respectivos coeficientes, mais o intercepto do modelo. Para o cliente simulado, o modelo calculou um Logit de:'))
390
- latex_story.append(Math(data=[NoEscape(fr'L = {logit_sample_formatted}')]))
391
 
392
  markdown_story.append(f"2. **Calcular a Probabilidade de Churn (P) usando a função Sigmoide:** A probabilidade é obtida aplicando-se a função sigmoide ao valor de `L`:\n`P(Churn) = 1 / (1 + e^(-L))`\n`P(Churn) = 1 / (1 + e^(-({logit_sample_formatted})))`\n`P(Churn) = 1 / (1 + e^{{-{logit_sample_formatted}}})`\n`P(Churn) ≈ {prob_sample_formatted}`\n")
393
 
394
  # LaTeX for Probability calculation
395
  latex_story.append(NoEscape(r'\item \textbf{Calcular a Probabilidade de Churn (P) usando a função Sigmoide:} A probabilidade é obtida aplicando-se a função sigmoide ao valor de $L$:'))
396
- latex_story.append(Math(data=[NoEscape(r'P(\text{Churn}) = \frac{1}{1 + e^{-L}}')]))
397
- latex_story.append(Math(data=[NoEscape(fr'P(\text{Churn}) = \frac{{1}}{{1 + e^{{-({logit_sample_formatted})}}}}')]))
398
- latex_story.append(Math(data=[NoEscape(fr'P(\text{Churn}) = \frac{{1}}{{1 + e^{{-{logit_sample_formatted}}}}}}')]))
399
- latex_story.append(Math(data=[NoEscape(fr'P(\text{Churn}) \approx {prob_sample_formatted}')]))
400
  latex_story.append(NoEscape(r'\end{enumerate}\n'))
401
 
402
  markdown_story.append(f"**Resultado da Simulação para o Cliente 'Simulado':**\n")
@@ -443,10 +443,14 @@ class ChurnModelPipeline:
443
  f'Um valor de {recall_value:.2f}\% significa que essa porcentagem de clientes que de fato deram churn foi corretamente identificada pelo modelo.'
444
  )
445
  latex_story.append(NoEscape(recall_text_latex + '\n'))
446
- # Fim das correções
447
 
448
- markdown_story.append(f"- **F1-Score ({self.metrics_dict.get('F1-Score', 0):.4f}):** É a média harmônica entre Precisão e Recall, útil quando um desequilíbrio de classes e você precisa de um balanço entre identificar corretamente e não levantar falsos alarmes.\n")
449
- latex_story.append(NoEscape(fr'\item \textbf{{F1-Score ({self.metrics_dict.get("F1-Score", 0):.4f})}}: É a média harmônica entre Precisão e Recall, útil quando há um desequilíbrio de classes e você precisa de um balanço entre identificar corretamente e não levantar falsos alarmes.' + '\n'))
 
 
 
 
 
450
 
451
  latex_story.append(NoEscape(r'\end{itemize}' + '\n\n'))
452
  else:
 
387
  latex_story.append(NoEscape(r'\textbf{Passos do Cálculo para o Cliente "Simulado":}\n'))
388
  latex_story.append(NoEscape(r'\begin{enumerate}'))
389
  latex_story.append(NoEscape(fr'\item \textbf{{Calcular o Logit (L):}} O Logit é a soma ponderada de todas as características do cliente (já processadas pelo pré-processador do modelo) multiplicadas por seus respectivos coeficientes, mais o intercepto do modelo. Para o cliente simulado, o modelo calculou um Logit de:'))
390
+ latex_story.append(Math(data=[NoEscape(r'L = ' + logit_sample_formatted)])) # Alteração aqui!
391
 
392
  markdown_story.append(f"2. **Calcular a Probabilidade de Churn (P) usando a função Sigmoide:** A probabilidade é obtida aplicando-se a função sigmoide ao valor de `L`:\n`P(Churn) = 1 / (1 + e^(-L))`\n`P(Churn) = 1 / (1 + e^(-({logit_sample_formatted})))`\n`P(Churn) = 1 / (1 + e^{{-{logit_sample_formatted}}})`\n`P(Churn) ≈ {prob_sample_formatted}`\n")
393
 
394
  # LaTeX for Probability calculation
395
  latex_story.append(NoEscape(r'\item \textbf{Calcular a Probabilidade de Churn (P) usando a função Sigmoide:} A probabilidade é obtida aplicando-se a função sigmoide ao valor de $L$:'))
396
+ latex_story.append(Math(data=[NoEscape(r'P(\text{Churn}) = \frac{1}{1 + e^{-L}}')])) # Alteração aqui!
397
+ latex_story.append(Math(data=[NoEscape(r'P(\text{Churn}) = \frac{1}{1 + e^{-(' + logit_sample_formatted + r')}}')])) # Alteração aqui!
398
+ latex_story.append(Math(data=[NoEscape(r'P(\text{Churn}) = \frac{1}{1 + e^{-' + logit_sample_formatted + r'}}')])) # Alteração aqui!
399
+ latex_story.append(Math(data=[NoEscape(r'P(\text{Churn}) \approx ' + prob_sample_formatted)])) # Alteração aqui!
400
  latex_story.append(NoEscape(r'\end{enumerate}\n'))
401
 
402
  markdown_story.append(f"**Resultado da Simulação para o Cliente 'Simulado':**\n")
 
443
  f'Um valor de {recall_value:.2f}\% significa que essa porcentagem de clientes que de fato deram churn foi corretamente identificada pelo modelo.'
444
  )
445
  latex_story.append(NoEscape(recall_text_latex + '\n'))
 
446
 
447
+ # F1-Score - Ajustando para o novo padrão de concatenação se necessário, ou mantendo f-string se for simples
448
+ f1_value = self.metrics_dict.get('F1-Score', 0)
449
+ f1_text_latex = (
450
+ f'\item \textbf{{F1-Score ({f1_value:.4f})}}: '
451
+ r'É a média harmônica entre Precisão e Recall, útil quando há um desequilíbrio de classes e você precisa de um balanço entre identificar corretamente e não levantar falsos alarmes.'
452
+ )
453
+ latex_story.append(NoEscape(f1_text_latex + '\n'))
454
 
455
  latex_story.append(NoEscape(r'\end{itemize}' + '\n\n'))
456
  else: