Primero, disculpe mi ignorancia porque recién comencé a aprender R hoy.

Tengo un marco de datos de dos variables (x, y) de la siguiente manera: (1,0), (2,26), (3,88), (4,186), (5,320), (6,490), (7,541). Quiero usar la regresión simbólica para encontrar una función f tal que y = f(x).

Siguiendo el tutorial aquí, puedo tener un gráfico de f(x), que es cerrado a lo que espero. Sin embargo, no sé cómo imprimir la función f(x).

Probé con otra herramienta llamada Eurequa. Es bastante fácil de usar y me brinda (muchas) funciones. Pero no puedo usar una herramienta comercial para mi proyecto. Gracias.


Actualizar

Aquí está mi código para calcular la regresión simbólica y trazar la función. Entro el comando uno por uno en el entorno R.

x = c (1, 2, 3, 4, 5, 6, 7)
y = c (0, 26, 88, 186, 320, 490, 541)
data1 = data.frame(x,y)
newFuncSet <- functionSet("+","-","*")
result1 <- symbolicRegression(y ~ x, data = data1, functionSet = newFuncSet, stopCondition = makeStepsStopCondition(2000))
plot(data1$y, col=1, type="l"); points(predict(result1, newdata = data1), col=2, type="l")
r
5
qsp 30 ene. 2015 a las 00:42

2 respuestas

La mejor respuesta

model <- result1$population[[which.min(result1$fitnessValues)]]

Se puede encontrar una introducción al paquete rgp con muchos ejemplos aquí.

5
Richard Border 1 feb. 2015 a las 05:02

He probado bastantes implementaciones de regresión simbólica, incluidas rgp, gplearn y una herramienta de Python llamada regresión simbólica rápida. Ninguno de estos era comparable a Eureqa, una herramienta de regresión simbólica que utilicé por primera vez en 2015 y que salió del mercado en 2017.

Recientemente, se desarrolló una nueva herramienta de regresión simbólica llamada TuringBot, y se mostró en arXiv: 2010.11328 para ser más eficiente que Eureqa en la búsqueda de fórmulas. Entonces recomendaría TuringBot para la regresión simbólica en 2020.

0
bluewhale 25 nov. 2020 a las 19:47