¿Cómo elegir el mejor modelo de machine learning?
west

¿Cómo elegir el mejor modelo de machine learning?

Si estás pensando en crear un proyecto de machine learning, tienes que tener en cuenta que no siempre tener un modelo con mejor rendimiento será tu mejor solución.


Nodd3r
3 de Agosto de 2022 . 10 min
 ...

En este blog te contaremos el por qué, a diferencia de lo que se cree, no siempre tu mejor opción entre varios modelos de machine learning, es el que tiene un mejor rendimiento.

Antes de nada, tenemos que tener en cuenta una cosa y es que, al igual que en la vida cotidiana, cuando tomas una decisión, ya sea de la índole que sea, tienes en cuenta distintos aspectos y eso ocurre también cuando decides qué modelo de machine learning se ajusta mejor a tus necesidades.

A continuación mencionaremos algunas de las consideraciones que se pueden tener en cuenta:


1. Rendimiento.

La calidad de los resultados del modelo es un factor fundamental a tener en cuenta a la hora de elegir un modelo. Es importante priorizar algoritmos que maximicen ese rendimiento.

Dependiendo del problema, diferentes métricas pueden resultar más útiles que otras para analizar los resultados del modelo. Por ejemplo, algunas de las métricas más populares son exactitud, precisión, recuperación y puntaje f1.

Y al igual que pasa con los modelos, no todas las métricas funcionan en todas las situaciones. Por ejemplo, la precisión no es adecuada cuando se trabaja con conjuntos de datos desequilibrados. 

Seleccionar una buena métrica o conjunto de métricas para evaluar el rendimiento del modelo es una tarea crucial antes de seleccionar el modelo.


2. Explicabilidad.

En muchas ocasiones, explicar los resultados que genera un modelo es lo primordial. Desafortunadamente, muchos algoritmos funcionan como cajas negras y los resultados terminan siendo difíciles de explicar, independientemente de lo buenos que sean.

Por ejemplo, la regresión lineal y los árboles de decisión son buenos candidatos cuando la explicabilidad es un problema, sin embargo, las redes neuronales no tanto.

La falta de explicabilidad puede ser un factor decisivo en esas situaciones. Comprender cuánto de fácil o difícil será interpretar los resultados de cada modelo es importante antes de elegir uno.

Y resulta curioso pero la explicabilidad y la complejidad son dos aspectos que suelen estar en ambos extremos del espectro, por eso este último va a ser el siguiente que explicaremos.


3. Complejidad.

A pesar de que un modelo complejo puede encontrar patrones que quizás resulten más interesantes en los dados, estos serán más difíciles de mantener y explicar.

A la hora de decantarnos por un modelo complejo, hay que tener en cuenta estos dos aspectos:

  • Una mayor complejidad puede conducir a un mejor rendimiento, pero también a mayores costos.
  • La complejidad es inversamente proporcional a la explicabilidad, cuánto más complejo sea el modelo, más difícil será explicar sus resultados.

El costo de construir y mantener cualquier modelo es un factor crucial para conseguir un proyecto exitoso. Por eso, una configuración compleja tendrá un impacto cada vez mayor durante todo el ciclo de vida de un modelo.


4. Tamaño del conjunto de datos.

La cantidad de datos de entrenamiento disponibles es uno de los principales factores a considerar a la hora de elegir un modelo.

Un red neuronal es realmente buena para procesar y sintetizar toneladas de datos. Sin embargo, un modelo KNN (K-Nearest Neighbors), al ser un modelo sencillo y fácil de aplicar, funciona mejor con menos ejemplos.

Además, más allá de la cantidad de datos disponibles, también es necesario conocer cuántos datos necesita realmente el modelo para lograr buenos resultados. En ocasiones, se puede crear una gran solución con 100 ejemplos de capacitación, en cambio, otras veces se pueden necesitar 100.000.


5. Dimensionalidad.

Se puede observar la dimensionalidad de dos maneras diferentes: el tamaño vertical de un conjunto de datos representaría la cantidad de datos que tenemos y el tamaño horizontal sería el número de entidades.

Ambas dimensiones influyen en la selección de un buen modelo. Por ejemplo, en el caso de la dimensión horizontal, cuántas más características tenga, a menudo eso llevará al modelo a encontrar mejores soluciones. 

Existe un fenómeno conocido como la maldición de la dimensionalidad que trataremos en otra ocasión para comprender mejor cómo la dimensionalidad afecta a la complejidad de un modelo.

No todos los modelos se escalan de la misma manera con conjuntos de datos de alta dimensión, algunos necesitan que se introduzcan algoritmos de reducción de dimensionalidad específicos cuando dichos conjuntos de datos de alta dimensión se convierten en un problema.  Uno de los algoritmos más populares para esto es PCA (Principal Component Analysis).


6. Tiempo y costo de la capacitación.

Aquí es donde te lanzo las siguientes preguntas: ¿Cuánto tiempo lleva y cuánto cuesta entrenar un modelo? ¿Elegirías un modelo con una precisión del 98% cuyo entrenamiento cuesta $100.000 o un modelo con una precisión del 97% que cuesta $10.000?

Por supuesto, la respuesta dependerá de las prioridades que tengas establecidas inicialmente.

Equilibrar el tiempo, los costos y el rendimiento es crucial al diseñar una solución escalable.

Los modelos que necesitan incorporar nuevos conocimientos casi en tiempo real no pueden permitirse largos ciclos de formación. Por ejemplo, un sistema de recomendaciones que debe actualizarse constantemente con la acción de cada usuario se beneficia de un ciclo de capacitación económico.


7. Tiempo de inferencia.

Vuelvo a lanzarte otra pregunta: ¿Cuánto tiempo te lleva ejecutar un modelo y hacer una predicción?

En el caso de un sistema autónomo, este necesita tomar decisiones en tiempo real, por lo tanto, no se puede considerar ningún modelo que tarde demasiado en ejecutarse.

Por ejemplo, la mayor parte del procesamiento necesario para desarrollar predicciones utilizando KNN ocurre durante el tiempo de inferencia. Esto hace que sea costoso ejecutar. Sin embargo, un árbol de decisión será más ligero durante el tiempo de inferencia y requerirá más tiempo durante el entrenamiento.


CONCLUSIONES.

Muchas veces las personas se fijan un modelo y lo hacen su favorito, ya que, por lo general, es el que mejor conocen y les dio buenos resultados en alguno de sus últimos proyectos.

Pero siento decir que no existe un modelo único que funcione en todas las situaciones, especialmente cuando consideramos las limitaciones de los sistemas de la vida real.

Comprender algunas de las diferentes consideraciones que se establecen a la hora de elegir un buen modelo es fundamental para garantizar un proyecto exitoso.

Y como resumen, aquí dejamos un listado de las consideraciones mencionadas anteriormente:

1. Rendimiento del modelo.

2. Explicabilidad de los resultados.

3. Complejidad del modelo.

4. Tamaño del conjunto de los datos.

5. Dimensionalidad. 

5. Tiempo de entrenamiento y costo.

6. Tiempo de inferencia.

También te puede interesar





...
Keras vs TensorFlow vs PyTorch: Diferencias clave entre frameworks de Deep Learning

En las últimas décadas, el Deep Learning está ganando popularidad.

...
Ventajas de aprender a programar en Python

A día de hoy, Python es el lenguaje de programación más usado. Si aún estás dudando de sus múltiples ventajas, en este post encontrarás algunas de las razones por las que deberías aprender a programar en Python

...
¿Cómo elegir el mejor modelo de machine learning?

Si estás pensando en crear un proyecto de machine learning, tienes que tener en cuenta que no siempre tener un modelo con mejor rendimiento será tu mejor solución.

...
Test de Turing

Qué es, cómo funciona y limitaciones del Test de Turing

...
Data Science: Qué es, qué se hace, qué se necesita y aplicaciones

Descubre qué es la ciencia de datos, para qué sirve y qué salidas tiene

...
Tipos de redes neuronales

El futuro de la Inteligencia Artificial ha llegado.

...
Underfitting vs Overfitting

Qué es, causas, cómo detectarlo y solucionarlo

...
Chatbot: ¿Qué es, para qué sirve y qué tipos existen?

Un chatbot es mucho más que un servicio de mensajería automática, pero... ¿sabes todo lo necesario sobre ellos?

...
¿Qué es Git?

¿Conoces Git? ¿Sabes lo que es un sistema de control de versiones? Si te gusta la programación, desarrollar tus propios proyectos, el desarrollo de software, etc. seguro que has leído algo sobre Git. Hoy te contamos todos los detalles acerca de esta herramienta.

...
¿Cómo funciona el algoritmo y el sistema de recomendación de Spotify?

¿Quieres saber cómo funciona el algoritmo de recomendación de Spotify? Descubre los tres modelos en los que se apoya su sistema de recomendación: Modelo de Filtrado Colaborativo, Modelo de Procesamiento del Lenguaje Natural y Modelo de Audio Sin Procesar

...
Errores más comunes en Python

Si quieres aprender a programar en Python o ya has empezado y quieres conocer los errores más comunes que se cometen, te invitamos a que leas este post.

...
¿Cómo hacer un proyecto de Data Science de forma eficiente?

En el post de hoy te vamos a dar algunos consejos para que puedas sacar el máximo partido a tu tiempo mientras desarrollas un proyecto de Data Science.

...
¿Por qué se utiliza Python en Data Science?

Si quieres saber a qué se debe la alta demanda de Python en Data Science y cómo se utiliza, no te pierdas esta nueva entrada a nuestro blog.

...
Cómo usa Netflix la Inteligencia Artificial para recomendar series

A través de su algoritmo de recomendación Netflix predice qué contenidos te van a gustar. Si quieres saber cómo funciona no te pierdas este blog.

...
Los 10 mejores proyectos de Machine Learning si eres Principiante

¿Quieres descubrir qué proyectos reales de Machine Learning puedes hacer si eres principiante?¿Quieres aplicar tus conocimientos de Machine Learning? ¿No sabes por dónde empezar? En el post de hoy te contamos 10 proyectos de ML que puedes hacer si eres principiante.

...
¿Cuál es la diferencia entre la Inteligencia Artificial y el Machine Learning?

¿Son la Inteligencia Artificial y el Machine Learning lo mismo? Si son dos conceptos distintos, ¿de qué forma están relacionados? Estas son algunas de las preguntas que mucha gente se hace, en el post de hoy veremos las diferencias entre ambos y la relación que tienen.

...
¿Qué es Inteligencia Artificial?

En este post hablamos un poco de la historia de la inteligencia artificial, qué es, los tipos que hay, sus aplicaciones y sus ventajas e inconvenientes.

...
¿Cómo aplicar Data Science en áreas como Marketing, Biología, Justicia y Arqueología?

El uso de la ciencia de datos está muy extendido, en el blog de hoy vamos a ver cómo podemos usarla en distintas áreas.

...
Deep Learning y Redes Neuronales Artificiales

En este post encontrarás que es el deep learning y todo lo que necesitas para poder comprender su funcionamiento y sus utilidades.

...
Historia del Data Science

En este post hacemos un repaso por la historia de la Ciencia de Datos, cómo surgió y cómo fue evolucionando.

...
¿Qué es el Machine Learning y qué aplicaciones tiene?

En este post vamos a hablar sobre Machine Learning, qué es y cuáles son algunas de sus aplicaciones.

...
¿Cómo el data science y el big data puede ayudar a tu negocio?

En este post vamos a hablar sobre cómo la ciencia de datos puede ayudar a mejorar un negocio.

...
¿Qué se necesita saber para ser Data Scientist?

En este post te hacemos un resumen sobre los conocimientos necesarios para trabajar como científico de datos.

...
¿Por qué estudiar Data Science?

En este post, te damos las claves de la importancia de estudiar ciencia de datos.

...
¿Cómo proteger nuestros datos?

En este post, te dejamos alguna información y trucos que puedes hacer para proteger mejor tus datos

...
¿Qué es Data Science?

Si no sabes lo que es la la ciencia de datos, ni para qué sirve, te lo contamos en este post.

...
Bienvenidos Nodd3rs

¡Bienvenidos a nuestro nuevo blog!

whatsapp