¿Cuáles son algunos algoritmos de aprendizaje automático de los que siempre debe tener una sólida comprensión y por qué?

Creo que uno necesita tener un conocimiento competente de 1-2 técnicas en:

  • Regresión
  • Clasificación
  • Agrupamiento
  • Filtración colaborativa
  • (Bonificación) Inferencia a través de modelos gráficos

Ciertamente, es valioso e importante comprender la regresión lineal simple.

El descenso de gradiente es importante porque sustenta las técnicas comunes de clasificación como la regresión logística. También: la máquina de vectores de soporte.

También animo encarecidamente a las personas a tener un conocimiento práctico de la clasificación / regresión forestal aleatoria. Es inherentemente un método de conjunto, efectivo y tiene propiedades diferentes a las anteriores.

K-means ++ clustering es imprescindible.

Para el filtrado colaborativo, los métodos de vecindario son lo suficientemente simples que casi no merecen mención. Intentaría comprender los modelos de factores latentes basados ​​en la factorización de matriz de bajo rango como la descomposición de valores singulares o mínimos cuadrados alternos simples (http://yifanhu.net/PUB/cf.pdf)

Bonificación: métodos MCMC (cadena Markov Monte Carlo) para modelos gráficos.

Todo este campo del aprendizaje automático es muy amplio y decentemente profundo. Sin embargo, las personas que comienzan de nuevo no deben sentirse abrumadas. Aquellos que están haciendo estas cosas por más tiempo deben aumentar el ancho y la profundidad de sus conocimientos de dos profesores realmente buenos: Home – Andrew Ng y Nando de Freitas.

Puede consultar algunas de mis otras respuestas sobre Python / Machine Learning / Deep learning en el siguiente.


  • La respuesta de Rohit Malshe a ¿Cómo puedo convertirme en un científico de datos?
  • La respuesta de Rohit Malshe a ¿Cómo un principiante total comienza a aprender el aprendizaje automático si tiene algún conocimiento de los lenguajes de programación?
  • La respuesta de Rohit Malshe a ¿Qué es el aprendizaje profundo? ¿Por qué es esta una tendencia creciente en el aprendizaje automático? ¿Por qué no usar SVM?

Los algoritmos de aprendizaje automático se pueden ejecutar en conjuntos. A continuación, se incluyen algunos muy buenos que me han funcionado para la mayoría de los datos de texto:

  RandomForestClassifier (n_jobs = -1, criterio = 'gini')
 AdaBoostClassifier ()
 ExtraTreesClassifier (n_jobs = -1)
 KNeighboursClassifier (n_jobs = -1)
 DecisionTreeClassifier ()
 ExtraTreeClassifier ()
 Regresión logística()
 GaussianNB ()
 BernoulliNB ()
 elasticNet.fit ()

La lista completa está aquí, y puede leer sobre ellos sistemáticamente en el sitio web de Ski-kit learn: scikit-learn: machine learning en Python


1.1. Modelos lineales generalizados

1.1.1. Mínimos cuadrados ordinarios

1.1.2. Regresión de cresta

1.1.3. Lazo

1.1.4. Lazo multitarea

1.1.5. Red elástica

1.1.6. Red elástica multitarea

1.1.7. Regresión de ángulo mínimo

1.1.8. LARS Lasso

1.1.9. Persecución ortogonal a juego (OMP)

1.1.10. Regresión Bayesiana

1.1.11. Regresión logística

1.1.12. Descenso de gradiente estocástico – SGD

1.1.13. Perceptrón

1.1.14. Algoritmos pasivos agresivos

1.1.15. Regresión de robustez: valores atípicos y errores de modelado

1.1.16. Regresión polinómica: extensión de modelos lineales con funciones básicas.

1.2. Análisis discriminante lineal y cuadrático

1.2.1 Reducción de dimensionalidad utilizando análisis discriminante lineal

1.2.2. Formulación matemática de los clasificadores LDA y QDA.

1.2.3 Formulación matemática de reducción de dimensionalidad LDA

1.2.4. Contracción

1.2.5 Algoritmos de estimación

1.3. Regresión de cresta del núcleo

1.4. Máquinas de vectores de soporte

1.4.1. Clasificación

1.4.2. Regresión

1.4.3. Estimación de densidad, detección de novedad.

1.4.4. Complejidad

1.4.5. Consejos sobre uso práctico

1.4.6. Funciones del núcleo

1.4.7. Formulación matemática

1.5. Descenso de gradiente estocástico

1.5.1. Clasificación

1.5.2. Regresión

1.5.3. Descenso de gradiente estocástico para datos escasos

1.5.4. Complejidad

1.5.5. Consejos sobre uso práctico

1.5.6. Formulación matemática

1.5.7. Detalles de implementacion

1.6. Vecinos más cercanos

1.6.1. Vecinos más cercanos sin supervisión

1.6.2. Clasificación de vecinos más cercanos

1.6.3. Regresión de vecinos más cercanos

1.6.4. Algoritmos de vecinos más cercanos

1.6.5. Clasificador Centroide más cercano

1.6.6. Vecinos aproximados más cercanos

1.7. Procesos Gaussianos

1.7.1. Regresión Gaussiana del Proceso (GPR)

1.7.2. Ejemplos de GPR

1.7.3. Clasificación Gaussiana de Procesos (GPC)

1.7.4. Ejemplos GPC

1.7.5. Granos para procesos gaussianos

1.7.6. Procesos gaussianos heredados

1.8. Descomposición cruzada

1.9. Bayes ingenuos

1.9.1. Bayes ingenuos gaussianos

1.9.2. Bayes ingenuos multinomiales

1.9.3. Bernoulli Naive Bayes

1.9.4. Ajuste ingenuo del modelo Bayes fuera de núcleo

1.10. Árboles de decisión

1.10.1. Clasificación

1.10.2. Regresión

1.10.3. Problemas de salida múltiple

1.10.4. Complejidad

1.10.5. Consejos sobre uso práctico

1.10.6. Algoritmos de árbol: ID3, C4.5, C5.0 y CART

1.10.7. Formulación matemática

1.11. Métodos de conjunto

1.11.1. Metaestimulador de ensacado

1.11.2. Bosques de árboles aleatorizados.

1.11.3. AdaBoost

1.11.4. Mejora del árbol de gradiente

1.11.5. VotingClassifier

1.12. Algoritmos multiclase y multilabel

1.12.1. Formato de clasificación de múltiples etiquetas

1.12.2. One-Vs-The-Rest

1.12.3. Uno contra uno

1.12.4. Códigos de salida de corrección de errores

1.12.5. Regresión de salida múltiple

1.12.6. Clasificación de salida múltiple

1.13. Selección de características

1.13.1. Eliminar características con baja varianza

1.13.2. Selección de características univariadas

1.13.3. Eliminación de características recursivas

1.13.4. Selección de funciones usando SelectFromModel

1.13.5. Selección de características como parte de una tubería

1.14. Semi-supervisado

1.14.1. Propagación de etiquetas

1.15. Regresión isotónica

1.16. Calibración de probabilidad

1.17. Modelos de redes neuronales (supervisadas)

1.17.1. Perceptrón multicapa

1.17.2. Clasificación

1.17.3. Regresión

1.17.4. Regularización

1.17.5. Algoritmos


Para un aprendizaje profundo, debes seguir a Keras. Se describe en la publicación anterior, y también se ha mostrado un código de Python.


¡Sigue siendo bendecido e inspirate!

Muchas de las respuestas en este hilo son ciertamente muy buenas y proporcionan listas de algoritmos específicos (o proponen una perspectiva favorita como la panacea) y esto es probablemente lo que quiere el OP. Sin embargo, me gustaría abogar por un punto de vista diferente: es más importante tener una comprensión sólida de algunas de las teorías antes de casarnos con algoritmos individuales o áreas de mascotas. Aquí hay una lista obstinada de cómo tener una sólida comprensión del aprendizaje automático: ¿por qué tanta prisa después de todo? Digamos que quiere ser músico: puede abrir el apetito y comenzar a dominar algunas canciones, pero tarde o temprano querrá concentrarse en los fundamentos. Así que examinaré algunas disciplinas en las que sería bueno tener alguna exposición.

Los datos son confusos, ruidosos y la realidad es a menudo desconocida. La teoría de la probabilidad es la herramienta básica para razonar bajo incertidumbre. Puede obtener algo de kilometraje aprendiendo a construir modelos probabilísticos , comprender el teorema de Bayes y saber hacer inferencia. Como beneficio adicional , puede aprender sobre modelos gráficos probabilísticos y aprender el arte de ver los problemas de aprendizaje automático como modelos variables latentes, algoritmos para inferencia exacta y métodos de inferencia bayesiana aproximada (muestreo, métodos variacionales, etc.). Demasiadas personas se detienen aquí y ven todo desde una estricta perspectiva bayesiana, se pueden adoptar algunas técnicas bayesianas no paramétricas para obtener puntos de brownie adicionales. Sin embargo, eso se estaría perdiendo mucho.

Comprender profundamente la generalización es muy importante. Esto se debe a que el aprendizaje supervisado no es memorizar ejemplos, sino aprender patrones generalizables . Algunos errores de novatos en el aprendizaje automático se derivan de un enfoque basado en el algoritmo y sin comprender claramente el ajuste excesivo y la generalización. Recomiendo aprender los conceptos básicos de la teoría del aprendizaje estadístico (también conocida como teoría del aprendizaje computacional) que une varias perspectivas en el aprendizaje supervisado. Cualquiera sea su arma (ya sean métodos bayesianos, técnicas convexas, aplicar SVM a cada problema, redes neuronales, análisis de datos topológicos, etc.), en última instancia, en cada problema de aprendizaje automático supervisado, construye un modelo y equilibra el error de ajuste del modelo y la complejidad del modelo . Al final, (i) tendrá una perspectiva más rica, por ejemplo, cuando discuta sobre Naive Bayes vs SVM, (ii) en realidad podrá cuantificar cómo el número de muestras necesarias se escala con la complejidad del modelo, etc., (iii) y Como beneficio adicional, si aprende la teoría de la información , también puede conocer los límites finales de la capacidad de aprendizaje.

Con este fin, sugeriría adoptar el enfoque pedagógico en, por ejemplo, Fundamentos del aprendizaje automático de Mehryar Mohri. Además, echa un vistazo a Aprendiendo de los datos por Yasser Abu-Mostafa para una introducción más suave de pregrado.

En la era de los “Big Data”, es importante poder razonar sobre la complejidad algorítmica y, al menos, distinguir algoritmos escalables (que casi siempre son sinónimos de lineal) de algoritmos más complejos. Es posible que tenga un modelo fantástico, pero ¿y si es computacionalmente difícil? ¿Puedes desarrollar algo que funcione la mayor parte del tiempo? Tome un curso de algoritmos, comprenda cómo diseñar y analizar algoritmos, dureza y diversas reducciones, técnicas codiciosas, memorización, etc.

Los algoritmos de optimización son una adición útil a su conjunto de herramientas, ya que muchos métodos supervisados ​​se traducen fácilmente en minimizar una función objetivo que es la combinación de una función de pérdida (para fomentar el ajuste del modelo) y una regularización (para controlar la complejidad del modelo). Cuando esta función objetivo es convexa, tiene mucha teoría sobre la optimización convexa y algoritmos eficientes a su disposición y puede diseñar y analizar algoritmos de aprendizaje automático comprobables y proporcionar garantías sobre la complejidad algorítmica y estadística. Cuando no es convexo e incluso NP-Hard, las relajaciones convexas siguen funcionando muy bien y, en los últimos años, hemos ido adquiriendo una mayor comprensión de este fenómeno. Recomendaría especialmente aprender sobre escasez , minimización de L1, norma atómica, etc.

Hasta ahora, nos hemos concentrado en aprender de los ejemplos. Finalmente, el aprendizaje no supervisado o descubrir patrones es otro tema en el aprendizaje automático. Esto es básicamente agrupaciones y mezclas de aprendizaje (e incluye algoritmos como k-means ++, modelos de temas, técnicas de factorización matricial, agrupación espectral, etc., que tienen algunas nuevas garantías teóricas) y la reducción de la dimensionalidad (que actualmente es más un arte que una ciencia para los no caso lineal). También recomendaría buscar algunos métodos semi-supervisados para explotar ejemplos etiquetados y no etiquetados, aprendizaje de refuerzo (para aprender de la retroalimentación, por ejemplo, algoritmos de bandidos), aprendizaje en línea (para aprender continuamente), aprendizaje activo (elija qué aprender) cuando está bajo un presupuesto de ejemplos de capacitación).

Después de aprender los fundamentos y obtener una buena perspectiva general, no importa si se inclina por el aprendizaje profundo, los métodos bayesianos, la optimización u otra cosa. Puede hacerlo bien eligiendo desde cualquier suite y aprenderlas con bastante rapidez.

Creo que lo más importante es tener una comprensión general sólida de los pasos (conceptos) de procesamiento que subyacen a la mayoría de los algoritmos de aprendizaje automático, en lugar de aprender sobre cada algoritmo como una caja negra independiente. Diferentes algoritmos le permitirán tener diferentes cantidades de control sobre estos diferentes pasos de procesamiento, y dependiendo de qué algoritmos funcionen o no en su problema, podrá diagnosticar mejor cuáles de los pasos podrían estar impulsando los resultados, y por lo tanto , qué otros algoritmos pueden valer la pena probar. Por lo tanto, creo que tener una comprensión de las relaciones entre los algoritmos es más importante que tener una comprensión de los algoritmos individuales, ya que diferentes algoritmos pueden entrar y salir del favor, pero las ideas generales permanecen.

Aunque esta es una gran simplificación excesiva (o más bien, una generalización excesiva), etiquetaría los pasos de procesamiento como tales:
(1) algún tipo de extracción de características (una representación numérica de sus datos, vista como una colección de mediciones para cada punto de datos),
(2) descubrimiento de patrones recurrentes (correlaciones) en los datos,
(3) predicción para un punto de datos (novedoso) dado (asignándole una etiqueta, categoría o valor numérico).
La razón por la que probablemente esté utilizando el aprendizaje automático es:
(A) para organizar mejor los datos y descubrir algunas relaciones / asociaciones dentro de los datos (por lo que usaría: agrupación, filtrado colaborativo, otros enfoques de aprendizaje no supervisados, etc.)
(B) para hacer predicciones sobre nuevos puntos de datos dados los datos que ya conoce y tiene (por lo que usaría: clasificación, regresión, otros enfoques de aprendizaje supervisado, etc.).
En el caso A, solo tiene una colección de puntos de datos representados de alguna manera fija usando un conjunto de características, y los algoritmos de aprendizaje automático lo ayudarán a encontrar patrones repetitivos dentro de esos datos. Esto a su vez le permitirá agrupar puntos de datos similares, transferir información a través de puntos de datos (por ejemplo, aprendizaje de transferencia, filtrado colaborativo), resumir colecciones, etc. En el caso B, tiene alguna tarea de predicción específica que desea resolver, y así sucesivamente con cada punto de datos tiene la etiqueta que le interesa para esta tarea (por ejemplo, esta puede ser la probabilidad de contraer alguna enfermedad, el nombre del virus que probablemente tenga, el tema de un escrito, la categoría de animal en en resumen, una imagen, etc., en resumen, esta etiqueta puede ser lo que le interese). Dada una etiqueta para cada punto de datos, los algoritmos de aprendizaje automático lo ayudarán a encontrar una asociación entre los datos (características) y las etiquetas. Esto a su vez le permitirá predecir una etiqueta para cualquier nuevo punto de datos.

Saber que estos pasos son la base de los algoritmos de aprendizaje automático ayuda a pintar una imagen de los conceptos generales, en lugar de los algoritmos, de los que debe tener una sólida comprensión .

La extracción de características (paso 1 anterior) requiere una comprensión de cómo representar numéricamente y resumir datos (por ejemplo, términos clave: reducción de dimensionalidad, extracción de características), qué hacer con valores faltantes / desconocidos (algunos algoritmos de aprendizaje automático pueden manejar esto explícitamente y otros pueden ‘t), y qué hacer cuando tiene más funciones que puntos de datos y viceversa (podrían preferirse diferentes algoritmos, o podría ser necesario algún procesamiento previo de datos).

El descubrimiento de patrones y correlaciones en los datos (paso 2 anterior) es a menudo el núcleo de los algoritmos de aprendizaje automático, que lo hacen de diferentes maneras al hacer diferentes suposiciones (sobre la forma en que se distribuyen los datos, sobre la dependencia / independencia de las características, sobre el número de diferentes clases / etiquetas para clasificar los datos, sobre la confianza y precisión esperadas en la solución, etc.). La aplicación adecuada de un algoritmo de aprendizaje automático a un problema determinado (o incluso la aplicación del algoritmo de aprendizaje automático adecuado a un problema dado) requiere una comprensión de estos funcionamientos internos de los algoritmos, basados ​​en estadísticas, probabilidad y álgebra lineal.

Finalmente, hacer una predicción al final (paso 3 anterior) requiere la interpretación de la salida de un algoritmo de aprendizaje automático (una comprensión de si el algoritmo está devolviendo probabilidades de clase, etiquetas binarias, asignaciones de conglomerados) y qué hacer con él, por ejemplo, cómo usar esa información para tomar una decisión final (por ejemplo, si el algoritmo devuelve probabilidades, cómo usar esas probabilidades para emitir un juicio y qué tan seguro es estar con ese juicio). Por lo tanto, en todo esto, una buena base en probabilidad, estadísticas y álgebra lineal ayudará a comprender cualquier algoritmo de aprendizaje automático y lo que hay debajo del capó de la caja negra.

Tenga en cuenta además que algunos algoritmos de aprendizaje automático manejan algunos de estos pasos juntos (por ejemplo, las redes neuronales realizan gran parte de la extracción de características, el descubrimiento de patrones y la predicción final para todos en un solo paquete), mientras que otros algoritmos se usan para algunos pasos pero no otros (por ejemplo, algoritmos de reducción de dimensionalidad durante la extracción de características; SVM o regresión una vez que las características ya están calculadas, etc.). Estas son las diferentes cantidades de control a través de diferentes algoritmos a los que aludí al comienzo de esta respuesta. En resumen, comprender estos pasos lo ayudará a comenzar a analizar casi cualquier algoritmo de aprendizaje automático.

Debe saber

Regresión y clasificación

  • Regresión lineal simple
  • Variantes de arriba (Regresión lineal múltiple, Regresión polinómica)
  • Regresión logística
  • Vecinos K-más cercanos
  • Bayes ingenuos
  • Análisis discriminante lineal
  • Opcional: Análisis discriminante cuadrático (si tiene tiempo. Es una variante simple de lo anterior)
  • Máquinas de vectores de soporte (Comience con el clasificador de margen máximo, luego continúe con Clasificador de vectores de soporte y luego Máquinas de vectores de soporte para comprender y apreciar)
  • Árboles de decisión
  • Comience con los conceptos básicos de los árboles de decisión (árbol de regresión, árbol de clasificación), luego ensacado, bosques aleatorios, impulso
  • Redes neuronales artificiales

Aprendizaje sin supervisión

  • Análisis de componentes principales
  • Agrupamiento de medias K

Otras tecnicas

Métodos de remuestreo

  • Validación cruzada
  • k-fold, LOOCV
  • Bootstraping

Selección de subconjunto

  • La mejor selección de subconjuntos
  • Paso a paso (hacia atrás, adelante, ambos)
  • Métodos de contracción (regresión de cresta, lazo)

Opcional
Splines de polinomios por partes, splines de suavizado, regresión local, métodos aditivos generalizados

Bueno saber

  • Implicaciones del equilibrio de sesgo-varianza
  • Medidas de validación del modelo

Además, practique todo lo anterior. R es un excelente entorno que ha incorporado bibliotecas para hacer lo mismo.

En esta respuesta, enumeraré solo algunos algoritmos de aprendizaje supervisado. También explicaré brevemente qué hace cada uno y cómo está formulado.

Aprendizaje supervisado : Dados algunos datos de entrenamiento como instancias etiquetadas, aprendemos una función f, para predecir salidas y para una entrada x dada.

Alogoritmos

  1. Distancia desde medios y vecinos más cercanos : Estos son algoritmos simples basados ​​en distancia. Digamos que tenemos algunos datos que están etiquetados como positivos y negativos.

    A distancia de las medias , calculamos la media de los ejemplos positivos y negativos y la almacenamos. Cuando se da un ejemplo de prueba dado para el etiquetado, vemos qué media está más cerca de él y asignamos la etiqueta de la media al ejemplo.
    En los vecinos más cercanos , primero arregle el número de vecinos (k) que desea considerar en su modelo. Ahora, dado un ejemplo de prueba, mire sus k vecinos más cercanos y, asigne al ejemplo la etiqueta, que es compartida por la mayoría de sus k vecinos.

  2. Clasificación y regresión basadas en el árbol de decisión: construimos un árbol de decisión al decidir qué característica es más importante (utilizamos Entropía (teoría de la información) – Wikipedia para decidir esto). Una vez que tengamos el árbol, al observar los valores de las características del ejemplo de prueba, usted decide qué característica probar a continuación y, al final, dele una etiqueta asignada para esta ruta.
    Esto debería hacerlo intuitivo: http://ciml.info/dl/v0_9/ciml-v0
  3. Regresión lineal: este será nuestro primer algoritmo donde aprenderemos por optimización. A través de este algoritmo, intentamos aprender un modelo lineal sobre los datos de entrenamiento ([matemática] Y = W ^ TX [/ matemática], el algoritmo aprenderá W).
    En esto, minimizamos la pérdida producida por las predicciones erróneas realizadas por el algoritmo. Esto es algo muy natural, ya que la disminución de la pérdida implica que el modelo está cerca del modelo ‘Verdadero’.
    A pesar de que se pueden obtener soluciones formadas cerradas cuando tomamos la función de pérdida como pérdida al cuadrado, es computacionalmente pesada y usamos el gradiente de descenso . Esta es una técnica muy importante que surgirá en muchos lugares, por lo que le aconsejo que la eche un vistazo. Observe también el descenso de gradiente estocástico .
  4. Regresión lineal probabilística: en el modelado probabilístico de datos, suponemos que los datos se generan a partir de un modelo de probabilidad. Ese modelo de probabilidad tendrá algunos parámetros que intentaremos aprender. La estimación de máxima verosimilitud (MLE) y el máximo a posteriori (MAP) se utilizan generalmente.
    En la regresión lineal probabilística todavía aprendemos un vector de peso, pero ahora suponemos que las respuestas son generadas por un modelo probabilístico.
  5. Regresión logística y de Softmax: aunque tiene ‘regresión’ en su nombre, esto sí clasifica. Probablemente se llama así porque tratamos de aprender un vector de peso. Los algoritmos clasifican sus datos en clases.
    En la regresión logística hacemos clasificación binaria, tratamos de aprender una función que nos dice la probabilidad de que un ejemplo dado se encuentre en la clase positiva y la clase negativa (probabilidad de clase 1- positiva).
    Softmax tiene el poder de clasificar objetos en más de una clase. La formulación es muy similar a la regresión logística.
  6. Perceptron: es un ejemplo de optimización estocástica (que básicamente significa que optimiza alguna función mirando un ejemplo a la vez). Lo que hace perceptron es muy simple: aprende un hiperplano que separa los datos. Por ejemplo, supongamos que tenemos datos en un plano bidimensional con etiquetas como 1 y 0. Lo que perceptrón hace es aprender una línea entre estos dos conjuntos de puntos de manera que los puntos de datos con diferentes etiquetas estén separados.
    Mire también el promedio de Ruppert-Polyak.
  7. Soporte de máquinas de vectores: este es un algoritmo muy importante. Hace algo muy similar a los perceptrones. Los perceptrones aprenden cualquier hiperplano que separa los puntos de datos. Mientras que, SVM garantiza un margen alrededor del hiperplano. Hay dos tipos de SVM , SVM de margen duro y SVM de margen blando .
    SVMTutorial
  8. Aprendizaje no lineal con núcleos: hasta ahora hemos analizado modelos lineales. Los modelos lineales son simples e interpretables pero tienen un inconveniente, son lineales. Estos algoritmos no pueden aprender patrones complejos no lineales y, a veces, los datos pueden necesitar que aprenda un modelo de este tipo. Los núcleos le permiten convertir los modelos lineales que conoce en modelos no lineales. Los núcleos asignan sus datos no lineales a un espacio superior donde puede aplicar sus modelos lineales.

    Seguiré editando esta respuesta e incluiré otros métodos de aprendizaje y sus algoritmos.

Era otoño de 2010 cuando me presentaron por primera vez el término Aprendizaje automático. Recuerdo ese día como si fuera ayer. El profesor entró al aula y dijo:

Esto no es algo que puedas entender fácilmente ahora, pero estoy seguro de que lo harías en pocos años. ¡The Machine Learning estaría dirigiendo a la humanidad!

Y parece que tenía razón. 7 años después, estamos hablando de cómo la IA podría acabar con la humanidad.

Los algoritmos de aprendizaje automático se pueden dividir en pocas categorías amplias: aprendizaje supervisado, aprendizaje no supervisado y aprendizaje de refuerzo.

El aprendizaje supervisado es útil en casos en los que una propiedad está disponible para un determinado conjunto de datos, pero falta y debe predecirse para otras instancias. Aprendizaje sin supervisión es útil en casos donde el desafío es descubrir relaciones implícitas en un determinado sin etiqueta conjunto de datos El aprendizaje de refuerzo se encuentra entre el aprendizaje supervisado y el aprendizaje no supervisado: hay alguna forma de retroalimentación disponible para cada paso o acción predictiva, pero no hay una etiqueta o mensaje de error precisos.

Estoy enumerando 5 algoritmos de Machine Learning que definitivamente encontrarás útiles.

  • Árboles de decisión ( aprendizaje supervisado ) – Un árbol de decisión es una herramienta de apoyo a la decisión que utiliza un gráfico o modelo de decisiones en forma de árbol y sus posibles consecuencias, incluidos los resultados de eventos fortuitos, los costos de recursos y la utilidad. Echa un vistazo a la imagen para tener una idea.

  • Clasificación ingenua de Bayes ( aprendizaje supervisado ) – Los clasificadores ingenuos de Bayes son una familia de clasificadores probabilísticos simples basados ​​en la aplicación del teorema de Bayes con fuertes supuestos de independencia (ingenuos) entre las características.

  • Regresión de mínimos cuadrados ordinarios ( aprendizaje supervisado ) : si conoce estadísticas, es probable que haya oído hablar de regresión lineal antes. Mínimos cuadrados es un método para realizar regresión lineal. Puede pensar en la regresión lineal como la tarea de ajustar una línea recta a través de un conjunto de puntos.

  • Algoritmos de agrupación ( aprendizaje no supervisado) : la agrupación es la tarea de agrupar un conjunto de objetos de modo que los objetos del mismo grupo ( agrupación ) sean más similares entre sí que con los de otros grupos.

  • Qaprendizaje ( aprendizaje de refuerzo) : se puede utilizar para encontrar una política óptima de selección de acciones para cualquier proceso de decisión de Markov (MDP) determinado (finito). Funciona aprendiendo una función de valor de acción que, en última instancia, brinda la utilidad esperada de tomar una acción determinada en un estado dado y seguir la política óptima a partir de entonces.

Si está dispuesto a aprender más, hay un buen curso creado por la Universidad de Stanford en Coursera.

Muchas buenas respuestas aquí. Pero como científico de datos, creo que se debe hacer mucho trabajo antes de aplicar los métodos de Clasificación / Regresión / Agrupación a los datos que se obtienen. Los datos que pueden ser desordenados, difíciles de manejar y grandes. Aquí está la lista de algoritmos que ayuda a un científico de datos a hacer mejores modelos utilizando los datos que tienen:

  1. Algoritmos de muestreo. En caso de que quiera trabajar con una muestra de datos.
  1. Muestreo aleatorio simple: supongamos que desea seleccionar un subconjunto de una población en la que cada miembro del subconjunto tiene la misma probabilidad de ser elegido.
  2. Muestreo estratificado: suponga que necesitamos estimar el número promedio de votos para cada candidato en una elección. Suponga que el país tiene 3 ciudades: la ciudad A tiene 1 millón de trabajadores de fábrica, la ciudad B tiene 2 millones de trabajadores y la ciudad C tiene 3 millones de jubilados. Podemos optar por obtener una muestra aleatoria de tamaño 60 en toda la población, pero existe la posibilidad de que la muestra aleatoria no esté bien equilibrada en estas ciudades y, por lo tanto, esté sesgada y provoque un error significativo en la estimación. En cambio, si elegimos tomar una muestra aleatoria de 10, 20 y 30 de las ciudades A, B y C, respectivamente, entonces podemos producir un error menor en la estimación para el mismo tamaño total de la muestra.
  3. Muestreo de yacimientos : supongamos que tiene una secuencia de elementos de longitud grande y desconocida que solo podemos iterar una vez. Cree un algoritmo que elija aleatoriamente un elemento de esta secuencia de modo que cada elemento tenga la misma probabilidad de ser seleccionado.
  • Mapa reducido. Si quieres trabajar con todos los datos . Se puede usar para la creación de características. Por ejemplo: tuve un caso de uso en el que tenía un gráfico de 60 millones de clientes y 130 millones de cuentas. Cada cuenta estaba conectada a otra cuenta si tenían el mismo SSN o mismo nombre + DOB + dirección. Tenía que encontrar las identificaciones de los clientes para cada una de las cuentas. En un solo nodo, el análisis de dicho gráfico tardó más de 2 días. En un clúster Hadoop de 80 nodos que ejecuta un Algoritmo de componente conectado, tomó menos de 24 minutos. En Spark es aún más rápido.
  • Algoritmos Gráficos. Recientemente estaba trabajando en un problema de optimización centrado en encontrar la distancia y las rutas más cortas entre dos puntos en el diseño de una tienda. Rutas que no pasan por diferentes pasillos, por lo que no podemos usar distancias euclidianas. Resolvimos este problema considerando los puntos de inflexión en el diseño de la tienda y el Algoritmo de djikstra.
  • Selección de características.
    1. Selección univariante. Las pruebas estadísticas se pueden usar para seleccionar aquellas características que tienen la relación más fuerte con la variable de salida.
    2. Umbral de varianza. Selector de funciones que elimina todas las funciones de baja varianza.
    3. Eliminación de características recursivas. El objetivo de la eliminación de características recursivas (RFE) es seleccionar características considerando recursivamente conjuntos de características cada vez más pequeños. Primero, el estimador está entrenado en el conjunto inicial de características y se asignan pesos a cada una de ellas. Luego, las características cuyos pesos absolutos son los más pequeños se eliminan de las características del conjunto actual. Ese procedimiento se repite de forma recursiva en el conjunto de poda hasta que finalmente se alcanza el número deseado de características para seleccionar.
    4. Importancia de la característica: los métodos que usan conjuntos de árboles de decisión (como Random Forest o Extra Trees) también pueden calcular la importancia relativa de cada atributo. Estos valores de importancia se pueden usar para informar un proceso de selección de características.
  • Algoritmos para trabajar de manera eficiente. Además de estos algoritmos anteriores, a veces puede que necesite escribir sus propios algoritmos. Ahora pienso en los algoritmos grandes como una combinación de algoritmos pequeños pero poderosos. Solo necesita tener una idea de estos algoritmos para hacer un producto mejor / más eficiente. Entonces, algunos de estos potentes algoritmos que pueden ayudarlo son:
    1. Algoritmos recursivos: algoritmo de búsqueda binaria.
    2. Divide y conquista algoritmos: Combinar-ordenar.
    3. Programación dinámica: resolver un problema complejo dividiéndolo en una colección de subproblemas más simples, resolviendo cada uno de esos subproblemas una sola vez y almacenando sus soluciones.
  • Clasificación / Algoritmos de regresión. Los sospechosos de siempre. Mínimo que debes saber:
    1. Regresión lineal: regresión de cresta, regresión de lazo, ElasticNet
    2. Regresión logística
    3. A partir de ahí, puede construir sobre:
    1. Árboles de decisión – ID3, CART, C4.5, C5.0
    2. KNN
    3. SVM
    4. ANN – Propagación hacia atrás, CNN
  • Y luego a los algoritmos basados ​​en Ensemble:
    1. Impulso : árboles impulsados ​​por gradiente
    2. Ensacado : bosques al azar
    3. Mezcla : las salidas de predicción de diferentes algoritmos de aprendizaje se introducen en otro algoritmo de aprendizaje.
  • Métodos de agrupamiento. Para el aprendizaje no supervisado.
    1. k-medias
    2. k-medianas
    3. Maximización de Expectativas (EM)
    4. Agrupación jerárquica
  • Otros algoritmos sobre los que puede aprender:
    1. Algoritmo Apriori – Minería de reglas de asociación
    2. Algoritmo Eclat – Minería de reglas de asociación
    3. Artículo / Similitud basada en el usuario – Sistemas de recomendación
    4. Aprendizaje de refuerzo: construye tu propio robot.
    5. Modelos gráficos
    6. Algoritmos Bayesianos
    7. PNL: para modelos basados ​​en el lenguaje. Chatbots

    Espero que ayude !!!

    Mientras desarrollaba el plan de estudios de los programas INSOFE, pasé mucho tiempo reflexionando sobre esto.

    Estudiamos planes de estudio universitarios (de informática, estadísticas y escuelas de negocios). Los principales contendientes son la programación lineal, regresión, agrupación, redes neuronales y SVM.

    Luego miramos a los grupos de pares. Obviamente, supongo que los 10 mejores algos se publican una vez cada 4 años. La lista actual es C5.0, KNN, SVM, EM, K-means, Pagerank, CART, Naive Bayes y algunos más. También miramos sitios de competencia como Kaggle y encontramos los algos ganadores. La descomposición de valores singulares, máquinas de boltzman restringidas, bosques aleatorios, métodos espectrales parecen ser los líderes allí.

    Por último, preguntamos a los profesionales de la industria. Como era de esperar, el enfoque se centró en la ingeniería de datos, la ingeniería de características, la limpieza y la visualización con un tipo de modelado sin mucho énfasis.

    Personalmente, también agregaría algoritmos genéticos a esta lista como una técnica muy importante. Casi siempre lo uso para la optimización.

    Si desea cubrir múltiples disciplinas, debe pensar en los algoritmos de ML como una combinación de modelo más técnica algorítmica.

    Ejemplos de modelos: regresión logística, modelos temáticos, redes neuronales convolucionales, factorización / finalización de matrices, modelos bayesianos no paramétricos y muchos otros.

    Ejemplos de técnicas algorítmicas: descenso de gradiente estocástico y propagación hacia atrás, cuasi-newton (L-BFGS), descenso coordinado, muestreo de Gibbs, Metropolis Hastings, propagación de creencias, maximización de expectativas, inferencia variacional

    Las técnicas algorítmicas se aplican a los modelos para crear algoritmos de ML que encuentren los mejores parámetros para el modelo, como la regresión logística con SGD o el modelado de temas con muestreo de Gibbs.

    Concéntrese en las técnicas algorítmicas antes de los modelos: el descenso de gradiente estocástico es un excelente punto de partida. La misma técnica algorítmica puede aplicarse a muchos modelos diferentes (por ejemplo, SGD se aplica a la regresión logística y las redes neuronales convolucionales). Le resultará mucho más fácil aprender diferentes modelos de ML una vez que haya dominado un par de técnicas algorítmicas.

    La clase de algoritmos de aprendizaje automático que deben entenderse a fondo en realidad no se basan algorítmicamente en absoluto. Estas clases de tecnologías de aprendizaje automático no son otras que las que son miembros de la clase llamada ANN (Red Neural de Atractor). Esta tecnología está desempeñando un papel cada vez más importante en aplicaciones que involucran aprendizaje automático que deben ser extremadamente robustas e involucrar tanto el emparejamiento de patrones como el análisis de patrones que son tan complejos que ningún proceso algorítmico conocido puede hacer el trabajo con éxito. Esta clase de tecnologías está cambiando rápida y continuamente y requerirá una constante investigación y autoaprendizaje de los conceptos básicos y las aplicaciones de la tecnología en evolución. Este es un trabajo a tiempo completo en sí mismo. Robotronics LLC | Facebook

    Aquí hay nueve clases de algoritmos de aprendizaje automático que cubren el paisaje, junto con ejemplos de casos de uso.

    De los métodos de aprendizaje automático (infografía)

    Para obtener más información básica sobre el aprendizaje automático, consulte nuestros otros cebadores infográficos en http://usblogs.pwc.com/emerging-

    Lo que todos deben saber son los fundamentos. Conocerlos bien te da la perspectiva necesaria para navegar por el paisaje. También le ayuda a comprender la relevancia de los algoritmos más avanzados. Pero así como un programador aprende por primera vez cómo clasificar y buscar y los algoritmos fundamentales relevantes (clasificación rápida, búsqueda binaria, etc.), todo profesional de aprendizaje automático debe tener una sólida comprensión de:

    • regresión lineal múltiple, regresión logística
    • árboles de decisión
    • clasificadores basados ​​en reglas
    • ingenuo Bayes
    • redes neuronales de propagación hacia atrás
    • soporte de máquinas de vectores
    • k-significa agrupamiento
    • métodos de conjunto, embolsado, refuerzo, etc.
    • análisis de la cesta de la compra / reglas de asociación

    Y, por supuesto, también debe tener conocimiento de la informática básica de clasificación y búsqueda, ya que una gran parte de su trabajo, antes de que pueda aplicar algoritmos de aprendizaje automático, es la disputa de datos, por lo que el conocimiento del procesamiento básico de datos es un trasfondo útil.

    yo diría
    1. Bayes ingenuos
    2. Redes neuronales
    3. Máquinas de vectores de soporte
    4. Agrupación media K
    5. Métodos / trucos del núcleo
    6. Árboles de decisión / bosques
    7. Algoritmos de refuerzo.
    No en ningún orden.

    8. Modelos de mezcla gaussiana

    Con algunos métodos simples y convexos, puede resolver casi cualquier problema del mundo real bastante bien:

    1. máquina de vectores de soporte
    2. terminación de la matriz
    3. factorización de matriz no negativa (convexa)
    4. detección comprimida (es decir, regresión svm con regularización L1)

    esto manejará casi todo lo que encuentre y básicamente está disponible en votepal wabbit (VW) y / o libsvm / liblinear

    Además, tenga en cuenta que, en principio, NMF es convexo

    Avances en NMF convexo: programación lineal

    aunque NMF generalmente se resuelve utilizando métodos no convexos (buena semilla + solucionador de ALS), y VW hace algo ligeramente diferente)

    Además, puede ejecutar todo esto desde la línea de comandos en Unix y a escala de cientos de millones de instancias y características.

    Compare esto con, por ejemplo, el aprendizaje profundo, que es un complicado enredo de heurística y conocimiento especial, y verá que los métodos convexos son mucho mejores para la ingeniería profesional en la mayoría de los problemas.

    También creo que es útil comprender los conceptos básicos del aprendizaje transductivo y semi-supervisado.

    Aprendizaje automático con etiquetas faltantes: SVM transductoras

    Creo que el aprendizaje automático cubre áreas muy amplias: aprendizaje automático supervisado, aprendizaje semi-supervisado, aprendizaje no supervisado, aprendizaje de refuerzo, …
    Todos estos paradigmas son muy diferentes entre sí.

    Yo diría que la mejor manera de comenzar sería tomar un libro básico sobre aprendizaje automático y repasar las técnicas básicas de aprendizaje automático discutidas allí. Por ejemplo, el libro de Tom Mitchell sobre Machine Learning cubre los siguientes temas:
    – Árboles de decisión
    – Redes neuronales artificiales
    – Aprendizaje bayesiano
    – k-Vecinos más cercanos
    – Regresión ponderada localmente
    – Aprendizaje inductivo de primer orden
    – Q aprendizaje

    La lista echa de menos algunos importantes como
    – Regresión logística
    – Máquinas de vectores de soporte
    – Bosques al azar
    – k-significa
    – algoritmo EM
    entre otros.

    Por lo tanto, es una buena idea consultar varios libros para obtener una lista de algoritmos básicos de ML. Aquí hay una lista de algoritmos de aprendizaje automático (no necesariamente importantes o básicos): Lista de algoritmos de aprendizaje automático
    ¿Por qué es importante aprender estos algoritmos? Porque la mayoría de los otros algoritmos usan intuiciones y conceptos desarrollados en los algoritmos básicos.

    Una vez que comprenda algunos de estos algoritmos, continúe con algoritmos más modernos y avanzados, en áreas como la inferencia probabilística o el aprendizaje profundo.

    No hay una respuesta definitiva sobre qué algoritmo es el mejor o el más importante para aprender. Si es necesario responder a esa pregunta, creo que los más importantes son los algoritmos más básicos, porque te ayudan a comprender mejor los algoritmos desconocidos.

    Como mínimo, la regresión lineal y logística es probablemente la más básica.
    Una comprensión de bayes si está mirando un análisis probabilístico de cosas como texto y conjuntos de palabras.
    Clasificación para árboles, conjuntos y otros métodos de aprendizaje (muchas divisiones aleatorias de sus datos con diferentes puntos de partida)

    Agrupación siguiente para ver similitudes entre usuarios y hábitos

    Admite máquinas de vectores: incluso el nombre es un poco confuso, es el algoritmo más fácil de usar con resultados imparciales aunque no conozcas ml. Requiere poco ajuste con un poco de esfuerzo para elegir la función correcta del núcleo

    Bosques aleatorios: también es más viable proceder en sistemas de múltiples máquinas y la ejecución paralela supone obtener resultados comparables contra svm

    Aprendizaje profundo: en las funciones tradicionales de aprendizaje automático que emerge tiene una enorme importancia para el éxito. Sin embargo, estas características hechas a mano no son capaces de proyectar los datos de manera discriminatoria. En tal caso, también puede aprender las características y los enfoques de aprendizaje profundo son el estado del arte con historias de éxito promovidas.

    Maximización de expectativas: es un método de agrupación bien conocido y más que eso. Sirve para muchos otros propósitos como la técnica de optimización subyacente.

    Modelos probabilísticos gráficos: obviamente, en algunos casos, la experiencia humana es necesaria para los modelos complicados de aprendizaje automático. El mejor uso de ese conocimiento humano se logra a través de esos modelos y la inferencia probabilística en esos modelos.

    Descenso de gradiente y contrapartes: esta es la principal técnica de optimización para muchos modelos de aprendizaje.

    Vea mi respuesta a ¿Cuáles son los 10 mejores algoritmos de minería de datos o aprendizaje automático? Entiendo que las dos preguntas son ligeramente diferentes, pero mi respuesta sería la misma.

    Los métodos lineales (regresión lineal, algoritmo perceptrón / winnow, regresión logística, SVM lineal, Bayes ingenuo) son los más simples y deben verificarse primero; Es posible que, después de realizar algunas funciones de ingeniería, uno de estos enfoques funcione bien.