6 votos

Sugerencia de algoritmo de minería de datos

Me gustaría utilizar la minería de datos para tratar de encontrar un buen esquema de entrenamiento. El conjunto de datos de entrada contendrá los parámetros de un conjunto de entrenamientos con fechas y diferentes medidas de rendimiento y médicas. El problema es que la influencia de cada entrenamiento individual será diferente dependiendo del tiempo que haya pasado después de este entrenamiento. Por ejemplo, al día siguiente del entrenamiento el rendimiento se degradará, pero eventualmente mejorará al nivel más alto que antes del entrenamiento. Así que cada medida de rendimiento será el resultado acumulado de diferentes entrenamientos. Sé que puedo ejecutar una serie de entrenamientos del mismo tipo durante un período de tiempo y luego utilizar la diferencia en el rendimiento como un predictor. Pero me preguntaba si hay algún algoritmo que permita tener en cuenta el componente temporal y ejecutar un análisis que tenga en cuenta los entrenamientos individuales.

5voto

jldugger Puntos 7490

Su primera tarea es encontrar un modelo razonable que relacione un resultado $Y$ a la secuencia de entrenamientos que la precedieron. Se podría empezar por suponer que el resultado depende en general de una combinación lineal de esfuerzos de entrenamiento ponderados por el tiempo $X$ pero dicho modelo sería inidentificable (por tener más parámetros que puntos de datos). Una simplificación popular consiste en suponer que la "influencia" de un entrenamiento en el momento $t$ sobre el resultado en el momento $s$ es

a. proporcional a la intensidad del entrenamiento,

b. decae exponencialmente; es decir, se reduce en un factor $\exp(\theta(t-s)))$ para una tasa de decaimiento desconocida $\theta$ y

c. se suma de forma independiente a las influencias de todos los demás entrenamientos anteriores al tiempo $t$ .

Por supuesto, debemos estar preparados para permitir cierta desviación entre el resultado real y el predicho por el modelo; es natural modelar esa desviación como un conjunto de variables aleatorias independientes de media cero.

Esto conduce a un modelo formal que puede servir como punto de partida útil para la AED. Para escribirlo, dejemos que los tiempos sean $t_1 \lt t_2 \lt \ldots \lt t_n$ con las correspondientes intensidades de entrenamiento $x_1, x_2, \ldots, x_n$ y dejar que los resultados se midan a veces $s_1 \lt s_2 \lt \ldots \lt s_m$ con valores $y_1, \ldots, y_m$ respectivamente. El modelo es

$$y_j =\alpha + \beta \exp(-\theta(s_j - t_{k})) \left( x_{k} + \exp(-\theta \Delta_{k,k-1}) x_{k-1} + \cdots + \exp(-\theta \Delta_{k, 1})x_1 \right) + \epsilon_j$$

donde $\alpha$ y $\beta$ son coeficientes de una relación lineal, $k$ es el índice del entrenamiento más reciente que precede al tiempo $s_j$ , $\Delta_{i,j} = t_i - t_j$ es el tiempo transcurrido entre el $i^\text{th}$ y $j^\text{th}$ entrenamientos, y el $\epsilon_j$ son variables aleatorias independientes con expectativas nulas.

Esto puede resultar complicado cuando los entrenamientos y las mediciones de los puntos finales están espaciados de forma desigual. Si, en una buena aproximación, el espacio entre un entrenamiento y la siguiente medición es constante (digamos, una diferencia de tiempo de $s$ ) y -como simplificación expositiva- si cada ejercicio va seguido de una medida (de modo que $m = n$ ), entonces este modelo sugiere algunos procedimientos útiles de EDA. Como abreviatura, escribamos (de forma algo imprecisa)

$$f_k(x,t,\theta) = \left( x_{k} + \exp(-\theta \Delta_{k,k-1}) x_{k-1} + \cdots + \exp(-\theta \Delta_{k, 1})x_1 \right)$$

para la suma ponderada de los entrenamientos hasta el $k^\text{th}$ uno, de donde

$$y_k = \alpha + \gamma f_k(x,t,\theta) + \epsilon_k$$

donde $\gamma = \beta \exp(-\theta s)$ . Obsérvese que esta formulación admite cualquier secuencia temporal irregular de entrenamientos, por lo que no está excesivamente simplificada.

Lo que se quiere saber es si esto tiene sentido: ¿se comportan así los datos? En realidad estamos preguntando por la posibilidad de un lineal relación entre el $x$ y el $y$ 's. Necesitamos que se mantenga al menos una constante de decaimiento $\theta$ con un valor razonable.

Una forma de comprobarlo es observar que existe una relación relativamente sencilla entre los términos sucesivos $f_{k+1}$ y $f_k$ ; dejas que $f_k$ decaimiento por tiempo adicional $t_{k+1} - t_k$ y añadir $x_{k+1}$ a ella:

$$f_{k+1}(x,t,\theta) = x_{k+1} + \exp(-\theta \Delta_{k+1,k}) f_k(x,t,\theta).$$

(Esta fórmula, por cierto, proporciona una forma eficiente de calcular todos los $f_k$ empezando por $f_1 = x_1$ y continuando recursivamente para $k = 2, 3, \ldots, n$ --una simple fórmula de hoja de cálculo. Es una generalización de las medias móviles ponderadas que se utilizan mucho en el análisis financiero).

De forma equivalente, podemos aislar $x_k$ restando el término de la derecha. Esto sugiere explorar la relación entre el valores ajustados $z_k = y_{k+1} - \exp(-\theta \Delta_{k+1,k})y_k$ y los entrenamientos $x_k$ porque

$$z_k = (1 - \exp(-\theta \Delta_{k+1,k}))\alpha + \gamma x_k + (\epsilon_{k+1} - \exp(-\theta \Delta_{k+1,k}))\epsilon_k).$$

Si los entrenamientos son aproximadamente espaciados regularmente, para que $\Delta_{k+1,k}$ es aproximadamente constante, entonces para cualquier valor fijo de $\theta$ esta expresión tiene la forma

$$z = \text{ constant + constant *} x + \text{ error}.$$

Los términos de error estarán correlacionados positivamente (en pares) pero seguirán siendo insesgados. Ahora está claro cómo comprobar la linealidad: Elija un valor de prueba para $\theta$ , calcula el $z$ (que dependen de él), hacer un gráfico de dispersión de la $z$ 's contra el $x$ 's, y buscar la linealidad. Variar $\theta$ interactivamente para buscar gráficos de dispersión de aspecto lineal. Si puede producir uno, ya tiene una estimación razonable de $\theta$ . A continuación, puede estimar los demás parámetros ( $\alpha$ y $\beta$ ) si quieres. Si no puede producir un gráfico de dispersión lineal, utilice las técnicas estándar de EDA para reexpresar las variables (el $x$ y $y$ ') hasta que puedas. Busque un valor de $\theta$ que minimiza los tamaños típicos de los residuos: es una estimación aproximada de la tasa de descomposición.

No espero que este método sea muy estable: es probable que haya una amplia gama de valores de $\theta$ que inducirá la linealidad y unos residuos relativamente pequeños en el gráfico de dispersión. Pero eso es algo que hay que averiguar. Si descubres que sólo un estrecho rango de valores lo consigue, entonces puedes tener confianza en que el efecto de decaimiento está ahí y puede ser estimado. Utilice la máxima verosimilitud; será conveniente suponer el $\epsilon$ se distribuyen normalmente. (La probabilidad del perfil, con $\theta$ fijo, es un problema de mínimos cuadrados ordinarios, por lo que será fácil ajustar este modelo. También se puede intentar ajustar la relación entre $z$ y $x$ directamente usando mínimos cuadrados generalizados, pero creo que eso sería más complicado de implementar).

Todo esto puede parecer complicado, pero en realidad es bastante sencillo. Se puede crear una hoja de cálculo en la que $\theta$ es el valor de una celda, añada un $\theta$ -control variable a un gráfico de dispersión de $x$ y $z$ (calculado en la hoja de cálculo a partir de una columna de $t$ y una columna de $y$ valores), y simplemente ajustar el control para enderezar la trama.

Será más difícil explorar un conjunto de datos en el que haya menos (o más) medidas $y_j$ que hay entrenamientos $x_k$ o cuando el espacio temporal entre los entrenamientos y las mediciones varía mucho. Es posible que tengas que conformarte sólo con las soluciones de máxima probabilidad, sin el beneficio de los gráficos de apoyo para verificar la razonabilidad y la adecuación de este modelo a priori .

Incluso si mis suposiciones no coinciden con su situación en todos los detalles, espero que esta discusión al menos sugiera enfoques eficaces para avanzar en su investigación.

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