Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -225,41 +225,27 @@ with tab2:
|
|
| 225 |
|
| 226 |
st.divider()
|
| 227 |
|
| 228 |
-
# --- BLOCO: INTERPRETABILIDADE GLOBAL
|
| 229 |
st.subheader(f"🧩 Impacto das Variáveis: {selected_model_name}")
|
| 230 |
|
| 231 |
-
# 1.
|
| 232 |
-
|
| 233 |
|
| 234 |
-
# 2. Verifica se existe
|
| 235 |
-
if selected_model_name in
|
| 236 |
-
st.markdown(f"
|
| 237 |
|
| 238 |
-
|
| 239 |
-
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
|
| 243 |
-
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
|
| 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 |
-
|
| 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 |
|