modelo de implementaciónHola
a todos.
En 2 archivos jmp adjuntos. El llamado Prueba de validación de entrenamiento se utilizó para construir un modelo de RF con los siguientes resultados.
El archivo contiene una respuesta numérica y 20 predictores diferentes, uno de ellos categórico. Los predictores son valores de sensores.

Como puede ver, el sesgo es muy bueno mientras que la varianza es ligeramente alta (92-69=23%).
Luego se utilizó una nueva base de datos con ejemplos nunca vistos por el modelo para simular la implementación del algoritmo en nuevos datos.
Con gran sorpresa, el resultado fue realmente pobre con un R2 entre la respuesta prevista y la real cercana a cero. No pudimos entender este comportamiento. Después de todo, el R2=68% para los datos de prueba no parece ser realmente malo. Así que esperábamos obtener con seguridad un R2 mayor que cero.
Por favor cualquier ayuda/comentario es bienvenido.
Felice-Gian
Modelado predictivo y aprendizaje automáticoCompartir y comunicar resultadosRe: modelo de implementaciónQuizás esto pueda ayudar en la discusión. Utilicé la excelente opción de detección de modelos en jmp pro usando la opción anidada para ajustar los hiperparámetros combinados con la validación cruzada k-fold. Aquí los resultados obtenidos después de algunas horas de trabajo jmp.

Lo que me sorprendió es la gran diferencia entre los modelos en términos de prestaciones. Los modelos de árbol y KNN mostraron un R2 superior al 50%, mientras que todos los modelos de ajuste mostraron valores muy por debajo del 50% (cercano a cero) a pesar del uso de regularización de lazo y cresta. ¿Es esta diferencia la que explica el mal rendimiento de los modelos RF/Boosted una vez implementados en producción?
¿Qué opinas? ¿Algún comentario/sugerencia/ayuda?
Felicia.
Re: modelo de implementaciónSospecho firmemente que necesita dedicar más tiempo a preparar los datos.Para ajustarse a los modelos de series de tiempo, las observaciones deben estar espaciadas equidistantemente y sin valores de tiempo duplicados.Tienes 4 sensores (?) con respuestas espaciadas de manera desigual.Si desea darle sentido a estos datos, creo que necesita agregar los valores para que haya una sola observación en cada período de tiempo, y es posible que desee crear una variable para el período de tiempo entre observaciones cronometradas.También sugeriría hacer un análisis por separado para cada tipo de sensor en lugar de usar el sensor como una de sus características, ya que el comportamiento de cada uno parece ser diferente.
No estaría preparado para concluir que sus funciones no son predictivas; creo que se introduce demasiado ruido al mezclar los tipos de sensores y al tener intervalos de tiempo no estándar.Si se abordan estas cuestiones, es posible que todavía exista un buen modelo predictivo.La parte del modelado no es el problema, sino la preparación de los datos (como suele ser el caso).Al menos eso es lo que pienso.
Re: modelo de implementaciónHola Dale
Desafortunadamente, al utilizar la diferencia de la variable de respuesta, ninguno de los modelos de regresión pudo arrojar un buen resultado.
Entonces, en este punto tal vez deba asumir que nuestras variables X no son buenos predictores de la respuesta.
De todos modos, todavía queda la duda de si para datos como los nuestros (datos del sensor) tenemos que dividir el entrenamiento/prueba teniendo en cuenta el eje del tiempo o en su lugar podemos usar la técnica de división aleatoria. En la literatura encontré varios artículos en los que, para los datos de los sensores, utilizan el entrenamiento/prueba dividido aleatorio. Si lo hacemos de la misma manera, los resultados parecen realmente buenos hasta que implementamos el modelo en producción y entendemos que el modelo es completamente incorrecto. Entonces ¿dónde está la verdad?
Adjunto se puede encontrar un artículo que aplica las técnicas de aprendizaje automático a una herramienta semiconductora (grabadora). Intentan hacer un mantenimiento predictivo mirando los datos de los sensores. Entonces los datos deberían ser realmente similares a unos. Si echas un vistazo a la parte del documento resaltada en verde, parece que dividieron los datos teniendo en cuenta el eje de tiempo y luego considerando los datos como series de tiempo.
Espero que más personas además de Dale puedan dar su opinión y ayudarnos a resolver este dilema.
¿Los datos son o no como los nuestros en series multitemporales?
Es cierto que los predictores X y la respuesta Y dependen del tiempo. Pero si queremos predecir Y según los valores de X, ¿por qué la variable tiempo debería ser tan importante? Para mí, la Y debería depender de las variables X que la máquina establece automáticamente durante la fase del proceso. Por supuesto, esto sucede cronológicamente, pero el valor X depende de la receta y del estado de la máquina. Por eso me cuesta un poco aceptar la dependencia del tiempo.
Felices Pascuas a toda la comunidad.
Felice
Re: modelo de implementaciónLos modelos de series temporales no son mi fuerte, así que espero que alguien te dé una respuesta más definitiva.Al principio no diferenciaría las características: construiría los modelos y miraría los residuos para ver si exhiben la misma autocorrelación.Si es así, quizás intentaría diferenciar algunas de las características.
Re: modelo de implementaciónHola Dale
Dado que también los predictores muestran el mismo PACF, ¿cree que podría ser útil diferenciar también los predictores además de la respuesta?
gracias felicia
Re: modelo de implementaciónEl gráfico PACF sugiere que los dos primeros rezagos son los relevantes; con diferencia, el primer rezago es el más importante.Por lo tanto, creo que sería bueno intentar realizar una diferenciación simple de primer orden.Es posible que uno de los modelos de aprendizaje automático (por ejemplo, RF, árboles potenciados, redes neuronales) funcione bien, así que los probaría.Pero también debería probar algunos modelos de series temporales más estándar (en los que no utilizaría la diferenciación, ya que los modelos de series temporales están diseñados para tener en cuenta la autocorrelación de varias maneras).En teoría, si utiliza la diferenciación de primer orden (y si eso elimina en gran medida la estructura de tiempo), entonces probablemente pueda utilizar un conjunto aleatorio de pruebas de validación de trenes para su modelado.Al menos eso es lo que pienso: es posible que otros lo sepan mejor.
Re: modelo de implementaciónHola george y dale
muchas gracias por sus respuestas. Echo un vistazo al gráfico de retardo de todos los predictores y la respuesta y, con mi gran sorpresa, descubrí una autocorrelación muy larga (ver imágenes adjuntas).
Dado que los datos provienen de una fábrica de semiconductores, el valor 25 visible en el ACF está relacionado con la cantidad de obleas en un lote.
En cambio, la línea de puntos en los gráficos de retraso son solo las primeras obleas de un lote diferente cargado en la máquina. Creo que la autocorrelación se debe a la retroalimentación interna presente en nuestra máquina para mantener el punto de trabajo. Por supuesto, esos ajustes están ocultos en la cámara y no bajo nuestro control y comprensión. La respuesta también muestra un claro retraso que no puedo explicar. Pero está ahí.
Intenté utilizar el retraso, la media móvil, el suavizado y otros predictores de ingeniería, pero los resultados siguen siendo realmente malos.
El siguiente paso quiero probar la diferenciación que propuso Dale. ¿Crees que la simple diferencia X(t)-X(t-1) puede ser suficiente?
Felice
Re: modelo de implementaciónTengo un par de sugerencias.Primero, intentaría primero diferenciar su variable de respuesta y luego probar con bosques aleatorios nuevamente.Para mí, ese es el enfoque más sencillo para los datos de series temporales, y es posible que los datos se comporten mejor cuando se los mira de esa manera.Seguiría creando manualmente el conjunto de validación como el último período de tiempo en lugar de una selección aleatoria de filas.La segunda idea es algo que habrás notado: hay agrupaciones temporales, como múltiples observaciones estrechamente vinculadas en el tiempo.Podría considerar uniformar la secuencia temporal resumiendo observaciones estrechamente relacionadas en el tiempo.Las series de tiempo se comportan mejor si la variable de tiempo se mide de manera uniforme, lo que significa que sus datos deberán resumirse en intervalos de tiempo igualmente espaciados.Como usted sugiere, es hora de volver a pensar en qué se mide exactamente y cómo se mide.
Re: modelo de implementaciónMientras tanto, creo que no podré ajustar un modelo válido/razonable para los datos.
Mi primer enfoque fue generar una columna de validación declarada por X.
La pista de la serie temporal de @dale_lehman fue útil, así que también miré los datos en forma de serie temporal,
dándose cuenta de que con el tiempo la combinación de las Xes cambia. Y aquí nuevamente me parece que "Nuevo" es diferente. Sí, los Xes cubren el mismo rango, pero eso no es suficiente. Creo que la combinación es diferente en "Nuevo", es decir, es una especie de extrapolación. Esto no sería un problema para la regresión, pero para métodos como RF esto cuenta (el modelo es multidimensional y altamente no lineal, por lo que es difícil mirar dentro).
Por otro lado, no pude ajustar un modelo razonable con ningún otro método (neural, Boosted Tree). Me parece que no tenemos la información adecuada en las columnas X para construir un modelo sólido.
Entonces investigaría la física del proceso o lo que sea,
- cómo las X pueden/pueden cambiar la Y,
- cual puede ser el ruido
- y qué hace que las cosas cambien con el tiempo, e incluirlo en el conjunto de datos.
- y también tengo curiosidad acerca de la estructura de datos, hay grupos de filas con la misma fecha y los mismos valores para algunos parámetros
Lo que me sorprendió es que, cuando hice una columna de validación estratificada por tiempo, obtuve el mismo resultado (modelo justo para la primera parte, ningún modelo con los nuevos datos).
Buena suerte,
Re: modelo de implementaciónAhora que miro más de cerca, veo que se trata de datos de series de tiempo.Desde mi punto de vista inicial, no parece que el proceso haya cambiado significativamente.Sin embargo, creo que el problema es que el paradigma de prueba de validación de tren no es realmente apropiado para datos de series de tiempo.Sugeriría crear un período de tiempo distinto (por ejemplo, el último mes del primer conjunto de datos) como conjunto de validación y volver a estimar el modelo.Supongo que el rendimiento del modelo en la validación y los datos nunca antes vistos deberían ser más similares si se estima el modelo de esa manera.Todavía estoy un poco preocupado por las diferencias notables entre las variables X en los dos conjuntos de datos; podría requerir un modelado de series temporales más sofisticado (como modelar la estacionalidad potencial).
Re: modelo de implementaciónHola Dale y Georg.
gracias por su respuesta.
Realmente, las diferencias entre las dos distribuciones para cada predictor no me parecen tan diferentes (ver histogramas en la imagen adjunta). Con bls indicamos el conjunto Training-Val-Test y exp el conjunto nunca visto por el modelo). Quizás el X20 muestre un nuevo pico en los datos nunca vistos y que antes estaban ausentes. Pero las distribuciones restantes están menos pobladas que las anteriores.
Si la distribución del predictor del conjunto de entrenamiento es más amplia que la de prueba, el modelo debería haber "visitado" el espacio de fase ocupado por el predictor del conjunto de prueba. ¿Correcto? Entonces, ¿por qué debería hacer una mala predicción?
De todos modos, confirmé (aunque para nosotros esto es extraño) lo que dices tomando aleatoriamente 2000 instancias (en lugar de las últimas 2000 instancias nunca vistas por el modelo de bosque aleatorio) y una vez entrenado fue capaz de predecir correctamente la respuesta. Entonces, si una ligera diferencia en términos de promedio/estándar marca una gran diferencia en términos de rendimiento de predicción, ¿cómo podemos usar estos modelos en producción donde las señales cambian continuamente?
Rgds.Felice/Gian
Re: modelo de implementaciónestoy de acuerdo con @dale_lehman , los nuevos datos son diferentes.
Pude ajustar un modelo similar y tampoco funcionó bien con nuevos datos.

La matriz de diagrama de dispersión muestra algunos detalles, por ejemplo, X5 utiliza un rango muy pequeño de los datos originales, lo mismo con X11...
En ambas imágenes se seleccionan los nuevos datos. Quizás esto te ayude a encontrar la razón por la que hay una diferencia.

Re: modelo de implementaciónPrácticamente todas las variables X (con excepción de X12, X13 y X19) son significativamente diferentes, en promedio, entre los dos conjuntos.Entonces, mi suposición sería que los nuevos datos no son simplemente otra muestra aleatoria de la misma población, sino que provienen de una población diferente.No es sorprendente que su modelo, que se ajusta bastante bien a los datos originales, tenga tan malos resultados con datos nuevos, cuando esos datos nuevos provienen de una población diferente.
Supongo que la pregunta que hay que hacer es ¿por qué proviene de una población diferente?Aparentemente pensó que los datos se estaban extrayendo de la misma población (o algo parecido).Pero muchas de estas variables parecen tan diferentes entre los dos conjuntos que tal suposición claramente no es correcta.
Para ver las diferencias, concatené las 2 tablas y simplemente usé Ajustar Y por X, siendo Y todas sus variables X y siendo X la tabla fuente creada cuando las concatené.