Cómo una solución probada y comprobada puede producir excelentes resultados al abordar un problema de aprendizaje automático cotidiano
Con tanta atención puesta en la IA generativa y las vastas redes neuronales, es fácil pasar por alto los algoritmos de aprendizaje automático probados de antaño (en realidad no son tan antiguos…). Me atrevería a afirmar que, en la mayoría de los casos empresariales, una solución sencilla de aprendizaje automático irá más allá que la implementación de IA más compleja. Los algoritmos de ML no solo escalan extremadamente bien, sino que la complejidad mucho menor del modelo es lo que (en mi opinión) los hace superiores en la mayoría de los escenarios. Sin mencionar que también me ha resultado mucho más fácil rastrear el rendimiento de dichas soluciones de aprendizaje automático.
En este artículo, abordaremos un problema de ML clásico utilizando una solución de ML clásica. Más específicamente, mostraré cómo se puede (en solo unas pocas líneas de código) identificar la importancia de las características dentro de un conjunto de datos utilizando un clasificador de bosque aleatorio. Comenzaré demostrando la efectividad de esta técnica. Luego aplicaré un enfoque de “regreso a lo básico” para mostrar cómo funciona este método en su interior mediante la creación de un árbol de decisión y un bosque aleatorio desde cero mientras comparamos los modelos a lo largo del camino.
He descubierto que las fases iniciales de un proyecto de ML son particularmente importantes en un entorno profesional. Una vez que las partes interesadas (quienes pagan las facturas) hayan determinado la viabilidad del proyecto, querrán ver el retorno de la inversión. Parte de esta discusión de viabilidad implicará discusiones sobre los datos: si hay datos suficientes, si los datos son de alta calidad, etc., etc. Algunas respuestas a la distribución y calidad de los datos sólo pueden responderse después de algunos análisis iniciales. La técnica que muestro aquí supone que ha completado la evaluación de viabilidad inicial y está listo para pasar al siguiente paso. La pregunta principal que debemos hacernos en este punto es: ¿cuántas funciones puedo eliminar manteniendo el rendimiento del modelo? Hay muchos beneficios al reducir la cantidad de características (dimensionalidad) de nuestro modelo. Estos incluyen, entre otros:
- Reducir la complejidad del modelo
- Tiempos de entrenamiento más rápidos
- Reducir la multicolinealidad (características correlacionadas)