Modelado de partición: ¿Qué dicta la división de tamaño mínimo?No soy un estadístico de facto, pero he adquirido mucha experiencia en bioestadística durante muchos años, en gran parte gracias al uso de la versión estándar de JMP (actualmente v13). Ciertamente no puedo imaginar usar otra cosa y promocionarla regularmente.
Actualmente estoy definiendo progresivamente particiones en una variedad de variables continuas para optimizar el resultado en una variable categórica binomial (suspenso versus aprobado). He leído y visto mucho sobre esta plataforma y entiendo la necesidad de incluir validación y limitar el número de covariables a una lista corta práctica pero lógica.
Sin embargo, la división de tamaño mínimo es un parámetro del que no estoy seguro. Mi intención es definir particiones que minimicen, tal vez incluso mitiguen por completo, la falla en la variable de resultado. La partición resultante parece depender en gran medida del tamaño/proporción mínimos de división elegidos. Mi sensación es que uno debe elegir un tamaño lo más grande posible (esforzarse por llegar al 50%) mientras se mantiene un ojo en los valores LogWorth generados por cada división. Creo que un tamaño de división demasiado pequeño podría ser análogo a estar en riesgo de un error de tipo II. ¿Cómo entonces, aparte de lo que he sugerido, se determina qué proporción usar?
Además, y asumo que el modelo de partición no está considerando la corrección para comparaciones múltiples, ¿por qué el valor p equivalente de LogWorth para la división inicial no coincide con el resultado exacto de Fisher cuando se guarda la división resultante y se realiza un análisis de contingencia 2x2?
AnalíticaRe: Modelado de particiones: ¿Qué dicta la división de tamaño mínimo?Estimado DS
Una vez más, gracias por su detallada respuesta, que ha sido de gran utilidad. Debo admitir que, a pesar de ser un programador bastante exitoso en Filemaker, nunca he explorado realmente JSL, pero este es quizás el incentivo que necesito para hacer precisamente eso. Con respecto a R ^ 2, estaba al tanto de eso y ciertamente controlo el historial de división con respecto a este coeficiente. Afortunadamente, me topé con el uso poco publicitado de filas excluidas para la validación, que parecía contradictorio con lo que uno está acostumbrado durante el funcionamiento normal.
Re: Modelado de particiones: ¿Qué dicta la división de tamaño mínimo?Hola @34Sur ,
XGBoost es realmente potente y muy estable. Si vuelve a ejecutarlo varias veces, obtiene la misma respuesta, lo que no siempre es el caso para el bosque de arranque o el árbol potenciado.
encontré esto sitio web para ser MUY útil sobre cómo ajustar XGBoost y mejorar los modelos. Y, dado que está escrito para personas que ejecutan Python, debería estar listo para comenzar.
¿Ha considerado programar sus rutinas de ajuste para que pueda automatizar parte del proceso y dejar que se ejecute sin supervisión? Podría ser más rápido a largo plazo. Lo hago cuando busco el espacio de parámetros de ajuste para las otras plataformas basadas en árboles en JMP, a menudo ejecutando más de 30k de cálculos. Dependiendo de la plataforma, puede tomar entre 8 y 10 horas, pero lo dejo correr mientras hago otras cosas.
Definitivamente querrá monitorear su R ^ 2 para entrenamiento y validación para asegurarse de que no está sobreajustando los datos. Estoy tratando de ejecutar algunos modelos ahora, pero descubro que hasta ahora con las plataformas Neural Net y GenReg, regresa con R^2 que son más grandes para el conjunto de validación que para el conjunto de entrenamiento, lo cual es una gran advertencia. firmar. Personalmente, creo que es por el conjunto de datos que tengo y la distribución altamente anormal de los datos.
Una cosa muy buena acerca de dejar de lado los datos de prueba: en realidad, eliminar esos datos de la tabla de datos de entrenamiento para que JMP no pueda acceder a ellos cuando ejecute el ajuste. He tenido la experiencia antes de que, aunque escondí y excluí ciertas filas, los datos aún se usaban durante la validación cruzada, por lo que al comparar un gráfico real con el previsto para el conjunto de datos de prueba, se veía mejor de lo que realmente era porque algunos de los datos de prueba se estaban utilizando en el entrenamiento.
SD
Re: Modelado de particiones: ¿Qué dicta la división de tamaño mínimo?Estimado DS
Gracias por tu minuciosa respuesta. Desafortunadamente no tengo la versión Pro ($$$). El enfoque que tomé en el ínterin fue especificar un 20 % para la validación y luego comenzar con una división de tamaño mínimo del 45 %. Si eso fallaba, lo reduciría entre un 5% y un 40% y así sucesivamente hasta lograr una división. Luego lo ajustaría con incrementos de 1% hacia arriba, pero lo limitaría a donde el valor de LogWorth indicaba importancia. Como alternativa, establecería la división en el recuento de fallas en el conjunto original, o un poco más alto, para lograr la ubicación del 100 % de los casos fallidos en uno de los subconjuntos resultantes definidos por la división. Tomo su punto con respecto a un conjunto de prueba e intentaré hacerlo siempre que queden números suficientes para la validación y el entrenamiento. Probé XGBoost después de instalar Python, pero hay una curva de aprendizaje para que funcione.
Re: Modelado de particiones: ¿Qué dicta la división de tamaño mínimo?Hola @34Sur ,
¿Tiene JMP Pro o acceso a JMP Pro? Lo pregunto porque la plataforma de partición no es el mejor enfoque (el más estable) para generar fórmulas de predicción. Las plataformas Boosted Tree y Boostrap Forest son mucho mejores. O, si tiene acceso a versiones superiores, también puede ejecutar la plataforma XGBoost, que es muy estable.
Pero, en cuanto a su pregunta sobre la división de tamaño mínimo. Las divisiones de tamaño mínimo controlan la complejidad del "tocón" del árbol. Si el número de observaciones en una división es menor que el valor que estableció, no se genera ninguna división. No es demasiado relevante cuando usa boosting en su árbol de decisiones, pero puede usarse para controlarlo. No lo quiere demasiado pequeño (es decir, 1 observación) y tampoco lo quiere demasiado grande (por ejemplo, 1000 observaciones). Un buen punto de partida típico sería alrededor de 5 para un método de árbol simple. Si está usando algo como la plataforma de bosque de arranque, querrá usar N/2 para esquemas de clasificación como los que está usando, donde N es el número de observaciones. Es posible que pueda ajustar su modelo ajustando este parámetro y luego comparándolo con los diferentes modelos en un conjunto de datos de prueba.
Si tiene suficientes datos, recomendaría dividir una porción, tal vez 20-25% y mantenerla como un conjunto de datos de prueba que no se usa para entrenar o validar su modelo. Con los datos restantes, puede generar una columna de validación estratificada con datos de entrenamiento y validación (digamos 80/20) para optimizar la complejidad de su modelo y evitar que se sobreajuste. Después de generar varios modelos, puede usar los datos de prueba anteriores como una forma de comparar qué modelo es realmente mejor para predecir los resultados correctamente. Dado que está buscando un modelo de decisión binario, incluso puede optimizarlo aún más observando el aprendizaje sensible a los costos.
No soy un experto en cómo JMP calcula el valor del registro o la prueba exacta de Fischer, por lo que espero que alguien de JMP pueda responder eso, pero supongo que tiene que ver con todo el conjunto de datos y calcular el valor del registro en comparación con cuando guarda la fórmula dividida y hacer una tabla de contingencia.
Espero que esto ayude, o al menos dé algunas cosas en las que pensar.
¡Feliz modelaje!,
SD