¿El bosque aleatorio funciona con variables categóricas?

Como se ha señalado, depende de la implementación. Scikit-learn requiere un hot (o lo hizo la última vez que lo verifiqué), y R’s randomForest puede hacer con cualquiera.

Sin embargo, debe tener cuidado, en general, al tratar con variables categóricas y bosques aleatorios. Especialmente aquellos con muchos niveles. No solo aumentan la complejidad computacional para crear los árboles (y, por lo tanto, el bosque), sino que también pueden tener más importancia de la que desearía. Una cita del artículo de Wikipedia sobre bosques aleatorios (en la sección de selección de variables): “Para los datos que incluyen variables categóricas con diferente número de niveles, los bosques aleatorios están sesgados a favor de aquellos atributos con más niveles”. Si bien Wikipedia no siempre es la mejor fuente, es perfecto aquí.

Hay formas de superar esto, como explica el artículo, mencionando permutaciones parciales y árboles imparciales (vea aquí la sección relevante del artículo de Wikipedia), pero de nuevo, a menos que desee implementarlos usted mismo, debe encontrar una implementación que lo haga esta.

Depende de la implementación, algunas bibliotecas convertirán variables categóricas a ficticias para usted (funciona en randomForest de R si no recuerdo mal).

Otras bibliotecas funcionan con estructuras matemáticas (matrices) ya bien formadas, como scikit-learn de Python, y por lo tanto arrojan errores cuando el formato no corresponde.

Sin embargo, una de las variables categóricas de codificación más rápidas es una práctica recomendada, ya que le permite verificar las categorías subrepresentadas y otros patrones que reducen de una forma u otra el rendimiento de la predicción.

Sí, porque dentro de RF hay un montón de árboles de decisión. Cualquier árbol de decisión puede funcionar tanto en valores numéricos como categóricos.

Si trabaja con variables que tienen un número diferente de niveles o si trabaja con una combinación de variables que son continuas y categóricas, use bosques aleatorios condicionales en lugar de bosques aleatorios estándar. Este último será parcial. Hay paquetes en R para realizar RF condicional. Saludos cordiales

Sí, pero no lo recomendaría si tiene variables categóricas con muchos niveles. El tiempo de cálculo y el sesgo dañarán su modelo.