1 votos

Predicción de límites de la variable dependiente acotada en Random Forest

Soy nuevo en el aprendizaje automático e intento utilizar Random Forest para predecir una variable dependiente acotada (porcentaje de 0 a 100). La mayoría de los puntos de datos de entrenamiento (~80%) están en los límites de estos límites, así que o bien 0 o bien 100.

Lo que estoy comprobando es que mis predicciones nunca llegan a estos límites. Por ejemplo, en lugar de predecir el 100, predice, por ejemplo, el 80% (véase el gráfico real frente al predicho más abajo). Para otras variables dependientes que tengo, la mayoría de los puntos de datos están en 100 exactamente (pero no bajan hasta 0), sin embargo, como con el otro ejemplo, esto nunca es capaz de predecir el límite, en lugar de dar valores de alrededor de 96% como máximo. Esta pequeña diferencia, por desgracia, tiene importantes implicaciones para mi trabajo y no puede ser utilizada.

enter image description here

¿Alguien puede ayudar a explicar por qué esto puede ser el caso y sugerir algunos consejos para resolver?

Estoy utilizando el paquete R "MultivariateRandomForest" y hasta ahora he intentado variar sistemáticamente el número de árboles, características y hojas utilizadas en el modelo, pero sin ver ninguna mejora real. También he probado a dividir la variable dependiente en dos mitades (0-50 y 50-100). Aunque esto mejoró las predicciones para la mitad superior, el mismo problema persistió y no se alcanzaron los límites.

He leído este documento https://arxiv.org/pdf/1901.06211.pdf que habla de usar una distribución beta, pero como soy nuevo en esto, no estoy seguro de cómo implementar esto o si es realmente una solución viable.

Muchas gracias, Josh

0voto

user271401 Puntos 31

Un árbol de decisión funciona esencialmente dividiendo el conjunto de trenes en particiones. La predicción se obtiene seleccionando la partición a la que pertenece su punto de datos no visto, y luego el valor de salida se calcula como la media de todos los valores de la variable dependiente en esa partición.

Mi opinión es que las particiones que obtienes nunca contienen todos los valores 0 (o todos los 100), por lo que al calcular la media obtienes valores ligeramente superiores (o inferiores) a los esperados. Además, Random Forest entrena un montón de árboles de decisión y luego toma la media de las predicciones de cada árbol, así que aquí tienes aún más posibilidades de que la salida se desvíe de los valores extremos.

Podrías intentar entrenar árboles con sólo una (o unas pocas) muestras por hoja para tener más posibilidades de llegar a los extremos, pero te aconsejo que no lo hagas porque el modelo se sobreajustaría mucho.

Nunca he oído hablar de ese enfoque de Random Forest con distribución Beta que enlazaste, así que no sé si funcionaría bien. Sin embargo, podrías intentar utilizar un modelo lineal más sencillo en lugar de uno basado en árboles.

Hay algo que se llama Regresión Beta (intente buscar en este ya que usas R), pero no sé nada al respecto, así que no estoy seguro de que sirva de algo.

Si no es así, puede intentar consultar los modelos lineales generalizados. Son una clase general de modelos lineales que pueden ajustarse a diferentes distribuciones de una variable objetivo. Lamentablemente nunca los he utilizado en la práctica, así que lo dejaré como una sugerencia. Tal vez alguien más experto que yo pueda aconsejarte mejor sobre este tema.

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