En este módulo hablaremos de una tarea de recuperación de documentos y también hablaremos sobre una noción de agrupamiento donde tratamos de develar parte de la estructura subyacente en los datos y hablamos de muchas áreas diferentes en las que la noción de agrupamiento puede ser realmente útil. Vayamos a través del proceso del algoritmo de agrupamiento Y si sienten que ya saben ésto porque ya han visto este proceso en los otros dos módulos, bueno, ¡Despierten! Porque éste va a ser un poquito diferente Bien, hablemos de nuestros datos de aprendizaje Acá, nuestros datos de aprendizaje para una tarea de agrupamiento de documentos será una tabla con la identificación, ID, del documento y el texto del documento Tenemos un gran grupo de documentos y tenemos todos los textos asociados con ellos y luego vamos a extraer algún conjunto de características. Hemos hablado de muchas formas diferentes de representar un documento Pero la que usaré aqui, como ejemplo es nuestra tf-idf es decir la representación: frecuencia de términos - frecuencia inversa en documentos Y lo que vamos a hacer es: vamos a tratar de agrupar nuestros documentos basándonos en esta representación Vamos a pasar estas caracteristicas por un modelo de aprendizaje automático que en este caso es el modelo de agrupamiento vamos a entregar para cada documento un rótulo de grupo De esta forma, la salida y-sombrero es nuestro rótulo de grupo Y acá es donde se vuelve interesante porque vamos a evaluar la exactitud de nuestros rótulos de clase Aunque en este caso no tenemos los verdaderos rótulos de clase, de modo que debería decir que ésta es nuestra predicción o estimación de rótulo de clase pero no tenemo el verdadero rótulo de clase para compararlos Esta y aquí, en realidad no existe y eso es porque, como ya dijimos, estamos en una configuración de aprendizaje sin supervisión No supervisado. Está bien. Regresa al principio de ésta. De modo que no lo tenemos pero de alguna forma queremos tener alguna medida de la precision de nuestro agrupamiento Voy a hacer un pequeño dibujo acá que sera nuestra teselación de Voroni nuestro algoritmo k-medias donde tenemos algún conjunto de centros de agrupado y tenemos datos Podría decir que nuestros datos se ven así. No sé. Solo voy a dibujar algunos puntos acá. Y la medición de precisión que vamos a usar, la forma en que vamos a medir la calidad es observar qué tan coherente es nuestro agrupamiento Vamos a mirar la distancia de cada observación al centro del grupo al que está asignado y un buen algoritmo de agrupamiento tendrá esas distancias muy pequeñas La meta es minimizar estas distancias, de modo que lo que buscamos es medir esta precisión, medir estas distancias. Lo que necesitamos son nuestros datos necesitamos nuestros vetores tf-idf que van a entrar acá y también necesitamos los centros de los grupos Entonces w-sombrero tiene nuestra estimación actual ese es nuestro parámetro del modelo aquí y el algoritmo k-medias Son nuestros centros... ups! Veamos si lo puedo escribir correctamente, centros de agrupamiento Eso es lo que w-sombrero representa Por supuesto, para medir esas distancias también necesitamos w-sombrero Entonces, en lugar de tener rótulos de clase reales para evaluar la precisión vamos a tomar nuestra representación de los documentos y nuestros centros de grupos vamos a insertarlos en esta medición de calidad que mira las distancias a los centros de grupos Esa es nuestra medida de error, si bien no es realmente un error es solo una medida de Un problema. Es una medida de calidad No voy aponer esa palabra acá Está bien, creo que está un poco confuso pero escribamos distancias a los centros de agrupamiento ¿Entonces qué hace nuestro algoritmo? Hablamos de k-medias como el método para hacer agrupamiento Por supuesto que hay otros, pero concentrémosnos en k-medias. ¿qué hace k-medias? Redibujemos este diagrama, realmente, puedo cambiar a otro color. eso nos ahorrará algún tiempo K-medias está tratando de minimizar esta distancia, o la suma de estas distancias. y la forma en que lo hace es actualizando iterativamente entonces esta es nuestra w-sombrero que teníamos antees y la estamos cambiando a la nueva w-sombrero que representa el centro de masas de estos puntos Estos puntos están siendo desplazados y este punto va a ir directamente encima de esa observación este es el proceso de agrupamiento. Repitámoslo a alto nivel una vez más. Tomamos nuestros documentos, los representamos en alguna forma, usando o una cruda cuenta de palabras, tf-idf, o normalizaciones de estas cosas. tdf-idf, normalizaciones de estas cosas muchos tipos de bigramas, trigramas, cosas que podemos buscar para representar nuestros documentos Luego nuestro algoritmo de agrupamiento, como k-medias produce los rótulos de grupos y iterativamente, volvemos hasta acá una y otra vez actualizando nuestros centros de grupos, esos son los parámetros de este modelo de agrupamiento mirando que tan lejos están nuestras observaciones asignadas están de esos centros de grupo En este módulo, en contraste con alguno de los otros módulos que les presentamos, les mostramos realmente algunos de los detalles del algoritmo detrás del método que estamos observando Específicamente para agrupamiento, hablamos sobre el algoritmo k-medias, y luego para nuestra tarea de recuperación de documentos, hemos hablado de hacer la búsqueda del vecino más cercano, y mostramos algunos detalles del algoritmo para hacerlo, y has explorado en particular que en una notebook ipython haciendo entrada o búsqueda dentro de Wikipedia En este momento, deberías ser capaz de ir y construir un buen sistema de búsqueda sobre artículos de noticias O cualquier otra búsqueda realmente genial que no puedo imaginar ahora. Por supuesto hay montones de ejemplos interesantes Vayan y piensen sobre esas ideas de las que no puedo imaginarme ahora [MÚSICA]