histlearn commited on
Commit
f715cf9
·
verified ·
1 Parent(s): eef5160

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -11
app.py CHANGED
@@ -476,33 +476,41 @@ class ReportGenerator:
476
  raise
477
 
478
  def _add_insights_section(self, pdf: FPDF) -> None:
479
- """Adiciona uma nova seção de insights principais."""
480
  pdf.set_font('Arial', 'B', 14)
481
  pdf.set_fill_color(240, 240, 240)
482
  pdf.cell(0, 10, 'Insights Principais', 0, 1, 'L', True)
483
  pdf.ln(5)
484
-
485
  pdf.set_font('Arial', '', 11)
486
-
487
  # Calcular métricas avançadas
488
- taxa_aproveitamento = self.data['Acertos Absolutos'].sum() / self.data['Tarefas Completadas'].sum()
 
 
 
 
 
 
 
 
 
489
  alunos_eficientes = self.data[
490
- (self.data['Acertos Absolutos'] / self.data['Tarefas Completadas'] > taxa_aproveitamento) &
491
- (pd.to_timedelta(self.data['Total Tempo']).dt.total_seconds() <
492
- pd.to_timedelta(self.data['Total Tempo']).dt.total_seconds().mean())
493
  ]
494
-
495
  insights_text = f"""
496
  Análise de Eficiência:
497
- - Taxa média de aproveitamento da turma: {taxa_aproveitamento:.1%}
498
  - {len(alunos_eficientes)} alunos demonstram alta eficiência (acertos acima da média e tempo abaixo da média)
499
  - {len(self.data[self.data['Acertos Absolutos'] == 0])} alunos não registraram acertos
500
-
501
  Padrões Identificados:
502
  - Alunos que completaram mais tarefas tendem a ter melhor desempenho
503
  - Tempo dedicado não mostra correlação forte com número de acertos
504
  - {(len(self.data[self.data['Tarefas Completadas'] < 5]) / len(self.data) * 100):.1f}% dos alunos completaram menos de 5 tarefas
505
-
506
  Recomendações Baseadas em Dados:
507
  - Focar em aumentar o número de tarefas completadas
508
  - Identificar motivos para baixa participação em alguns alunos
 
476
  raise
477
 
478
  def _add_insights_section(self, pdf: FPDF) -> None:
479
+ """Adiciona uma nova seção de insights principais com taxa de aproveitamento corrigida."""
480
  pdf.set_font('Arial', 'B', 14)
481
  pdf.set_fill_color(240, 240, 240)
482
  pdf.cell(0, 10, 'Insights Principais', 0, 1, 'L', True)
483
  pdf.ln(5)
484
+
485
  pdf.set_font('Arial', '', 11)
486
+
487
  # Calcular métricas avançadas
488
+ questoes_por_tarefa = 4 # Média de questões por tarefa
489
+ total_questoes = self.data['Tarefas Completadas'].sum() * questoes_por_tarefa
490
+ total_acertos = self.data['Acertos Absolutos'].sum()
491
+
492
+ # Calcular taxa de aproveitamento correta
493
+ taxa_aproveitamento = (total_acertos / total_questoes * 100) if total_questoes > 0 else 0
494
+ taxa_aproveitamento = min(taxa_aproveitamento, 100) # Limitar a 100%
495
+
496
+ # Identificar alunos eficientes
497
+ tempo_medio = pd.to_timedelta(self.data['Total Tempo']).dt.total_seconds().mean()
498
  alunos_eficientes = self.data[
499
+ (self.data['Acertos Absolutos'] / (self.data['Tarefas Completadas'] * questoes_por_tarefa) > taxa_aproveitamento/100) &
500
+ (pd.to_timedelta(self.data['Total Tempo']).dt.total_seconds() < tempo_medio)
 
501
  ]
502
+
503
  insights_text = f"""
504
  Análise de Eficiência:
505
+ - Taxa média de aproveitamento da turma: {taxa_aproveitamento:.1f}%
506
  - {len(alunos_eficientes)} alunos demonstram alta eficiência (acertos acima da média e tempo abaixo da média)
507
  - {len(self.data[self.data['Acertos Absolutos'] == 0])} alunos não registraram acertos
508
+
509
  Padrões Identificados:
510
  - Alunos que completaram mais tarefas tendem a ter melhor desempenho
511
  - Tempo dedicado não mostra correlação forte com número de acertos
512
  - {(len(self.data[self.data['Tarefas Completadas'] < 5]) / len(self.data) * 100):.1f}% dos alunos completaram menos de 5 tarefas
513
+
514
  Recomendações Baseadas em Dados:
515
  - Focar em aumentar o número de tarefas completadas
516
  - Identificar motivos para baixa participação em alguns alunos