de-Rodrigo commited on
Commit
5498932
1 Parent(s): c6959dd

Update Requirements

Browse files
Files changed (1) hide show
  1. app.py +45 -29
app.py CHANGED
@@ -3,6 +3,8 @@ import pandas as pd
3
  from bokeh.plotting import figure
4
  from bokeh.models import ColumnDataSource
5
  from bokeh.palettes import Category10
 
 
6
 
7
  TOOLTIPS = """
8
  <div>
@@ -86,64 +88,78 @@ if __name__ == "__main__":
86
  config_style()
87
 
88
  # --- Primer gr谩fico: datos de Donut ---
89
- df_donut_pca = pd.read_csv("data/data_donut_pca.csv")
90
- df_donut_tsne = pd.read_csv("data/data_donut_tsne.csv")
91
-
92
- # Desplegable para seleccionar visualizaci贸n
93
  donut_mode = st.selectbox(
94
  "Seleccione visualizaci贸n para Donut:",
95
  options=["PCA", "t-SNE"]
96
  )
97
 
98
- # Escoger el DataFrame seg煤n la selecci贸n
 
 
 
99
  if donut_mode == "PCA":
100
- current_df_donut = df_donut_pca
 
101
  else:
102
- current_df_donut = df_donut_tsne
103
-
104
- unique_labels = current_df_donut['label'].unique().tolist()
 
 
 
 
 
105
  plot_placeholder = st.empty()
106
-
107
  # Mostrar gr谩fico inicial con todas las etiquetas
108
- render_plot(unique_labels, current_df_donut, plot_placeholder)
109
-
110
  # Desplegable para filtrar etiquetas
111
  selected_labels = st.multiselect(
112
  "Seleccione subsets para visualizar (Donut):",
113
  options=unique_labels,
114
  default=unique_labels
115
  )
116
-
117
- render_plot(selected_labels, current_df_donut, plot_placeholder)
118
-
119
  # --- Segundo gr谩fico: datos de Idefics2 ---
120
  st.markdown('<h2 class="sub-title">Idefics2</h2>', unsafe_allow_html=True)
121
-
122
- df_idefics2_pca = pd.read_csv("data/data_idefics2_pca.csv")
123
- df_idefics2_tsne = pd.read_csv("data/data_idefics2_tsne.csv")
124
-
125
- # Desplegable para seleccionar visualizaci贸n para Idefics2
126
  idefics2_mode = st.selectbox(
127
  "Seleccione visualizaci贸n para Idefics2:",
128
  options=["PCA", "t-SNE"],
129
  key="idefics2_mode"
130
  )
131
 
 
 
 
132
  if idefics2_mode == "PCA":
133
- current_df_idefics2 = df_idefics2_pca
 
134
  else:
135
- current_df_idefics2 = df_idefics2_tsne
136
-
137
- unique_labels2 = current_df_idefics2['label'].unique().tolist()
 
 
 
 
138
  plot_placeholder2 = st.empty()
139
-
140
- render_plot(unique_labels2, current_df_idefics2, plot_placeholder2)
141
-
142
  selected_labels2 = st.multiselect(
143
  "Seleccione subsets para visualizar (Idefics2):",
144
  options=unique_labels2,
145
  default=unique_labels2,
146
  key="idefics2"
147
  )
148
-
149
- render_plot(selected_labels2, current_df_idefics2, plot_placeholder2)
 
3
  from bokeh.plotting import figure
4
  from bokeh.models import ColumnDataSource
5
  from bokeh.palettes import Category10
6
+ from sklearn.decomposition import PCA
7
+ from sklearn.manifold import TSNE
8
 
9
  TOOLTIPS = """
10
  <div>
 
88
  config_style()
89
 
90
  # --- Primer gr谩fico: datos de Donut ---
91
+ # Se asume que "embeddings_donut.csv" contiene las columnas "dim_0", "dim_1", ..., "dim_N", adem谩s de "label" e "img"
92
+ df_donut = pd.read_csv("data/donut_de_Rodrigo_merit_secret_all_embeddings.csv")
93
+
94
+ # Selecci贸n de visualizaci贸n
95
  donut_mode = st.selectbox(
96
  "Seleccione visualizaci贸n para Donut:",
97
  options=["PCA", "t-SNE"]
98
  )
99
 
100
+ # Extraer columnas de embedding (aquellas que empiezan con "dim_")
101
+ embedding_cols = [col for col in df_donut.columns if col.startswith("dim_")]
102
+ all_embeddings = df_donut[embedding_cols].values
103
+
104
  if donut_mode == "PCA":
105
+ pca = PCA(n_components=2)
106
+ reduced = pca.fit_transform(all_embeddings)
107
  else:
108
+ tsne = TSNE(n_components=2, random_state=42, perplexity=30, learning_rate=200)
109
+ reduced = tsne.fit_transform(all_embeddings)
110
+
111
+ # A帽adir las coordenadas resultantes al DataFrame
112
+ df_donut['x'] = reduced[:, 0]
113
+ df_donut['y'] = reduced[:, 1]
114
+
115
+ unique_labels = df_donut['label'].unique().tolist()
116
  plot_placeholder = st.empty()
117
+
118
  # Mostrar gr谩fico inicial con todas las etiquetas
119
+ render_plot(unique_labels, df_donut, plot_placeholder)
120
+
121
  # Desplegable para filtrar etiquetas
122
  selected_labels = st.multiselect(
123
  "Seleccione subsets para visualizar (Donut):",
124
  options=unique_labels,
125
  default=unique_labels
126
  )
127
+ render_plot(selected_labels, df_donut, plot_placeholder)
128
+
 
129
  # --- Segundo gr谩fico: datos de Idefics2 ---
130
  st.markdown('<h2 class="sub-title">Idefics2</h2>', unsafe_allow_html=True)
131
+
132
+ # Se asume que "embeddings_idefics2.csv" tiene la misma estructura
133
+ df_idefics2 = pd.read_csv("data/embeddings_idefics2.csv")
134
+
 
135
  idefics2_mode = st.selectbox(
136
  "Seleccione visualizaci贸n para Idefics2:",
137
  options=["PCA", "t-SNE"],
138
  key="idefics2_mode"
139
  )
140
 
141
+ embedding_cols2 = [col for col in df_idefics2.columns if col.startswith("dim_")]
142
+ all_embeddings2 = df_idefics2[embedding_cols2].values
143
+
144
  if idefics2_mode == "PCA":
145
+ pca2 = PCA(n_components=2)
146
+ reduced2 = pca2.fit_transform(all_embeddings2)
147
  else:
148
+ tsne2 = TSNE(n_components=2, random_state=42, perplexity=30, learning_rate=200)
149
+ reduced2 = tsne2.fit_transform(all_embeddings2)
150
+
151
+ df_idefics2['x'] = reduced2[:, 0]
152
+ df_idefics2['y'] = reduced2[:, 1]
153
+
154
+ unique_labels2 = df_idefics2['label'].unique().tolist()
155
  plot_placeholder2 = st.empty()
156
+
157
+ render_plot(unique_labels2, df_idefics2, plot_placeholder2)
158
+
159
  selected_labels2 = st.multiselect(
160
  "Seleccione subsets para visualizar (Idefics2):",
161
  options=unique_labels2,
162
  default=unique_labels2,
163
  key="idefics2"
164
  )
165
+ render_plot(selected_labels2, df_idefics2, plot_placeholder2)