2 votos

¿Existe una forma de calcular en línea las regresiones aditivas, kernel o spline?

Tengo un problema de aprendizaje en línea en el que cada segundo (digamos) recibo una nueva observación $(x_1,x_2,y)$ . Me gustaría que se ajustara a los siguientes modelos: $$ y = f(x_1) + f(x_2)$$ y tal vez $$ y = f(x_1,x_2) $$

En un entorno sin conexión, simplemente pasaría los datos por R npreg o el paquete gam función. Sin embargo, esos métodos son métodos offline que calculan el modelo una vez. Cada vez que aparece un nuevo dato tengo que volver a calcular toda la regresión de nuevo.

Esto es un gran despilfarro y esperaba poder calcular una simple regresión no paramétrica de la misma manera que utilizo los filtros recursivos de mínimos cuadrados para el caso paramétrico (que predice muy mal en este caso).

1voto

rkthkr Puntos 6651

Resulta que hay una manera de hacer esto con las regresiones del Kernel.
Suponiendo que su punto de prueba fijo es $x$ , en lugar de calcular cada vez la predicción en ese punto mediante la fórmula habitual de regresión Kernel podemos hacer lo siguiente:

$m_0(x) = g_0(x)=0$
$g_n(x) = g_{n-1}(x) + K_h(x-X_n)$
$m_n(x) = m_{n-1} + \frac{ \left(Y_n - m_{n-1}(x) \right) K_{h}(x-X_n)}{g_n(x)}$

Donde $m_n(\cdot)$ es la predicción después de $n$ observaciones, $(Y_n,X_n)$ es la nueva observación y $g_n(\cdot)$ es sólo el denominador corriente.

Esto viene de:
Krzyzak, Adam. "Convergencia global de las estimaciones de regresión de núcleo recursivo con aplicaciones en clasificación y estimación de sistemas no lineales". IEEE Transactions on Information Theory 38.4 (1992): 1323-1338.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X