Eric2mangel commited on
Commit
2c80a75
·
verified ·
1 Parent(s): ae39dfb

Update app.py

Browse files

Derniers ajustements

Files changed (1) hide show
  1. app.py +8 -8
app.py CHANGED
@@ -17,9 +17,9 @@ from scipy.stats import pearsonr
17
  TEST_SIZE = 0.3
18
  RANDOM_STATE = 42
19
 
20
- st.set_page_config(page_title="Analyse d'Importance", layout="wide")
21
 
22
- st.title("🔍 Analyse de l'Importance des Caractéristiques")
23
  st.markdown(
24
  """
25
  Cette application illustre la différence entre la pertinence marginale et la pertinence conditionnelle d'une caractéristique.
@@ -213,20 +213,20 @@ if df is not None and X is not None and len(X.columns) > 0:
213
  res = pd.DataFrame({
214
  "Variable": feature_names,
215
  "Importance seule (MI)": mi,
216
- "Poids dans le Modèle": np.abs(coefs),
217
  "Sens": np.where(coefs > 0, "+", "-")
218
  })
219
 
220
  if task == "Regression":
221
- res["Lien Direct (Corr)"] = [pearsonr(X_train_proc[:, i], y_train)[0] for i in range(len(feature_names))]
222
 
223
  # Normalisation pour Score Synthétique
224
  def normalize(s): return (s - s.min()) / (s.max() - s.min() + 1e-10)
225
  mi_n = normalize(res["Importance seule (MI)"])
226
- poids_n = normalize(res["Poids dans le Modèle"])
227
 
228
  if task == "Regression":
229
- corr_n = normalize(res["Lien Direct (Corr)"].abs())
230
  res["Score synthétique"] = ((mi_n + corr_n) / 2 + poids_n) / 2
231
  else:
232
  res["Score synthétique"] = (mi_n + poids_n) / 2
@@ -234,9 +234,9 @@ if df is not None and X is not None and len(X.columns) > 0:
234
  res = res.sort_values("Score synthétique", ascending=False)
235
 
236
  # Réorganisation des colonnes
237
- cols = ["Variable", "Score synthétique", "Importance seule (MI)", "Poids dans le Modèle", "Sens"]
238
  if task == "Regression":
239
- cols = ["Variable", "Score synthétique", "Importance seule (MI)", "Lien Direct (Corr)", "Poids dans le Modèle", "Sens"]
240
 
241
  final_df = res[cols].copy()
242
 
 
17
  TEST_SIZE = 0.3
18
  RANDOM_STATE = 42
19
 
20
+ st.set_page_config(page_title="Analyse d'importance", layout="wide")
21
 
22
+ st.title("🔍 Analyse de l'importance des caractéristiques")
23
  st.markdown(
24
  """
25
  Cette application illustre la différence entre la pertinence marginale et la pertinence conditionnelle d'une caractéristique.
 
213
  res = pd.DataFrame({
214
  "Variable": feature_names,
215
  "Importance seule (MI)": mi,
216
+ "Poids dans le modèle": np.abs(coefs),
217
  "Sens": np.where(coefs > 0, "+", "-")
218
  })
219
 
220
  if task == "Regression":
221
+ res["Lien direct (Corr)"] = [pearsonr(X_train_proc[:, i], y_train)[0] for i in range(len(feature_names))]
222
 
223
  # Normalisation pour Score Synthétique
224
  def normalize(s): return (s - s.min()) / (s.max() - s.min() + 1e-10)
225
  mi_n = normalize(res["Importance seule (MI)"])
226
+ poids_n = normalize(res["Poids dans le modèle"])
227
 
228
  if task == "Regression":
229
+ corr_n = normalize(res["Lien direct (Corr)"].abs())
230
  res["Score synthétique"] = ((mi_n + corr_n) / 2 + poids_n) / 2
231
  else:
232
  res["Score synthétique"] = (mi_n + poids_n) / 2
 
234
  res = res.sort_values("Score synthétique", ascending=False)
235
 
236
  # Réorganisation des colonnes
237
+ cols = ["Variable", "Score synthétique", "Importance seule (MI)", "Poids dans le modèle", "Sens"]
238
  if task == "Regression":
239
+ cols = ["Variable", "Score synthétique", "Importance seule (MI)", "Lien direct (Corr)", "Poids dans le modèle", "Sens"]
240
 
241
  final_df = res[cols].copy()
242