Spaces:
Sleeping
Sleeping
Update model_utils.py
Browse files- 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(
|
| 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(
|
| 398 |
-
latex_story.append(Math(data=[NoEscape(
|
| 399 |
-
latex_story.append(Math(data=[NoEscape(
|
| 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 |
-
|
| 449 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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:
|