Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -264,7 +264,7 @@ class RSM_BoxBehnken:
|
|
| 264 |
index=self.factor_names
|
| 265 |
)
|
| 266 |
# Varianza explicada
|
| 267 |
-
explained_variance = self.pca_model.
|
| 268 |
return pca_df, loading_df, explained_variance
|
| 269 |
|
| 270 |
def plot_pca(self):
|
|
@@ -1504,6 +1504,8 @@ def load_data(num_factors, factor_components, y_name, data_str, decimal_places):
|
|
| 1504 |
"""
|
| 1505 |
Carga los datos del dise帽o Box-Behnken desde cajas de texto y crea la instancia de RSM_BoxBehnken.
|
| 1506 |
"""
|
|
|
|
|
|
|
| 1507 |
try:
|
| 1508 |
num_factors = int(num_factors)
|
| 1509 |
# Extraer informaci贸n de los componentes de factores
|
|
@@ -1521,7 +1523,6 @@ def load_data(num_factors, factor_components, y_name, data_str, decimal_places):
|
|
| 1521 |
# Si no se proporcionan datos, generar un dise帽o
|
| 1522 |
if not data_str.strip():
|
| 1523 |
# Crear la instancia de RSM_BoxBehnken
|
| 1524 |
-
global rsm
|
| 1525 |
rsm = RSM_BoxBehnken(factor_names, y_name, levels, decimal_places=decimal_places)
|
| 1526 |
data = rsm.data
|
| 1527 |
else:
|
|
@@ -1543,7 +1544,6 @@ def load_data(num_factors, factor_components, y_name, data_str, decimal_places):
|
|
| 1543 |
raise ValueError("El formato de los datos no es correcto. Faltan columnas requeridas.")
|
| 1544 |
|
| 1545 |
# Crear la instancia de RSM_BoxBehnken
|
| 1546 |
-
global rsm
|
| 1547 |
rsm = RSM_BoxBehnken(factor_names, y_name, levels, data=data, decimal_places=decimal_places)
|
| 1548 |
|
| 1549 |
return data.round(rsm.current_configuration['decimal_places']), "Datos cargados correctamente. Puede avanzar a la pesta帽a de An谩lisis Estad铆stico.", True
|
|
@@ -1554,6 +1554,8 @@ def load_data(num_factors, factor_components, y_name, data_str, decimal_places):
|
|
| 1554 |
return None, error_message, False
|
| 1555 |
|
| 1556 |
def fit_and_optimize_model(regularization_alpha=1.0, regularization_l1_ratio=0.5, decimal_places=3, pareto_statistic='F'):
|
|
|
|
|
|
|
| 1557 |
if 'rsm' not in globals():
|
| 1558 |
# Devolver None para todos los componentes de salida
|
| 1559 |
return (
|
|
@@ -1743,7 +1745,7 @@ def generate_rsm_plot(fixed_factors_idx, fixed_levels):
|
|
| 1743 |
def create_gradio_interface():
|
| 1744 |
with gr.Blocks(css=".container { max-width: 1200px !important; }") as demo:
|
| 1745 |
gr.Markdown("""
|
| 1746 |
-
# <center>Optimizaci贸n de
|
| 1747 |
<div style="background-color: #f0f2f6; padding: 15px; border-radius: 10px; margin-bottom: 20px;">
|
| 1748 |
Herramienta avanzada para el an谩lisis y optimizaci贸n de procesos mediante
|
| 1749 |
la Metodolog铆a de Superficie de Respuesta (RSM) con dise帽o Box-Behnken.
|
|
@@ -1752,11 +1754,39 @@ def create_gradio_interface():
|
|
| 1752 |
</div>
|
| 1753 |
""")
|
| 1754 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1755 |
# Estado para el 铆ndice actual de gr谩ficos
|
| 1756 |
current_index_state = gr.State(0)
|
| 1757 |
all_figures_state = gr.State([])
|
| 1758 |
diagnostic_figures_state = gr.State([])
|
| 1759 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1760 |
# Pesta帽as principales
|
| 1761 |
with gr.Tabs():
|
| 1762 |
# Pesta帽a 1: Configuraci贸n y Carga de Datos
|
|
@@ -1797,28 +1827,6 @@ def create_gradio_interface():
|
|
| 1797 |
gr.Markdown("#### 馃搳 Configuraci贸n de Factores")
|
| 1798 |
factor_inputs_container = gr.Column()
|
| 1799 |
|
| 1800 |
-
# Inicializar con 3 factores
|
| 1801 |
-
with gr.Column(visible=True) as factor_inputs:
|
| 1802 |
-
factor_components = []
|
| 1803 |
-
for i in range(3):
|
| 1804 |
-
with gr.Row(variant="panel"):
|
| 1805 |
-
factor_name = gr.Textbox(
|
| 1806 |
-
label=f"Nombre del Factor {i+1}",
|
| 1807 |
-
value=f"Factor_{i+1}",
|
| 1808 |
-
interactive=True
|
| 1809 |
-
)
|
| 1810 |
-
low_level = gr.Number(
|
| 1811 |
-
label=f"Nivel Bajo ({i+1})",
|
| 1812 |
-
value=0.0,
|
| 1813 |
-
interactive=True
|
| 1814 |
-
)
|
| 1815 |
-
high_level = gr.Number(
|
| 1816 |
-
label=f"Nivel Alto ({i+1})",
|
| 1817 |
-
value=10.0,
|
| 1818 |
-
interactive=True
|
| 1819 |
-
)
|
| 1820 |
-
factor_components.extend([factor_name, low_level, high_level])
|
| 1821 |
-
|
| 1822 |
with gr.Row():
|
| 1823 |
with gr.Column(scale=2):
|
| 1824 |
gr.Markdown("#### 馃摛 Datos del Experimento")
|
|
|
|
| 264 |
index=self.factor_names
|
| 265 |
)
|
| 266 |
# Varianza explicada
|
| 267 |
+
explained_variance = self.pca_model.explained_variance_ratio()
|
| 268 |
return pca_df, loading_df, explained_variance
|
| 269 |
|
| 270 |
def plot_pca(self):
|
|
|
|
| 1504 |
"""
|
| 1505 |
Carga los datos del dise帽o Box-Behnken desde cajas de texto y crea la instancia de RSM_BoxBehnken.
|
| 1506 |
"""
|
| 1507 |
+
global rsm # CORREGIDO: Declaraci贸n global al inicio de la funci贸n
|
| 1508 |
+
|
| 1509 |
try:
|
| 1510 |
num_factors = int(num_factors)
|
| 1511 |
# Extraer informaci贸n de los componentes de factores
|
|
|
|
| 1523 |
# Si no se proporcionan datos, generar un dise帽o
|
| 1524 |
if not data_str.strip():
|
| 1525 |
# Crear la instancia de RSM_BoxBehnken
|
|
|
|
| 1526 |
rsm = RSM_BoxBehnken(factor_names, y_name, levels, decimal_places=decimal_places)
|
| 1527 |
data = rsm.data
|
| 1528 |
else:
|
|
|
|
| 1544 |
raise ValueError("El formato de los datos no es correcto. Faltan columnas requeridas.")
|
| 1545 |
|
| 1546 |
# Crear la instancia de RSM_BoxBehnken
|
|
|
|
| 1547 |
rsm = RSM_BoxBehnken(factor_names, y_name, levels, data=data, decimal_places=decimal_places)
|
| 1548 |
|
| 1549 |
return data.round(rsm.current_configuration['decimal_places']), "Datos cargados correctamente. Puede avanzar a la pesta帽a de An谩lisis Estad铆stico.", True
|
|
|
|
| 1554 |
return None, error_message, False
|
| 1555 |
|
| 1556 |
def fit_and_optimize_model(regularization_alpha=1.0, regularization_l1_ratio=0.5, decimal_places=3, pareto_statistic='F'):
|
| 1557 |
+
global rsm # CORREGIDO: Declaraci贸n global al inicio de la funci贸n
|
| 1558 |
+
|
| 1559 |
if 'rsm' not in globals():
|
| 1560 |
# Devolver None para todos los componentes de salida
|
| 1561 |
return (
|
|
|
|
| 1745 |
def create_gradio_interface():
|
| 1746 |
with gr.Blocks(css=".container { max-width: 1200px !important; }") as demo:
|
| 1747 |
gr.Markdown("""
|
| 1748 |
+
# <center>Optimizaci贸n de Producci贸n con Box-Behnken (k Factores)</center>
|
| 1749 |
<div style="background-color: #f0f2f6; padding: 15px; border-radius: 10px; margin-bottom: 20px;">
|
| 1750 |
Herramienta avanzada para el an谩lisis y optimizaci贸n de procesos mediante
|
| 1751 |
la Metodolog铆a de Superficie de Respuesta (RSM) con dise帽o Box-Behnken.
|
|
|
|
| 1754 |
</div>
|
| 1755 |
""")
|
| 1756 |
|
| 1757 |
+
# Estado para almacenar el n煤mero actual de factores
|
| 1758 |
+
current_factors = gr.State(3)
|
| 1759 |
+
|
| 1760 |
+
# Secci贸n 1: Configuraci贸n de Factores
|
| 1761 |
+
with gr.Row():
|
| 1762 |
+
num_factors_input = gr.Number(
|
| 1763 |
+
value=3,
|
| 1764 |
+
label="N煤mero de Factores",
|
| 1765 |
+
precision=0,
|
| 1766 |
+
minimum=2,
|
| 1767 |
+
maximum=16,
|
| 1768 |
+
interactive=True
|
| 1769 |
+
)
|
| 1770 |
+
update_btn = gr.Button("Actualizar Campos", variant="secondary")
|
| 1771 |
+
|
| 1772 |
# Estado para el 铆ndice actual de gr谩ficos
|
| 1773 |
current_index_state = gr.State(0)
|
| 1774 |
all_figures_state = gr.State([])
|
| 1775 |
diagnostic_figures_state = gr.State([])
|
| 1776 |
|
| 1777 |
+
# Secci贸n din谩mica para factores
|
| 1778 |
+
factor_inputs_container = gr.Column()
|
| 1779 |
+
|
| 1780 |
+
# Generar inicialmente para 3 factores
|
| 1781 |
+
initial_components = []
|
| 1782 |
+
with factor_inputs_container:
|
| 1783 |
+
for i in range(3):
|
| 1784 |
+
with gr.Row(variant="panel"):
|
| 1785 |
+
name = gr.Textbox(label=f"Nombre Factor {i+1}", value=f"Factor_{i+1}")
|
| 1786 |
+
low = gr.Number(label=f"Bajo {i+1}", value=0.0)
|
| 1787 |
+
high = gr.Number(label=f"Alto {i+1}", value=10.0)
|
| 1788 |
+
initial_components.extend([name, low, high])
|
| 1789 |
+
|
| 1790 |
# Pesta帽as principales
|
| 1791 |
with gr.Tabs():
|
| 1792 |
# Pesta帽a 1: Configuraci贸n y Carga de Datos
|
|
|
|
| 1827 |
gr.Markdown("#### 馃搳 Configuraci贸n de Factores")
|
| 1828 |
factor_inputs_container = gr.Column()
|
| 1829 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1830 |
with gr.Row():
|
| 1831 |
with gr.Column(scale=2):
|
| 1832 |
gr.Markdown("#### 馃摛 Datos del Experimento")
|