No, por supuesto, no lo digo en serio. Debe haber un límite a cuánto se puede simplificar un tema. Pero para las primeras etapas, para entender los conceptos básicos y tener una rápida "inmersión" en el tema, puede que sea aceptable. Y al final, discutiremos cómo nombrar adecuadamente este material (opciones: "Aprendizaje automático para principiantes", "Análisis de datos desde cero", "Algoritmos para los más pequeños").
A lo nuestro. He escrito varios programas prácticos en MS Excel para visualizar y representar claramente los procesos que ocurren en distintos métodos de aprendizaje automático durante el análisis de datos. Seeing is believing, como dicen los nativos de la cultura que desarrolló la mayoría de estos métodos (por cierto, no todos. El poderoso "método de vectores de soporte", o SVM, support vector machine, es un invento de nuestro compatriota Vladimir Vapnik, del Instituto de Gestión de Moscú. ¡Año 1963, por cierto! Ahora, sin embargo, enseña y trabaja en EE. UU.).
Tres archivos a la vista
1. Clustering por el método de k-medias
Este tipo de tareas pertenece al "aprendizaje no supervisado", donde necesitamos dividir los datos originales en un número conocido de categorías, pero no contamos con un conjunto de "respuestas correctas"; debemos extraerlas de los propios datos. La clásica tarea fundamental de encontrar subtipos de flores de iris (Ronald Fisher, ¡año 1936!), que se considera el primer hito en esta área del conocimiento, es precisamente de esta naturaleza.
El método es bastante simple. Tenemos un conjunto de objetos, representados como vectores (conjuntos de N números). En el caso de los iris, se trata de conjuntos de 4 números que caracterizan la flor: longitud y ancho de los pétalos externos e internos, respectivamente (). Se elige una métrica de distancia, o medida de cercanía, entre los objetos que es la métrica euclidiana habitual.
Luego, se eligen arbitrariamente (o no arbitrariamente, vean más adelante) los centros de los clústeres, y se calcula la distancia de cada objeto a los centros de los clústeres. En este paso de la iteración, cada objeto se etiqueta como perteneciente al centro más cercano. Luego, el centro de cada clúster se mueve a la media aritmética de las coordenadas de sus miembros (por analogía con la física, a veces se le llama "centro de masa"), y el procedimiento se repite.
El proceso converge bastante rápido. En las imágenes en dos dimensiones, se ve así:
1. Distribución aleatoria inicial de puntos en el plano y número de clústeres

2. Definición de los centros de los clústeres y asignación de puntos a sus clústeres correspondientes

3. Reubicación de las coordenadas de los centros de los clústeres y recalculo de la pertenencia de los puntos, hasta que los centros se estabilicen. Se observa la trayectoria de movimiento del centro del clúster hacia su posición final.

En cualquier momento se pueden establecer nuevos centros de clústeres (sin generar una nueva distribución de puntos) y ver que el proceso de segmentación no siempre es unívoco. Matemáticamente, esto significa que en la función optimizada (la suma de los cuadrados de las distancias de los puntos a los centros de sus clústeres) encontramos un mínimo local, no global. Para superar este problema, se puede elegir no aleatoriamente los centros iniciales de los clústeres o probar con diferentes centros (a veces es ventajoso colocar uno justo en alguno de los puntos, ya que de esta forma no hay garantía de que obtendremos clústeres vacíos). En cualquier caso, un conjunto finito siempre tiene un límite inferior exacto.
(no olvides habilitar la compatibilidad con macros. Los archivos han sido verificados en busca de virus)
Descripción del método en Wikipedia —
2. Aproximación con polinomios y subdivisión de datos. Sobreajuste
El notable científico y divulgador de la ciencia de datos K.V. Vorontsov describe brevemente los métodos de aprendizaje automático como "la ciencia de ajustar curvas a puntos". En este ejemplo, encontraremos patrones en los datos utilizando el método de los mínimos cuadrados.
Se muestra la técnica de dividir los datos originales en conjuntos de "entrenamiento" y "prueba", así como el fenómeno de sobreajuste, o "ajuste excesivo" a los datos. Con una aproximación adecuada, tendremos cierto error en los datos de entrenamiento y un error algo mayor en los datos de prueba. Con una aproximación incorrecta, habrá un ajuste preciso a los datos de entrenamiento y un error enorme en los de prueba.
(Es un hecho conocido que a través de N puntos se puede trazar una única curva de grado N-1, y este método, en general, no da el resultado deseado. )
1. Establecemos la distribución inicial

2. Dividimos los puntos en "entrenamiento" y "prueba" en una proporción de 70 a 30.

3. Realizamos una curva de aproximación a partir de los puntos de entrenamiento y vemos el error que genera en los datos de control.

4. Ejecutamos una curva exacta a través de los puntos de entrenamiento y observamos un error monstruoso en los datos de control (y cero en los de entrenamiento, pero ¿de qué sirve?).

Se muestra, por supuesto, la opción más simple con una única división en subconjuntos de 'entrenamiento' y 'control'; en general, esto se realiza múltiples veces para un mejor ajuste de los coeficientes.
Habilita las macros para un funcionamiento correcto.
3. Descenso de gradiente y dinámica de cambio del error.
Aquí tendremos un caso de 4 dimensiones y regresión lineal. Los coeficientes de la regresión lineal se determinarán por pasos utilizando el método de descenso de gradiente, inicialmente todos los coeficientes son ceros. En un gráfico separado se puede ver la dinámica de la reducción del error a medida que se ajustan los coeficientes de forma más precisa. Hay la posibilidad de observar las cuatro proyecciones 2D.
Si se establece un paso de descenso de gradiente demasiado grande, se puede ver que cada vez estaremos saltando el mínimo y llegaremos al resultado en un mayor número de pasos, aunque, al final, de todos modos llegaremos (siempre que no elevemos demasiado el paso de descenso; entonces el algoritmo se saldrá de control). Y el gráfico de dependencia del error respecto al paso de iteración será no suave, sino 'irregular'.
1. Generamos datos, establecemos el paso de descenso de gradiente.

2. Con una correcta selección del paso de descenso de gradiente, llegamos suavemente y lo suficientemente rápido al mínimo.

3. Con una incorrecta selección del paso de descenso de gradiente, saltamos el máximo, el gráfico del error es 'irregular', la convergencia toma más pasos.

y

4. Con una elección completamente incorrecta del paso de descenso de gradiente, nos alejamos del mínimo.

(Para reproducir el proceso con los valores del paso de descenso de gradiente mostrados en las imágenes, marque la casilla 'datos de referencia').
Según lo considera la respetada comunidad, ¿es aceptable tal simplificación y método de presentación del material? ¿Deberíamos traducir el artículo al inglés?
Fuente: habr.com
