como entiendo que el algoritmo anterior seleccionará la variable importante por sí mismo y se llama algoritmo de ML porque no requiere intervención manual hasta ese punto.
Se llama ML porque el algoritmo aprende por sí mismo algunos patrones difíciles al mirar muchos datos, y aprendiendo cuando obtiene una predicción incorrecta, trabajando hacia el objetivo de un buen rendimiento en general.
Todavía necesitas señalarlo en la dirección correcta. O al menos observar de cerca lo que "aprende". No es magia, afortunadamente.
Un buen proceso de análisis siempre comienza con algo de EDA, porque aprendes por ejemplo qué variables son más interesantes en términos de lo que está relacionado con el resultado y lo que no lo está.
Esos algoritmos simplemente son "no lo suficientemente buenos" como para simplemente desechar la información que reciben cuando ven muchas variables ruidosas. Afortunadamente, todavía hay necesidad de un Científico de Datos después de todo.
RF y XGB te dicen que algunas variables tienen baja importancia, eso es correcto, pero porque utilizan aleatorización durante el proceso todavía pueden construir un árbol que utilice todas las variables ruidosas (no correlacionadas con el resultado) más una buena variable (altamente correlacionada).
Esto está relacionado en cierta medida con la maldición de la dimensionalidad también.
Entonces, no, el algoritmo no seleccionará las variables importantes por sí solo, utilizará todo lo que le arrojes en la olla para lograr su objetivo (alto rendimiento). Pero se perderá si el espacio de hipótesis es demasiado grande (lo cual lo es para 10k variables).
Y no alcanzará su máximo potencial, que se alcanza a través de ingeniería de características y selección de características, incluso después de un primer modelo donde proporcionas todas tus variables (por ejemplo Lasso seguido de Random Forest).