0% encontró este documento útil (0 votos)
7 vistas4 páginas

Regresión No Lineal con Random Forest

Este documento presenta un módulo sobre regresión no lineal multivariada utilizando Machine Learning, específicamente el algoritmo Random Forest, para predecir salidas físicas a partir de múltiples parámetros de entrada. Se genera un conjunto de datos sintéticos y se entrena un modelo que se evalúa mediante métricas como R2 y RMSE, destacando las limitaciones del modelo en cuanto a la interpretabilidad. Se concluye que el enfoque es efectivo para capturar relaciones complejas y se sugiere explorar técnicas adicionales en futuros módulos.

Cargado por

Mister Palta
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
7 vistas4 páginas

Regresión No Lineal con Random Forest

Este documento presenta un módulo sobre regresión no lineal multivariada utilizando Machine Learning, específicamente el algoritmo Random Forest, para predecir salidas físicas a partir de múltiples parámetros de entrada. Se genera un conjunto de datos sintéticos y se entrena un modelo que se evalúa mediante métricas como R2 y RMSE, destacando las limitaciones del modelo en cuanto a la interpretabilidad. Se concluye que el enfoque es efectivo para capturar relaciones complejas y se sugiere explorar técnicas adicionales en futuros módulos.

Cargado por

Mister Palta
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Módulo 1: Regresión no lineal multivariada para sistemas fı́sicos

utilizando Machine Learning


Serie de aprendizaje en Google Colab

Contexto
En el análisis de fenómenos fı́sicos complejos, especialmente cuando se realizan simulaciones multi-
paramétricas, es común trabajar con variables adimensionales como el número de Reynolds (Re),
Froude (Fr), o Weber (We), entre otros. Sin embargo, en lugar de buscar leyes empı́ricas exclu-
sivamente mediante análisis dimensional o regresiones clásicas, es posible emplear algoritmos de
Machine Learning para inferir estas relaciones directamente desde los datos.
Este módulo presenta una introducción práctica al uso del algoritmo Random Forest para
predecir una salida fı́sica multivariable (por ejemplo, una velocidad máxima) a partir de múltiples
parámetros de entrada.

Objetivo
Entrenar un modelo de regresión basado en RandomForestRegressor para aprender una relación
no lineal entre parámetros fı́sicos de entrada y una variable de salida, a partir de datos generados
artificialmente que simulan el comportamiento de una ley adimensional.

Librerı́as necesarias
Descripción: En esta sección se importan las bibliotecas esenciales de Python. Incluyen her-
ramientas para manipulación de datos, visualización, preprocesamiento, aprendizaje automático y
evaluación de modelos.
import numpy as np
import pandas as pd
import matplotlib . pyplot as plt
from sklearn . model_selection import train_test_split
from sklearn . preprocessing import StandardScaler
from sklearn . ensemble import Ra ndom Fores tReg resso r
from sklearn . metrics import r2_score , mean_squared_error

Generación de datos sintéticos


Descripción: Se simula un conjunto de datos que representan los resultados de un modelo fı́sico.
Las variables de entrada (Re, Fr, We, L/H) se generan aleatoriamente. La variable de salida Vmax
se calcula con una fórmula no lineal inspirada en una ley adimensional.

1
np . random . seed (42)
n = 300
Re = np . random . uniform (100 , 10000 , n )
Fr = np . random . uniform (0.1 , 5 , n )
We = np . random . uniform (1 , 100 , n )
LH = np . random . uniform (0.1 , 10 , n )

Vmax = 3* np . sqrt ( Re * Fr ) / We + 0.1* np . random . randn ( n )

Preparación del dataset


Descripción: Se organiza la información en una estructura de datos tipo DataFrame y se separan las
variables predictoras (X) de la variable objetivo (y). Luego, se divide el conjunto en entrenamiento
y prueba.
df = pd . DataFrame ({ ’ Re ’: Re , ’ Fr ’: Fr , ’ We ’: We , ’L / H ’: LH , ’ Vmax ’: Vmax })
X = df [[ ’ Re ’ , ’ Fr ’ , ’ We ’ , ’L / H ’ ]]
y = df [ ’ Vmax ’]
X_train , X_test , y_train , y_test = train_test_split (X , y , test_size =0.2 ,
,→ random_state =1)

Estandarización de los datos


Descripción: Se normalizan las variables de entrada para que tengan media cero y desviación
estándar uno. Esto es importante para evitar que variables con distintas escalas dominen el modelo
de aprendizaje.
scaler = StandardScaler ()
X_train_scaled = scaler . fit_transform ( X_train )
X_test_scaled = scaler . transform ( X_test )

Entrenamiento del modelo: Random Forest


Descripción: Se entrena un modelo de regresión basado en Random Forest, que es un algoritmo
de ensamble que construye múltiples árboles de decisión y promedia sus resultados para mejorar
precisión y robustez. Es especialmente útil en problemas no lineales y con muchas variables de
entrada.
model = R and omFor estR egres sor ( n_estimators =100 , random_state =0)
model . fit ( X_train_scaled , y_train )
y_pred = model . predict ( X_test_scaled )

Evaluación del desempeño del modelo


Descripción: Se evalúa qué tan bien predice el modelo usando dos métricas:

• R2 (coeficiente de determinación): mide qué fracción de la varianza de los datos es explicada


por el modelo.

2
• RMSE (raı́z del error cuadrático medio): indica el error promedio de predicción.

print ( " R : " , r2_score ( y_test , y_pred ) )


print ( " RMSE : " , np . sqrt ( mean_squared_error ( y_test , y_pred ) ) )

Visualización de resultados
Descripción: Se realiza un gráfico de dispersión comparando los valores predichos con los reales.
Un modelo perfecto tendrı́a todos los puntos sobre la diagonal.
plt . figure ( figsize =(6 ,6) )
plt . scatter ( y_test , y_pred , alpha =0.7)
plt . plot ([ y_test . min () , y_test . max () ] , [ y_test . min () , y_test . max () ] , ’k - - ’)
plt . xlabel ( " Vmax real " )
plt . ylabel ( " Vmax predicho " )
plt . title ( " P r e d i c c i n vs Realidad " )
plt . grid ()
plt . show ()

Limitaciones del modelo


A pesar de su alto desempeño, el modelo Random Forest no genera una expresión matemática
explı́cita para la relación entre entrada y salida. El modelo opera como una caja negra basada en
reglas tipo “si-entonces”, por lo que:

• No es posible derivar directamente una fórmula como Y = a · Rem · F rn · . . ..

• No se obtiene una función continua ni diferenciable.

• La interpretación directa del modelo es limitada, aunque puede estimarse la importancia de


las variables.

Para encontrar leyes matemáticas explı́citas se recomienda:

1. Usar regresión log-log, que puede revelar estructuras tipo potencia.

2. Aplicar regresión simbólica (e.g. AI Feynman, gplearn), que explora fórmulas algebraicas
desde los datos.

Conclusiones preliminares
Este módulo muestra que incluso con una relación no lineal simulada, un modelo de Random
Forest puede capturar con bastante precisión el comportamiento funcional entre parámetros fı́sicos
de entrada y una salida relevante. Este enfoque puede escalarse fácilmente a datos reales generados
por simulaciones numéricas complejas.

En el siguiente módulo exploraremos técnicas de reducción de dimensionalidad (como PCA)


y cómo combinarlas con regresión para descubrir leyes empı́ricas ocultas en datos de alta dimensión.

3
Apéndice A: Fundamentos del algoritmo Random Forest
A.1 Introducción
Random Forest es una técnica de aprendizaje supervisado de tipo ensamble que combina múltiples
árboles de decisión independientes para mejorar la capacidad predictiva y reducir la varianza.

A.2 Estructura del modelo


El modelo consiste en T árboles de decisión ht (x) y predice:
T
ˆ 1X
f (x) = ht (x)
T
t=1

A.3 Entrenamiento
1. Bootstrap de datos.

2. Selección aleatoria de variables en cada nodo.

3. División por mı́nima impureza (varianza en regresión).

4. Crecimiento hasta criterio de parada.

A.4 Ventajas
• Maneja relaciones no lineales.

• Es robusto al ruido y outliers.

• No requiere normalidad ni linealidad.

A.5 Limitaciones
• No ofrece interpretabilidad directa.

• Costoso computacionalmente.

• No extrapola fuera del dominio entrenado.

A.6 Aplicación en modelamiento fı́sico


Útil para crear modelos surrogate de fenómenos fı́sicos simulados, evaluar sensibilidad paramétrica
y predecir resultados complejos sin conocer la ley explı́cita.

A.7 Referencia
Breiman, L. (2001). Random Forests. Machine Learning, 45(1), 5–32.
doi:10.1023/A:1010933404324

También podría gustarte