Combinando modelosSi algo aprendí de Discovery Summit Americas este año fue lo común que es promediar y/o crear modelos de conjunto, algo de lo que había oído hablar pero que nunca había considerado (siendo un modelador novato). Entonces decidí hacerlo. Hacer un modelo de conjunto es fácil; Guardé el modelo como una fórmula de predicción y simplemente lo incluí como un predictor en la siguiente ronda de selección del modelo (usando la pantalla del modelo de JMP Pro 16). Lo que parecería más sencillo, el promediado de modelos, me confunde. Si encuentro dos modelos que me gustan, los guardo como fórmulas de predicción en mi tabla de datos y luego creo una nueva columna en la que se combinan, parece que la probabilidad se combina, pero la fórmula no está en una sintaxis en la que yo podría aplicarlo a datos nuevos (solo muestra el promedio de las probabilidades). Si publico ambos modelos en Formula Depot, puedo promediarlos de esa manera con bastante facilidad, así que esa es mi solución alternativa actual, pero ¿no debería TAMBIÉN poder promediarlos en la tabla misma? Creo que el problema podría ser que, debido a que la fórmula de predicción tiene una fórmula Y una probabilidad, cuando voy a combinarlas, solo se promedia la probabilidad, cuando en realidad quiero promediar las fórmulas mismas. ¿Puedo promediar ambos de una manera que me permita copiar esa fórmula promediada en una nueva tabla de datos y probarla con datos nuevos? De lo contrario, Formula Depot fue diseñado para hacer precisamente esto, por lo que no es gran cosa. ¡Solo quiero tener algunas opciones! ¿Quizás simplemente elimino la parte de probabilidad donde SÓLO queda la fórmula en la celda de información de la columna?
Modelado predictivo y aprendizaje automáticoRe: Combinando modelos¡Sí! Creo, como siempre, que tienes razón en cuanto a la extraña naturaleza de intentar predecir una variable categórica, en la que efectivamente necesitas dos ecuaciones, lo que complica las cosas. Lo que espero hacer es eventualmente tener un tamaño de muestra lo suficientemente grande como para tener un gradiente real, ya sea 1-10, 1-5 o 1-100, la idea es la misma: 1=terrible, el número más alto=excelente . Incluso en este caso, tengo dos categorías (resistente al blanqueamiento versus sensible al blanqueamiento) o, a veces, tres (las dos primeras + "intermedio"). Podría jugar a recodificarlos como 1, 50 y 100 para susceptible, intermedio y resistente, respectivamente, y ver qué tipo de resultados obtengo. Creo que cuantas más muestras obtengo y analizo, más sentido tiene que mi Y sea una variable continua. Con 20 muestras con las que estoy jugando ahora, no tengo suficientes datos para ir más allá de 2 o 3 contenedores. Pero será interesante ver si mis modelos se ven muy diferentes cuando recodifica mis clasificaciones categóricas en una variable continua. Seguramente haría que la construcción de modelos fuera más fluida. Y en realidad, en la naturaleza NO será tan simple como "sano" versus "enfermo"; ESPERO detectar un gradiente que abarque un espectro de salud como el que se vería en los humanos (por ejemplo, lo que se ve en el conjunto de datos de diabetes de JMP). Sin embargo, lo curioso de este ejercicio, con respecto a la puntuación de probabilidad, es que nunca los miré mucho; Fui directamente a la "suposición" de JMP. Pero ahora mirar las probabilidades reales es muy interesante porque eso es, en última instancia, lo que quiero informar: el coral A tiene un 95% de posibilidades de blanquearse. Entonces, a través de este ejercicio de promedio de modelos, ¡accidentalmente recogí algunos matices interesantes que antes me había perdido por completo! Y como dije antes, incluso si estoy "atascado" con respuestas categoriales por el momento, la función de promedio de modelos de Formula Depot funciona bien para esto.
Le alegrará saber que, gracias a su GUI, hay más de 20 000 modelos de redes neuronales (21 450, ¡¿pero quién cuenta?!) en mi artículo enviado recientemente (que describe esencialmente la fase 1 = el experimento de laboratorio). Obviamente, solo unos pocos pasaron todo el control de calidad, y aún menos se analizan en profundidad en el texto, pero fue extremadamente útil ver qué parámetros NN son esencialmente más importantes para mí. Además, quiero construir el modelo más simple y (potencialmente) más parsimonioso, de modo que si un NN tiene dos capas ocultas, cada una con tres nodos de activación, mientras que un segundo modelo tiene una capa con NTANH(3), en igualdad de condiciones, Elegiría este último, aunque supongo que esto no es realmente crítico ya que incluso el más simple es bastante complejo. Una cosa que traté de aprender este año en Discovery, lo cual hice gracias a Chris Gotwalt, es si las métricas de importancia variable bajo NN Profiler se pueden usar para decir esencialmente qué analitos fueron más influyentes en el modelo. La antigua regla era que los NN son una caja negra, y es demasiado complicado determinar qué variables de respuesta eran las más importantes, pero me alegra ver que esto no es del todo cierto. ¿Son difíciles de interpretar? Sí. ¿Puedes decir que el comportamiento de una proteína escala de una manera particular y fácilmente definida con el poder predictivo del modelo? Tal vez no. Pero si un biólogo molecular me preguntara: "¿Qué proteínas de coral fueron las más importantes en su mejor modelo NN?", al menos podría enumerar algunas de las características de importancia variable del perfilador NN. En realidad, esta es la razón por la que elegí discutir el modelo gen-reg en mi charla; No estaba seguro de poder "confiar" en el generador de perfiles para un NN (!), pero ahora veo que puedo. Pero de todos modos, esta es la razón por la que, como modelo novato, me beneficio tanto de este tipo de simposios. Gracias de nuevo por su respuesta bien pensada y toda su ayuda en general.
Re: Combinando modelosHola @abmayfield ,
Me gustó su charla, aunque tuve que verla a pedido, no pude asistir a la visualización en vivo y a las preguntas y respuestas.
Normalmente, podrá promediar las columnas de predicción si utiliza una fórmula de regresión típica, algo que sea numérico. Simplemente tomarías el promedio de los dos. Pero, dado que está trabajando con un valor categórico de sí o no (o incluso tal vez), se vuelve más complicado porque tiene que transformar las entradas numéricas X en una función logística que luego encuentra la probabilidad y compara los resultados con un IfMax( ) función.
Tomemos, por ejemplo, el archivo Big Class. Si intentas predecir :sexo con :altura y :peso, obtienes una función de salida logística; en mi ejemplo, estoy tratando de predecir sexo = M. Sin embargo, existen funciones intermedias que se utilizan para determinar el Prob[M] y el Prob[F]. La función lineal es simplemente eso, algo así como Lin[M] = a + b*:height + c*:weight, donde a, byc son solo coeficientes de ajuste. Para obtener las probabilidades, JMP usa la transformación 1/(1_exp(-Lin[M])) para Prob[M] y 1/(1+exp(Lin[M]) para Prob[F], que es solo 1- Problema[M]. El resultado más probable es entonces MaxIf(Prob[M]=>M, Prob[F]=>F) y cualquier Prob[y] que sea mayor es el resultado más probable, M o F.
En su caso, si trabaja con resultados categóricos, creo que necesitará promediar las funciones Lin[Y] para luego transformarlo en una probabilidad. Es la función lineal la que se ajusta a los datos, no la función de probabilidad, por eso es necesario promediar antes de transformar la función lineal.
Si puede cambiar su resultado a una respuesta continua, entonces un promedio simple de fórmulas de predicción es sencillo. Siempre que el tipo de modelado sea nominal u ordinal, JMP lo tratará como niveles discretos y realizará un modelado logístico cada vez.
Una idea que tuve para usar una escala continua es representar el porcentaje de decoloración dentro de un área determinada. Digamos que evalúa 100 cm^2 (un parche de 10 cm x 10 cm) de coral y determina que aproximadamente 2 cm X 3 cm (o 6 cm ^2) están blanqueados, entonces el porcentaje de blanqueamiento sería del 60 %. Al hacerlo de esta manera, puede obtener una representación más precisa de qué parte de un espécimen de coral se blanquea y ahora tiene una respuesta continua que se puede modelar con regresión versus clasificación.
¡Espero que esto ayude!,
DS
PD La Cumbre de Descubrimiento fue genial. Me gustaron muchas las charlas. Además, estoy actualizando mi GUI para generar automáticamente las tablas de ajuste según la entrada del usuario. Te avisaré cuando la nueva versión esté lista. Debería ayudar a automatizar aún más el proceso generando un diseño de relleno de espacio con la cantidad de ejecuciones que desea realizar.
Re: Combinando modelosSegún su descripción, parece que desea promediar las predicciones (discretas) en lugar de las probabilidades (continuas).No lo he visto hecho de esa manera.Existe una técnica, la predicción conforme, que está diseñada para ver qué tan robustas son las predicciones de un modelo.Pero lo que estás describiendo se vería así: supongamos que hay 2 clases para predecir y las codificas como continuas, 0 y 1. Supongamos que tienes 3 modelos: 2 de ellos predicen un 0 para un caso particular y 1 predice un 1 Entonces, su "promediado" produciría un resultado de 1/3, que supongo que tomaría como la probabilidad de obtener 1. Idea interesante, pero no estoy seguro de qué base estadística tiene tal enfoque.Además, parece que se limitaría a clasificaciones binarias (aunque eso es sólo un límite).Me interesará ver qué otras respuestas obtienes.