HugoNeres commited on
Commit
ddc2ce5
·
verified ·
1 Parent(s): 3f5443c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -30
app.py CHANGED
@@ -225,41 +225,27 @@ with tab2:
225
 
226
  st.divider()
227
 
228
- # --- BLOCO: INTERPRETABILIDADE GLOBAL DINÂMICA ---
229
  st.subheader(f"🧩 Impacto das Variáveis: {selected_model_name}")
230
 
231
- # 1. Tenta recuperar o dicionário de SHAPs
232
- shap_dict = sistema.get("shap_values_dict", {})
233
 
234
- # 2. Verifica se existe SHAP para o modelo SELECIONADO ATUALMENTE
235
- if selected_model_name in shap_dict:
236
- st.markdown(f"Este gráfico mostra o que o **{selected_model_name}** considera mais importante.")
237
 
238
- try:
239
- # Recupera o objeto específico deste modelo
240
- shap_object = shap_dict[selected_model_name]
241
-
242
- # Gera o gráfico
243
- fig_shap_global = plt.figure(figsize=(10, 6))
244
- shap.plots.beeswarm(shap_object, max_display=15, show=False)
245
- plt.title(f"Visão Global do Modelo: {selected_model_name}", fontsize=14)
246
- plt.tight_layout()
247
-
248
- st.pyplot(fig_shap_global)
249
-
250
- with st.expander("ℹ️ Como ler este gráfico?"):
251
- st.markdown("""
252
- * **Eixo Y:** Variáveis mais importantes no topo.
253
- * **Cores:** 🔴 Vermelho = Valor Alto, 🔵 Azul = Valor Baixo.
254
- * **Eixo X:** Direita = Aumenta Risco de Calote, Esquerda = Diminui Risco.
255
- """)
256
-
257
- except Exception as e:
258
- st.warning(f"Erro ao exibir gráfico para este modelo: {e}")
259
-
260
  else:
261
- # Caso o usuário selecione KNN, SVM ou um modelo que falhou no cálculo
262
- st.info(f"ℹ️ A análise de impacto global (SHAP) não está disponível para o algoritmo '{selected_model_name}' (Apenas modelos baseados em árvore).")
263
 
264
  st.divider()
265
 
 
225
 
226
  st.divider()
227
 
228
+ # --- BLOCO OTIMIZADO: INTERPRETABILIDADE GLOBAL (IMAGEM ESTÁTICA) ---
229
  st.subheader(f"🧩 Impacto das Variáveis: {selected_model_name}")
230
 
231
+ # 1. Recupera o dicionário de Imagens
232
+ shap_imgs = sistema.get("shap_images_dict", {})
233
 
234
+ # 2. Verifica se existe imagem para o modelo selecionado
235
+ if selected_model_name in shap_imgs:
236
+ st.markdown(f"Análise global dos fatores de risco para o modelo **{selected_model_name}**.")
237
 
238
+ # Exibe a imagem instantaneamente (Zero processamento)
239
+ st.image(shap_imgs[selected_model_name], use_container_width=True)
240
+
241
+ with st.expander("ℹ️ Como ler este gráfico?"):
242
+ st.markdown("""
243
+ * **Eixo Y:** Variáveis mais importantes no topo.
244
+ * **Cores:** 🔴 Vermelho = Valor Alto, 🔵 Azul = Valor Baixo.
245
+ * **Eixo X:** Direita = Aumenta Risco de Calote, Esquerda = Diminui Risco.
246
+ """)
 
 
 
 
 
 
 
 
 
 
 
 
 
247
  else:
248
+ st.info(f"ℹ️ Gráfico de impacto não disponível para '{selected_model_name}' (Somente modelos baseados em árvore).")
 
249
 
250
  st.divider()
251