¿Cuáles son algunos algoritmos de aprendizaje automático que todo estudiante de informática debe saber?

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 tratamos de 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 hace el perceptrón es aprender una línea entre estos dos conjuntos de puntos de modo 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.

Aquí hay una lista de inicio. Toma un tiempo aprender todo esto. Encontraría un problema que le interesa y lo resolveré de dos maneras diferentes para tener una idea de cómo funcionan los enfoques. Tenga en cuenta que todos estos algoritmos solo resuelven ciertas clases de problemas.

Modelos lineales
Bosques al azar
Muestra de Gibbs o Metropolis Hastings
Algoritmo genético
Incremento de gradiente estocástico
Soporte de máquinas vectoriales
Redes neuronales
Componentes principales
K-significa agrupamiento