¿Alguien puede resumir en base a sus experiencias sobre qué técnicas de aprendizaje automático se adaptan a qué problema?

Primero, me gustaría decir que el aprendizaje automático es del 10% sobre modelos y del 90% sobre metodología, y esa metodología no es muy específica del problema:

  • ¿Cómo define el problema? ¿Cuál es tu objetivo? ¿Cuál es la pregunta que estás tratando de responder? ¿Cuál es un ejemplo en su conjunto de datos?
  • ¿Cómo elige y genera características que son relevantes para su objetivo?
  • ¿Cómo se validan los resultados de forma cruzada, qué significa la métrica de validación para la empresa?
  • ¿Cómo sacar provecho del modelo en producción? ¿Hay algún problema en particular, como bucles de retroalimentación ocultos o biais de presentación?

Dicho esto, déjame intentar responder y hablar sobre modelos:

Para mí, los bosques aleatorios y los árboles potenciados por gradientes (XGBoost) harán el truco la mayor parte del tiempo.

Al final del día, los SVM, KNN, redes neuronales, etc. son una gran parte de la literatura de aprendizaje automático, pero pocas personas los usan y a menudo los superan los árboles ensamblados. Los árboles ensamblados son muy robustos, pueden manejar todo tipo de variables, son fáciles de ajustar, capaces de generar representaciones no lineales de los datos fácilmente, rápidos de entrenar, se pueden interpretar si trabajas un poco en ellos … Siempre dales un disparó primero.

En segundo lugar, el modelo es importante pero hay más: las variables con las que está aprendiendo. La forma en que se procesan las variables es un problema y un dominio específico.

Algunos casos :

  • Serie de tiempo : Tendrá que generar características para su modelo específicas de este tipo de datos antes de alimentar el algoritmo. Por ejemplo, promedios móviles, representación agrupada de sus datos, minería de patrones con SPADE, etc. Puede alimentar eso a un RF
  • Datos de texto : debe generar características como TFIDF de las palabras, derivar las palabras, usar la representación de word2vec, etc.
  • Datos de gráficos : tiene algunas posibilidades de usar algoritmos de gráficos para crear características para su modelo, como la centralidad de los nodos, por ejemplo …

Creo que los árboles ensamblados y la ingeniería de características específicas del dominio cubren el 90% de los problemas en los que he trabajado … pero, sí, hay otros casos en los que la ingeniería de características no es la respuesta y necesitas usar modelos y enfoques específicos :

  • Imágenes (o cualquier tipo de datos que esté muy desestructurado y que pueda ser complicado) : el estado actual de la técnica son los algoritmos de aprendizaje profundo, debo mencionarlo, pero no veo mucha gente trabajando en imágenes, excepto Google, Facebook o laboratorios especializados de investigación.
  • Datos cuya señal está cambiando realmente rápido : imagine que se encuentra en un caso en el que no puede usar datos demasiado antiguos para predecir los siguientes ejemplos con precisión, por lo que necesita una especie de algoritmo que aprenda ejemplo tras ejemplo y maximice el conocimiento de los últimos datos. A esto se le llama aprendizaje en línea, y la mejor biblioteca para eso es Wongpal Wabbit. Para mí, a menudo ha sido útil para modelar procesos industriales o fenómenos sociales.
  • Preferencia de usuario de modelado : motores de recomendación aquí … puede usar árboles con clasificación multiclase, pero solo ayudarán a modelar comportamientos como su preferencia según el contexto, el tiempo de la recomendación, por ejemplo. No “gusto”.

Como conclusión, la principal dificultad es definir el problema y una forma de validar los resultados. Cuando está hecho, siempre puedes dar una oportunidad con árboles ensamblados. En algunos casos, tendrá que generar funciones específicas para su tipo de datos (series de tiempo, texto, gráfico …). En algunos otros casos, el problema es totalmente diferente y puede resolverse con campos más específicos en el aprendizaje automático (reconocimiento de imágenes / aprendizaje profundo, motores de recomendación, aprendizaje en línea …).

hay 2 tipos básicos de aprendizaje

1. Supervisado

– Con el aprendizaje supervisado, utilizamos un conjunto de datos de resultados etiquetados para “entrenar” nuestro algoritmo con el objetivo de predecir resultados futuros. Un ejemplo básico es la regresión lineal simple, ajustando una línea a un gráfico usando mínimos cuadrados ordinarios y usando la ecuación de esa línea para predecir y dado x. Un ejemplo común de aprendizaje supervisado mediante regresión multivariable es predecir el precio de una vivienda dada alguna variable, como pies cuadrados / ubicación / dormitorios / piscina / etc.

También es importante distinguir las nociones de multivariable versus multivariado, ya que muchos principiantes se confunden. Multivariable es una regresión simple con salida escalar Y y entrada vectorial X. Mientras que la regresión multivariada usa el modelo lineal general donde Y es un vector.

2. Sin supervisión

– Con el aprendizaje no supervisado, no tenemos el beneficio de los resultados etiquetados, pero debemos inferir una función que pueda usarse para determinar la estructura de los datos. Un ejemplo es la agrupación, un método de clasificación no supervisado que busca diferenciar los objetos por sus atributos y clasificarlos en grupos cuyos miembros son más similares entre sí.

Por ejemplo, tengo imágenes de frutas sin etiquetar y me gustaría clasificarlas en plátanos, piñas, naranjas, etc. Puede que mi algoritmo no sepa cómo se debe ver un plátano, pero sé que los plátanos y el amarillo / verde son de un forma más alargada que las naranjas, por lo que puedo usar estas características para mi ventaja.

En caso de que se pregunte, un ejemplo de clasificación supervisada sería entrenar un algoritmo para reconocer la escritura a mano humana, donde el conjunto de datos MNIST se puede usar para proporcionar ejemplos de los que su algoritmo puede aprender.


Hay muchas técnicas utilizadas en el aprendizaje automático hoy en día, de hecho, demasiadas para enumerarlas en esta respuesta. Sin embargo, describiré brevemente algunos de los más populares.

Redes neuronales

– Las redes neuronales son imitaciones muy básicas de nuestros cerebros. Hay neuronas de entrada y neuronas de salida con sinapsis que conectan varias capas / nodos ocultos entre ellas. La red utiliza un algoritmo de retropropagación para lograr una salida deseada dada una determinada entrada al alterar los valores de los pesos asignados a los nodos. Cuando escuchas “aprendizaje profundo” probablemente se refiere a una red neuronal con muchas capas. Obviamente las cosas se vuelven mucho más complicadas que esto.

Máquinas de Vector Suppot

– Los SVM son de naturaleza versátil y se pueden usar para tareas que involucran aprendizaje no supervisado o supervisado. En el caso de la clasificación supervisada de 2 resultados, un SVM actúa como un clasificador binario al separar todos los ejemplos en 2 espacios en el plano y asignar nuevas entradas a uno de esos 2 espacios. El espacio más grande (hiperplano de margen máximo) entre los 2 espacios, más fácil de clasificar. Con el aprendizaje no supervisado, el SVM se convierte en un SVC, agrupando datos en un # de grupos usando una técnica similar complementada por lo que se conoce como el truco del núcleo.

Esta pregunta no tiene una respuesta definitiva y, según las experiencias y la experiencia de alguien, esta respuesta puede llegar a cualquier límite. Prefiero recomendarle este famoso cuadro de algoritmos de ML de scikit-learn [1] que puede usarse como una ‘regla de oro’ pero nuevamente no de manera definitiva.

Es posible que desee leer esta pregunta similar existente en Quora: ¿Cuál es el mejor algoritmo de aprendizaje automático?

Notas al pie

[1] Cheat Sheet de Machine Learning (para scikit-learn)

More Interesting

Si pudieras elegir cualquier proyecto de IA para trabajar en este momento, ¿cuál sería?

¿Los humanos solo están viviendo computadoras que ejecutan código genético en forma de ADN, y nuestro comportamiento puede explicarse como la interacción entre programas en ejecución en sus contenedores a base de carbono?

¿Cuánto puede ganar un experto en aprendizaje automático en el mercado laboral corporativo?

¿Cuáles son los algoritmos de inteligencia artificial (IA) que todo estudiante de informática debe conocer?

¿Se pueden usar los mismos datos para entrenar diferentes algoritmos de aprendizaje automático para un problema de clasificación binaria?

Si las células 'tontas' individuales independientes pueden agruparse para desarrollar la conciencia y la vida inteligente (es decir, nosotros), ¿por qué los grupos de hormigas ya inteligentes (que ya exhiben un comportamiento grupal inteligente) se convierten en un 'enjambre' inteligente con conciencia cuya inteligencia enana incluso el nuestro?

Estoy planeando obtener una maestría en CS con especialización en inteligencia artificial de buenas universidades de EE. UU. ¿Cómo escribo un SOP para eso?

¿Necesito un maestro para seguir el aprendizaje profundo de Computer Vision?

¿Por qué están preocupados Elon Musk y Bill Gates por los avances en el aprendizaje automático y la IA? ¿Cuál es el fundamento de sus miedos?

¿Cómo logran las redes neuronales para imágenes / caras la invariancia traslacional ('colapsar' la misma cara en diferentes regiones de la imagen en la misma salida)?

¿Qué características se deben agregar a DeepThought (Promethea AI)?

¿Es posible pasar directamente a la investigación de aprendizaje automático después de un doctorado en física teórica?

¿Cómo se desarrolló la IA para AOE2?

¿Cuál es la controversia sobre la IA?

¿El robot reemplazará a los contadores en el futuro cercano?