3 votos

Los bosques aleatorios tienen un rendimiento mucho menor que el de Naive Bayes

En uno de mis cursos de Aprendizaje Automático tengo que encontrar el mejor predictor para este conjunto de datos y su objetivo binario "Caesarian".

En primer lugar, traté de mejorar los datos : hay pocas características. Hice One-Hot-Encoding en :

  • Tiempo de entrega
  • Presión arterial
  • Problema del corazón (ya hecho en la base de datos como binario)

He normalizado mis datos para las columnas Edad y Número de entrega.

Luego hice k-fold con Random Forests, Naive Bayes, GLM y algún otro, probé varios k para el k-fold, $k\in \{1,2,3,6,8,16\}$ y me sorprendió mucho el escaso rendimiento de las predicciones de Naive Bayes (más del 30% de error de media para el pliegue k, independientemente de k) y, sobre todo, me sorprendió mucho que RandomForest cometiera un error del 40% de media, independientemente de k $k$ y con diferentes valores para el número de árboles, desde decenas hasta miles, y también diferentes valores para el número de variables muestreadas ramamente como candidatas en cada división.

Probé con Leave-One-Out para calcular el error, y es lo mismo, el modelo Naive Bayes es bastante malo, y todavía sorprendentemente, el Random Forest es peor que Naive Bayes.

¿Hay algo que se me haya escapado? Puedo entender que Naive Bayes puede tener un mal rendimiento de clasificación, ya que realmente depende de los datos y es un clasificador muy débil, pero ¿qué pasa con RandomForest?

Así que dos preguntas ahora :

  1. ¿No se supone que los bosques aleatorios tienen un mejor rendimiento?
  2. ¿Qué puedo hacer para mejorarlos o al menos entender por qué es tan malo?

Aquí están los boxplots del MSE que obtuve para un 6-fold :

Boxplot

Nota : Todavía no he intentado optimizar el embolsado

5voto

Mark White Puntos 569

La ambigüedad proviene del hecho de que el cumplimiento del requisito de tiempo de retención depende del retardo de propagación.

Si se asume que el retardo de propagación del FF es siempre mayor que el tiempo de retención, entonces el retardo de propagación asegura que se cumpla el tiempo de retención y tclock >= tprop + tsetup.

Sería inusual que el retardo de propagación de un FF fuera más corto que el tiempo de retención.

Por supuesto, hay una complicación adicional causada por el hecho de que el retardo de propagación, la configuración y la retención cambian con el voltaje y la temperatura, y hay que tener en cuenta la desviación entre los relojes de los FF de origen y destino.

4voto

JornC Puntos 81

Como señala Mark, la precisión depende de los datos.

Por ejemplo, si un índice bursátil es realmente un paseo aleatorio, no vas a poder predecirlo bien.

Tomé este conjunto de datos y lo dejé correr durante 30 minutos en un programa automatizado que busca entre un montón de modelos. Incluso después de ese tiempo, la precisión de validación cruzada fue del 72,5% (27,5% de errores). Eso no es mucho mejor que Naive Bayes.

Debido a que la ejecución de los datos a través de un procedimiento totalmente automatizado no es probable que sea lo que su instructor de aprendizaje automático quiere, voy a omitir los detalles.

En general, he encontrado que los Bosques Aleatorios funcionan mejor que los Bayas Ingenuas, pero ciertamente hay excepciones. Los métodos que nunca funcionan mejor tienden a desaparecer; los métodos que se siguen utilizando tienden a funcionar bien en algún conjunto de circunstancias.

4voto

aranglol Puntos 56

En mi opinión, una razón potencialmente más importante de por qué los bosques aleatorios están haciendo bastante mal aquí es sobre todo debido al tamaño de su conjunto de datos.

Su conjunto de datos está compuesto por un total de 80 observaciones con cinco características, lo que es increíblemente pequeño para ajustar un bosque aleatorio. Considere cómo un árbol de clasificación genera sus predicciones, el aprendiz base para un conjunto de bosques aleatorios. La probabilidad final predicha de estar en una clase específica será simplemente la proporción de observaciones (en un único nodo terminal del árbol) que pertenecen a esta clase con respecto al número total de observaciones en ese mismo nodo terminal. Un bosque aleatorio ajusta muchos de estos árboles de decisión en muestras bootstrap de sus datos y luego toma una media de todos los árboles para obtener la predicción final. Por lo tanto, con sólo 80 observaciones, sus probabilidades ajustadas de pertenecer a una u otra clase se basarán en muy pocas observaciones, lo que muy probablemente conducirá a grandes variaciones en sus predicciones (es decir, a un severo sobreajuste). Por lo tanto, no es sorprendente ver que los modelos más simples funcionan mejor en este caso, ya que un bosque aleatorio en general requiere una gran cantidad de observaciones para funcionar bien. Esto también es válido para modelos como las redes neuronales, el gradient boosting, los bosques codiciosos regularizados y otros métodos muy (populares) que muchos consideran algoritmos de "alto rendimiento" (al menos en 2018).

En general, he comprobado que cuantos menos datos se tengan, menos complejos pueden ser los modelos. Los métodos basados en conjuntos y los modelos que se ajustan a una gran cantidad de parámetros no funcionan bien en cantidades pequeñas de datos porque simplemente no hay suficiente información para estimar relaciones muy complicadas dentro de los datos; que es en general la razón por la que la mayoría de la gente utiliza estos algoritmos más complejos en primer lugar.

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