Tienen que leer este articulo!!! Está buenísimo :3
https://towardsdatascience.com/the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68
Programación probabilística
Programación Probabilística: Fundamentos y Aplicaciones Prácticas
Probabilidad Condicional y Eventos Dependientes
Teorema de Bayes: Aplicaciones y Comprensión de Probabilidades
Teorema de Bayes: Intuición y Visualización Práctica
Cálculo de Probabilidad Condicional con Teorema de Bayes y Python
Aplicaciones Modernas del Teorema de Bayes
Mentiras estadísticas
Errores de Datos en Modelos Estadísticos y su Impacto
Detectar Manipulación en Gráficas Estadísticas
Correlación vs Causalidad: Evitando Errores de Razonamiento
Errores Comunes en el Muestreo Estadístico
Identificación y prevención de la falacia del francotirador
Detectar Manipulación de Datos con Porcentajes
Falacia de Regresión a la Media: Concepto y Ejemplos Prácticos
Introducción a Machine Learning
Historia y evolución del Machine Learning
Vectores Numéricos para Modelado en Machine Learning
Métricas de Distancia en Algoritmos de Machine Learning
Agrupamiento
Algoritmos de Agrupamiento: Clasificación y Aplicaciones Prácticas
Agrupamiento Jerárquico: Algoritmo y Visualización
Algoritmo K-means: Conceptos y Aplicación Práctica
Técnicas de Agrupamiento en Machine Learning
Clasificación
Técnicas de Clasificación en Aprendizaje Supervisado
Clasificación de Datos con Algoritmo K-Nearest Neighbors
Algoritmos de Clasificación en Machine Learning
Pensamiento Computacional: Fundamentos y Aplicaciones Prácticas
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Los algoritmos de clustering, o agrupamiento, son técnicas de aprendizaje automático utilizadas para identificar patrones o grupos en conjuntos de datos que no están previamente etiquetados. Estos algoritmos se centran en detectar la estructura interna de los datos y agruparlos en distintos clústeres basados en su similitud.
Los algoritmos de clustering son una herramienta poderosa que permite a las empresas y organizaciones interpretar grandes volúmenes de datos de manera eficiente y efectiva, sin necesidad de etiquetas previas. Esto los hace ideales para situaciones donde el objetivo es descubrir patrones ocultos o realizar segmentaciones dinámicas basadas en las características intrínsecas de los datos.
Una forma de visualizar este proceso es mediante diagramas que representan los grupos derivados del análisis. Por ejemplo, al analizar genes relacionados con enfermedades genéticas, los diagramas pueden mostrar de manera clara y rápida la agrupación de los datos. Aunque el mundo real presenta datos más complejos y menos ordenados, estos diagramas proporcionan un método visual efectivo para entender las relaciones dentro del conjunto de datos.
Este contenido solo es un punto de partida. Existen numerosos tipos de algoritmos de agrupamiento, como K-Means, DBSCAN, y Hierarchical Clustering, entre muchos otros. Te invitamos a realizar una búsqueda en Internet para profundizar en estos métodos, explorando sus aplicaciones y entendiendo cómo cada uno puede ser utilizado en diferentes contextos.
¿Te animas a compartir tus hallazgos? Seguramente descubrirás métodos fascinantes y su impacto en la mejora de procesos de toma de decisiones y análisis de datos. ¡Continúa aprendiendo y explorando el fascinante mundo del clustering!
Aportes 73
Preguntas 3
Tienen que leer este articulo!!! Está buenísimo :3
https://towardsdatascience.com/the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68
Tipos de algoritmos de clusterización:
Les dejo este diagrama de scikit-learn, para seleccionar el algoritmo adecuado segun cantidad de datos y tipo de problema:
scikit-learn algorithm cheat sheet
Les recomiendo estas tres clases de otros cursos en Platzi donde se ve este tema:
En la última clase se explica brevemente cuándo utilizar ciertos algoritmos de clustering:
ALGORITMOS DE AGRUPAMIENTO
Clustering es una técnica de Machine Learning que implica la agrupación de puntos de datos. Dado un conjunto de puntos de datos, podemos utilizar un algoritmo de agrupación para clasificar cada punto de datos en un clúster específico. En teoría, los puntos de datos que están en el mismo clúster deben tener propiedades y/o características similares, mientras que los puntos de datos en diferentes clústeres deben tener propiedades y/o características muy diferentes. La agrupación es un método de Aprendizaje no Supervisado y es una técnica común para el análisis de datos estadísticos utilizada en muchos campos.
En la ciencia de los datos, podemos utilizar el análisis de clústeres para obtener información valiosa de nuestros datos al ver en qué clústeres caen los puntos de datos cuando aplicamos un algoritmo de clústeres.
Agrupamiento K Means
K Means es probablemente el algoritmo de clustering más conocido, es fácil de entender e implementar en código.
Para empezar, seleccionamos un número de clústeres para usar e inicializamos aleatoriamente sus respectivos puntos centrales. Para calcular el número de clústeres a utilizar, es bueno echar un vistazo rápido a los datos y tratar de identificar cualquier agrupación distinta. Los puntos centrales son vectores de la misma longitud que cada vector de puntos de datos.
Cada punto de datos se clasifica calculando la distancia entre ese punto y cada centro del clúster, y luego clasificando el punto que estará en el clúster cuyo centro está más cerca de él.
Basándonos en estos puntos clasificados, recalculamos el centro del clúster tomando la media de todos los vectores del clúster.
Repite estos pasos para un número determinado de iteraciones o hasta que los centros de clústeres no cambien mucho entre iteraciones. También puedes optar por inicializar aleatoriamente los centros de grupo unas cuantas veces, y luego seleccionar la ejecución que parezca que proporcionó los mejores resultados.
K Means tiene la ventaja de que es bastante rápido, ya que todo lo que estamos haciendo es calcular las distancias entre puntos y centros de grupo, por lo tanto, son muy pocos cálculos.
Por otro lado, K Means tiene un par de desventajas. En primer lugar, tienes que seleccionar cuantos clústeres hay. Esto no siempre es trivial e idealmente con un algoritmo de clustering nos gustaría que lo resolviera por nosotros porque el objetivo es obtener alguna información de los datos. K Means también comienza con una selección aleatoria de centros de clústeres y, por lo tanto, puede producir diferentes resultados de clústeres en diferentes ejecuciones del algoritmo. Por lo tanto, los resultados puedes no ser repetibles y carecer de consistencia. Otros métodos de clustering son más consistentes.
K Medians es otro algoritmo de clustering relacionado con K Means, excepto que en lugar de volver a calcular los puntos centrales del clúster usando la media, usamos el vector mediano del grupo. Este método es menos sensible a los valores atípicos, debido al uso de la mediana, pero es mucho más lento en el caso de conjuntos de datos más grandes, ya que se requiere la clasificación en cada iteración cuando se calcula el vector de la mediana.
Agrupamiento Mean Shift
La agrupación Mean Shift es un algoritmo basado en ventanas deslizantes que intenta encontrar áreas densas de puntos de datos. Es un algoritmo basado en el centroide, lo que significa que el objetivo es localizar los puntos centrales de cada clúster, lo que funciona actualizando a los candidatos para que los puntos centrales sean la media de los puntos dentro de la ventana deslizante.
Estas ventanas candidatas son filtradas en una etapa de post procesamiento para eliminar los duplicados cercanos, formando el conjunto final de puntos centrales y sus correspondientes grupos.
Para explicar el agrupamiento Mean Shift consideremos un conjunto de datos en un espacio bidimensional. Comenzamos con una ventana circular deslizante centrada en el punto C, seleccionada aleatoriamente, y con el radio r como núcleo. Mean Shift es un algoritmo de escalada de colinas que implica el desplazamiento iterativo de este núcleo a una región de mayor densidad en cada paso hasta la convergencia.
En cada iteración, la ventana deslizante se desplaza hacia regiones de mayor densidad desplazando el punto central a la media de los puntos dentro de la ventana. La densidad dentro de la ventana corredera es proporcional al número de puntos dentro de ella. Naturalmente, al cambiar a la media de los puntos en la ventana, gradualmente se moverá hacia áreas de mayor densidad de puntos.
Seguimos desplazando la ventana corrediza de acuerdo con la media hasta que no hay dirección en la que un desplazamiento pueda acomodar más puntos dentro del núcleo.
Este proceso de los pasos 1 al 3 se realiza con muchas ventanas hasta que todos los puntos se encuentran dentro de una ventana. Cuando se superponen varias ventanas, se conserva la ventana que contiene la mayor cantidad de puntos. A continuación, los puntos de datos se agrupan según la ventana deslizante en la que residen.
A diferencia de la agrupación K Means, no es necesario seleccionar el número de clústeres, ya que el desplazamiento medio lo descubre automáticamente. Es una gran ventaja. El hecho de que los clustering converjan hacia los puntos de máxima densidad también es muy deseable, ya que es bastante intuitivo de entender y encaja bien en un sentido naturalmente basado en datos. El inconveniente es que la selección del tamaño/radio “r” de la ventana puede ser no trivial.
DBSCAN
DBSCAN es un algoritmo de agrupamiento basado en la densidad similar a Mean Shift, pero con un par de ventajas notables. Las siglas DBSCAN significan agrupamiento espacial basado en densidad de aplicaciones con ruido.
DBSCAN comienza con un punto de datos de inicio arbitrario que no ha sido visitado. El vecindario de este punto se extrae usando una distancia épsilon, todos los puntos que están dentro de la distancia de épsilon son puntos de vecindario.
Si hay un número suficiente de puntos dentro de este vecindario, entonces el proceso de agrupación comienza y el punto de datos actual se convierte en el primer punto del nuevo grupo. De lo contrario, el punto será etiquetado como ruido, más tarde este punto ruido se podría convertirse en la parte del clúster. En ambos casos, este punto se marca como visitado.
Para este primer punto en el nuevo clúster, los puntos dentro de su vecindario distante épsilon también pasan a formar parte del mismo clúster. Este procedimiento de hacer que todos los puntos en el vecindario de épsilon pertenezcan al mismo grupo se repite para todos los nuevos puntos que acaban de ser agregados al clúster del grupo.
Este proceso de pasos 2 y 3 se repite hasta que todos los puntos en el clúster son determinados, es decir, todos los puntos dentro del vecindario épsilon del clúster han sido visitados y etiquetados.
Una vez que terminamos con el clúster actual, se recupera y procesa un nuevo punto no visitado, lo que conduce al descubrimiento de otro clúster o ruido. Este proceso se repite hasta que todos los puntos se marcan como visitados. Dado que al final de esta visita se han visitado todos los puntos, cada uno de ellos se marcará como perteneciente a un clúster o como ruido.
DBSCAN presenta algunas grandes ventajas sobre otros algoritmos de agrupación en clúster. En primer lugar, no requiere un número determinado de clúster. También identifica los valores atípicos como ruidos, a diferencia del desplazamiento medio, que simplemente los coloca en un grupo, incluso si el punto de datos es muy diferente. Además, puede encontrar clústeres de tamaño y forma arbitraria bastante bien.
El principal inconveniente de DBSCAN es que no funciona tan bien como otros cuando los clústeres son de densidad variable. Esto se debe a que la configuración del umbral de distancia épsilon para identificar los puntos de vecindario variará de un clúster a otro cuando la densidad varíe. Esta desventaja también ocurre con los datos de muy alta dimensión, ya que de nuevo el umbral de distancia épsilon se vuelve difícil de estimar.
Agrupamiento utilizando modelos de mezcla gaussiana
Los modelos de mezcla gaussiana (GMM, por sus siglas en ingles) nos dan más flexibilidad que los K Means. Con los GMM suponemos que los puntos de datos están distribuidos por Gauss, esto es una suposición menos restrictiva que decir que son circulares usando la media. De esta manera, tenemos dos parámetros para describir la forma de los clústeres, la media y la desviación estándar. Tomando un ejemplo en dos dimensiones, esto significa que los clústeres pueden tomar cualquier tipo de forma elíptica, ya que tenemos una desviación estándar tanto en la dirección X como en la Y. Por lo tanto, cada distribución gaussiana se asigna a un solo grupo.
Para encontrar los parámetros del gaussiano para cada clúster, por ejemplo, la media y la desviación estándar, utilizaremos un algoritmo llamado maximización de expectativas (EM, por sus siglas en inglés). Entonces podemos proceder con el proceso de agrupación de maximización de expectativas usando GMM.
Comenzamos seleccionando el número de clúster, como se hace en K Means e inicializando aleatoriamente los parámetros de distribución gaussiana para cada clúster. Uno puede tratar de proporcionar una buena estimación de los parámetros iniciales echando un vistazo rápido a los datos también. Aunque hay que tener en cuenta, esto no es 100% necesario, ya que los gaussianos empiezan como muy pobres, pero se optimizan rápidamente.
Dadas estas distribuciones gaussianas para cada clúster, calcular la probabilidad de que cada punto de datos pertenezca a un clúster en particular. Cuanto más cerca esté un del centro de los gaussianos, más probable será que pertenezca a ese grupo. Esto debería tener sentido intuitivo ya que con una distribución Gaussiana estamos asumiendo que la mayoría de los datos se encuentran más cerca del centro del clúster.
Basándonos en estas probabilidades, calculamos un nuevo conjunto de parámetros para las distribuciones gaussianas de manera que maximicemos las probabilidades de los puntos de datos dentro de los clústeres. Calculamos estos nuevos parámetros utilizando una suma ponderada de las posiciones de los puntos de datos, donde las ponderaciones son las probabilidades del punto de datos que pertenece a ese clúster en particular.
Los pasos 2 y 3 se repiten iterativamente hasta la convergencia, donde las distribuciones no cambian mucho de iteración en iteración.
El uso de los modelos de mezcla gaussiana presenta dos ventajas clave. En primer lugar, son mucho más flexibles en términos de covarianza de clústeres que los K Means, debido al parámetro de desviación estándar, los clústeres pueden adoptar cualquier forma de elipse, en lugar de limitarse a círculos. K Means es en realidad un caso especial de los modelos de mezcla gaussiana en el que la covarianza de cada clúster a lo largo de todas las dimensiones se acerca a 0. En segundo lugar, dado que los modelos de mezcla gaussiana utilizan probabilidades, pueden tener conglomerados múltiples por punto de datos. Por lo tanto, si un punto de datos está en medio de dos grupos superpuestos, podemos simplemente definir su clase diciendo que pertenece al X por ciento de la 1 y al Y por ciento de la 2. Es decir, los modelos de mezcla gaussiana apoyan una composición mixta.
Agrupamiento Jerárquico
Los algoritmos de agrupación jerárquica se dividen en dos categorías: de arriba hacia abajo o de abajo hacia arriba. Los algoritmos ascendente tratan cada punto de datos como un solo clúster al principio y luego fusionan sucesivamente o aglomeran pares de clústeres hasta que todos los clústeres se hayan fusionado a un único clúster que contenga todos los puntos de datos. Por lo tanto, la agrupación jerárquica ascendente se denomina agrupación algomerativa jerárquica. Esta jerarquía de clúster se representa como un árbol o dendograma. La raíz del árbol es el único clúster que recoge todas las muestras, siendo las hojas los clústeres con una sola muestra.
Comenzamos tratando cada punto de datos como un solo clúster, es decir, si hay X puntos de datos en nuestro conjunto de datos, entonces tenemos X clústeres. Luego seleccionamos una métrica de distancia que mide la distancia entre dos clústeres.
En cada iteración, combinamos dos grupos en uno. Los dos grupos que se combinarán se seleccionan como los que tiene la vinculación media más pequeña. Es decir, de acuerdo con nuestra métrica de distancia seleccionada, estos dos clústeres tienen la menor distancia entre sí y por lo tanto son más más similares y deben ser combinados.
El paso 2 se repite hasta llegar a la raíz del árbol, es decir, solo tenemos un clúster que contiene todos los puntos de datos. De esta manera podemos seleccionar cuántos clústeres queremos al final, simplemente eligiendo cuándo dejar de combinar los clústeres, es decir, cuando dejar de construir el árbol.
La agrupación jerárquica no requiere que especifiquemos el número de clústeres e incluso podemos seleccionar qué número de clústeres se ve mejor ya que estamos construyendo un árbol. Además, el algoritmo no es sensible a la elección de la métrica de distancia, todos ellos tienden a funcionar igualmente bien, mientras que, con otros algoritmos de agrupamiento, la elección de la métrica de distancia es crítica. Un caso particularmente útil de los métodos de agrupamiento de jerárquica es cuando los datos subyacentes tienen una estructura jerárquica y se desea recuperar la jerarquía, otros algoritmos de agrupación no pueden hacer esto. Estas ventajas de la agrupación jerárquica vienen a costa de una menor eficiencia, a diferencia de la complejidad lineal de K Means y el modelo de mezcla gaussiana.
Algoritmos de agrupamiento
El problema de formar grupos en un conjunto de datos es muy importante para el conocimiento del comportamiento de una población de la cual solo se tiene una cantidad n de sus elementos. La solución de estos problemas se realiza mediante la creación de algoritmos de agrupamiento.
Entre los métodos de agrupamiento paramétricos se encuentran las mixturas finitas, éstas son una poderosa herramienta para modelar densidades de probabilidad de conjuntos de datos univariados y multivariados, modelan observaciones las cuales se asume que han sido producidas por un conjunto de fuentes aleatorias alternativas e infieren los parámetros de estas fuentes para identificar qué fuente produjo cada observación, lo que lleva a un agrupamiento del conjunto de observaciones.
Los métodos de agrupamiento no paramétricos pueden dividirse en tres grupos fundamentales: **jerárquicos, particionales y basados en densidad. **
Los algoritmos jerárquicos son aquellos en los que se va particionando el conjunto de datos por niveles, de modo tal que en cada nivel generalmente , se unen o se dividen dos grupos del nivel anterior, según si es un algoritmo aglomerativo o divisivo.
Los algoritmos** particionales** son los que realizan una división inicial de los datos en grupos y luego mueven los objetos de un grupo a otro según se optimice alguna función objetivo.
Los algoritmos basados en densidad enfocan el problema de la división de una base de datos en grupos teniendo en cuenta la distribución de densidad de los puntos, de modo tal que los grupos que se forman tienen una alta densidad de puntos en su interior mientras que entre ellos aparecen zonas de baja densidad.
Fuente:
http://marmota.dlsi.uji.es/WebBIB/papers/2007/1_Pascual-MIA-2007.pdf
La técnica de clustering es una técnica no supervisada, porque no sabemos qué grupos existen en los datos, no están clasificados.
Paso 1 Normalizar los datos
Paso 2 Correlación entre variables, para identificar las variables dominantes.
Paso 3 Calcular el número óptimo de clusters
Paso 4 Calcular los clusters con diferentes técnicas
Hierarchical clustering: utiliza las distancias entre observaciones para construir un árbol de distancias y a partir de eso cortar en clusters.
K-means: también utiliza las distancias entre puntos. Y agrupa los clusters según lo cerca que están de los centros de gravedad de los clusters. A priori, tienes que saber cuántos clusters vas a crear para que el algoritmos sepa dónde colocar cada punto.
Gaussian mixture models: utiliza modelos gaussianos o modelos de distribuciones normales de diferentes formas para que puedas crear grupos en forma de elipses. Para cada punto se le calcula la probabilidad de pertenencia a cada modelo gaussiano.
Paso 5 Comparar los resultados de los clusters para identificar cual te ayuda mejor a clasificar.
Notas:
Los clusters son grupos.
El agrupamiento es el poseso mediante el cual se juntan objetos similares en clusters que los identifican.
El agrupamiento es un aprendizaje no supervisado, ya que no utiliza etiquetas.
El agrupamiento nos permite entender la estructura de los datos similares entre los mismos.
K-medias: es un método de agrupamiento, que tiene como objetivo la partición de un conjunto de n observaciones en k grupos en el que cada observación pertenece al grupo cuyo valor medio es más cercano. Es un método utilizado en minería de datos.
Les dejo el articulo: muy bueno!
ACÁ
Les dejo un buen video
Una manera más común de clasificar los algoritmos de machine learning son:
Conozco el algoritmo de clustering K-Means, que dado un conjunto de N datos, y k número de centros deseados, te devuelve la posición de los k centros. Lo que hace para clasificar es asignar a cada punto al i-esimo centro tal que su distancia (la distancia que quieras, normalmente euclidiana) sea mínima. Se van actualizando la posición de los centros a cada iteración, calculando la posición promedio de los vectores que pertenecen a cada centro 👀
Notas 😄
Introducción al agrupamiento (Clustering).
Basado en este artículo compartido por la compañera Carla Marcela Florida Román comparto que significan algunos de los algoritmos de agrupamiento.
El K-means clustering:
Para este algoritmo se selecciona un número de clases o grupos y aleatoriamente se crean sus puntos centrales.
Los datos ingresados son clasificados calculando la distancia entre el punto y el centro de cada grupo, entonces, se le agrega al grupo que tenga el centro más cercano.
Basandonos en los puntos clasificados, se recalcula el centro del grupo tomando la media de todos los vectores del grupo.
Se repite esta acción para un conjunto de números o iteraciones o también hasta que el centro de los grupos no cambie tanto entre iteraciones. Se puede optar por iniciar el centro del grupo aleatoriamente unas cuantas veces, y luego seleccionar la corrida que te parezca ha dado los mejores resultados.
Mean-Shift Clustering
Este se realiza en espacios bidimensionales. Comienza con una “ventana circular” (es como un sector que es el que se considerará durante el algoritmo) centrado en un punto C (que es elegido de manera aleatoria) y que tiene un radio r como su núcleo. Este algoritmo cambia su núcleo de manera iterativa a una región de mayor densidad en cada paso hasta que logra convergencia (es llamado un algoritmo de escalada simple)
Por cada iteración, la “ventana” va cambiando hacia un área de mayor densidad cambiando el punto central a la media de los puntos dentro de la ventana. De esta forma va moviendose hacia puntos de mayor densidad cada vez.
Este se mueve según la media hasta que ya no se puede mover a un punto que acomode más puntos dentro del núcleo. Es decir, se mueve hasta que ya no puede aumentar la densidad.
Este proceso se repite con varias ventanas al mismo tiempo, hasta que todos los puntos estan en una ventana. Cuando distintas ventans se sobreponen, se preserva la ventana con mayor puntos. Y los datos son agrupados según la ventana a la que pertenecen.
Density-Based Spatial Clustering of Applications with Noise (DBSCAN)
El DBSCAN comienza con un dato arbitrario que no ha sido visitado como punto de partida. Los vecinos de este punto son extraidos usando una distancia de un epsilon (Todos los puntos a una distancia de un epsilon son puntos vecinos).
Si hay una cantidad suficiente de puntos (de acuerdo con una cantidad minima de puntos que establecimos) entre nuestros vecinos, entonces el proceso de agrupamiento comienza y el dato actual se convierte en el primer punto en el nuevo agrupamiento. De lo contrario, el punto se convierte en ruido (más adelante estos puntos de ruido se pueden convertir en parte del agrupamiento). Pero en ambos casos se marca como “Visitado”.
Para el primer punto en el nuevo agrupamiento, los puntos con distancia de epsilon vecinos se convierten en parte del mismo agrupamiento. Este procedimiento de hacer que todos los puntos que sean vecinos a distancia de epsilon sean parte del mismo agrupamiento se repite hasta que todos los nuevos puntos que se hayan añadido sean parte del mismo agrupamiento.
Estos pasos se repiten hasta que todos los puntos en el grupo sean determinados. Por ejemplo que todos los puntos fueron visitados y etiquetados.
Una vez se ha finalizado con el grupo actual, se selecciona un nuevo punto que no ha sido visitado y es procesado. Lo que nos lleva a encontrar un nuevo grupo o ruido. Este proceso se repite hasta que todos los puntos son marcados como visitados. Una vez han sido visitados todos los puntos estos son marcados como grupos o como ruido.
Expectation–Maximization (EM) Clustering using Gaussian Mixture Models (GMM)
Se comienza seleccionando un número agrupaciones o grupos como en el k-mean y se inicia aleatoriamente la distribución Gaussiana de los parametros de cada agrupacion.
Dada estas distribuciones Gaussianas para cada agrupación, se calcula la probabilidad de que cada punto pertenezca a una agrupación en particular. Mientras más cerca este el punto del centro Gaussiano, es más probable que pertenezca a la agrupación.
Basados en esta probabilida, se calcula un nuevo conjunto de parámetros para la distribución Gaussiana para que podamos maximizar las probabilidades de los datos dentro de las agrupaciones. Se calcula estos nuevos parámetros usando una suma ponderada de la posición de los datos, donde el ponderado son las probabilidades de que el dato pertenezca a esa agrupación en particular.
Estos pasos se repiten hasta que hay convergencia, donde las distribuciones no cambien entre iteraciones.
Agglomerative Hierarchical Clustering
Esta comienza tratando cada punto como una agrupación. Entonces se selecciona una métrica de distancia que calcule la distancia entre dos agrupaciones.
En cada iteración se combinan dos agrupaciones en una. Las dos agrupaciones que se van a combinar son las que tengan menos distancia entre ellas
Este paso se repite hasta que se llegue a la raíz del árbol, por ejemplo que se tenga una sola agrupación, pero podemos elegir cuantas agrupaciones queremos.
Algoritmos de Agrupamiento:
Nos permiten entender la estructura interna de los datos, sin la necesidad de utilizar etiquetas. Es decir son de aprendizaje no supervisado. Consisten en generar grupos (clusters) de datos de acuerdo a las similitudes que encontremos (clasificación)
Les dejo el link donde están los modelos de clustering incluídos en la librería de Scikit learn.
Top de libros para profundizar.
https://www.kdnuggets.com/2013/07/book-data-clustering-algorithms-applications.html
**Un punto muy importante **que debes considerar cuando ejecutas técnicas de agrupamiento es que debes definir muy claro a qué te refieres cuando hablas de similitud entre puntos, porque esto puede ayudarte a definir el algoritmo correcto para tus necesidades particulares.
Comparto mis NOTAS:
Es un proceso mediante el cual se agrupan objetos similares en clusters (racimos)que las identifican.
Se clasifican como aprendizaje no supervisado ya que no requiere la utilización de etiqueta.
Permite entender la estructura de los datos y la similitud entre las mismas
https://scikit-learn.org/stable/modules/clustering.html
Aquí está detallado absolutamente todo, creo que para los que recién nos estamos empapando es algo complicado de digerir, pero nos va funcionar mucho cuando ya tengamos experiencia.
Algo que agrego es que a la hora de implementar estos algoritmos es muy importante tener en cuenta la escala de nuestros datos, si no no van a tener la mejor implementación. Ej: Relacionar número de aviones vendidos vs cantidad de pasajeros que ingresan a esos aviones ocasionaría una desproporción considerable, hay que normalizar los datos.
La siguiente información, solo enlista los ejemplos más prominentes de algoritmos tipo clustering:
Tipos de algoritmo:
Basado en densidad.
Basado en la distribución
Basado en Centroides.
Basado en Jerarquías.
Algoritmo de agrupamiento K-means
Algoritmo de agrupamiento DBSCAN.
Algoritmo de Mezcla Gaussiana
Algoritmo BIRCH.
Principales algoritmos de clustering:
• K-Means Clustering
• Mean-Shift Clustering
• Density-Based Spatial Clustering of Applications with Noise (DBSCAN)
• Expectation–Maximization (EM) Clustering using Gaussian Mixture Models (GMM)
• Agglomerative Hierarchical Clustering
Esto es lo que necesitaba para un objetivo de mi tesis
El poder de las cosas se encuentra en poder graficarlas.
El clustering es aprendizaje no supervisado, debido a que no requiere etiquetas, este técnica nos permite entender la estructura de los datos y la similitud entre los mismos.
En el mundo de la medicina, se pueden clasificar a las personas, por sus datos, lo que permite corelacionar nuevamente variables para determinar una estimación de tiempo, para que la persona sufra de alguna de enfermedad o que esta pase a otra etapa.
En los buscadores, se detectan las posiblidades de que las palabras que ingreses sean parecidas a ciertos grupos o clusters, de los que puedes recibir resultados similares, según el cluster al que más te acerques.
Podemos corelacionar variables con los clusters, lo que nos permite entender mejor poblaciones y valores desconocidos para nosotros.
Los algoritmos de clustering son utilizados en muchos campos, ejemplos de ellos: Análisi de redes sociales y su utilización, se definiría como la forma en la que dividimos los temas y las gustos de las personas que gustan de ellos.
Los algoritmos de clustering nos permiten entender la estrucutura interna de los datos, cuando no es necesario usar etiquetas para los mismo, adicionalmente, nos permiten agrupar cada uno de nuestros datos en diferentes grupos, que les llamamos clusters y que nos permiten entender que tan similares o desimilares son los diferentes data points que estamos estudiando.
Podemos clasificar los algoritmos de Machine Learning de diversas formas, como supervisados, no-supervisados, semi supervisados, en batch o en online, sin embargo hay dos formas muy comunes de hacerlo es: Algoritmos de agrupamiento (clustering) y los algoritmos de clasificación (Clasification)
Una forma visual de ver estos algoritmos es atraves de diagramas.
Partitional, Hierarchical, fuzzy, Density based, Grid Based, Model Based, Spatial, Distributed data
Encontré esto por ahí:
Algoritmos de clustering.
Algoritmo de agrupamiento Star: Están compuestas por un conjunto de algoritmos basados en grafos, los cuales se identifican por la creación de sub-grafos en forma de estrella. Mediante el se logra la agrupación de los documentos de acuerdo a su similitud.
Referencia: https://www.ecured.cu/Algoritmos_de_agrupamiento_star
K-means
K-nn
DBSCAN
agrupación es clustering
Los algoritmos de agrupamientos llamados clusteirng - es una agrupación de vectores de acuerdo a un criterio que es distancia o similitud
se clasificna en dos tecnicas Jerarquico, que puede ser aglomerativo o divisorio
no jerarquico , donde el numero degrupos se determina previamente y se clasifican despues
Existen dos grandes técnicas para el agrupamiento de casos:
Agrupamiento jerárquico, que puede ser aglomerativo o divisivo.
Agrupamiento no jerárquico, en los que el número de grupos se determina de antemano y las observaciones se van asignando a los grupos en función de su cercanía. Existen los métodos de k-mean y k-medoid.
Clustering Analysis
Aquí hay mas información
https://www.jacobsoft.com.mx/es_mx/clustering-analysis/
GMM (Gaussian Mixture Models) Clustering
GMM (Gaussian Mixture Models)
Algoritmos de Clustering: Nos permiten entender la estructura interna de los datos. Agrupar nuestros datos. Nos permite entender qué tan similares son nuestros datos.
Ejemplo: Análisis de redes sociales, motores búsquedas, grupos de riesgo en la medicina, finanzas, etc.
En resumen primero a analizar la data en todas las direcciones y sentidos.
K-means
Mean-Shift
Spectral Clustering
DBSCAN
OPTICS
Birch
Video que explican en que consiste los distintos algoritmos de agrupamiento:
Centroid-Based clustering: organizes non hierarchical data, based on a calculated centroid pivot for each identified cluster. very sensitive to initial conditions and outliers
Density-Based clustering: connects areas of high density samples into clusters, allows arbitrary shaped regions, sensitive to density variations data.
Distribution-Based clustering: assumes data is organized under some type of distribution, such as Gausiian distribution; as the distance from the center increases, higher the probabiltyt the data do not belong to the distribution
Clasificación de Algoritmos de Machine Learning.
El algoritmo de clustering más usado es K-Means. Tiene una muy buena escalabilidad con la cantidad de datos. Para utilizar K-Means debemos especificar el número de grupos que queremos encontrar. A este número de grupos se le denomina K.
El algoritmo K-Means sigue los siguientes pasos:
Inicialización: se elige la localización de los centroides de los K grupos aleatoriamente
Asignación: se asigna cada dato al centroide más cercano
Actualización: se actualiza la posición del centroide a la media aritmética de las posiciones de los datos asignados al grupo
https://iartificial.net/clustering-agrupamiento-kmeans-ejemplos-en-python/
La librería scikit-Learn incluye los siguientes métodos de Clustering
Maldita plataformaaaaaa!!! Ya lo reporté unas diez veces, y nadie lo toma en serio, cuando estoy viendo una clase o curso por segunda vez, siempre arranca los videos del final y enseguida saltan al siguiente, y al siguiente, y al siguiente, etc. No se puede ver un curso dos veces, jamás probaron ver dos veces un mismo curso, nunca hicieron una prueba de software fuera del laboratorio, nunca testearon mas que el código, nunca una prueba de mas de 5 minutos, necesitan un Steve Jobs que les diga que eso así no se hace? Y ahora que me digan troll, hater, o lo que quieran, pero ya lo reporté muchas veces, es una vergüenza que tengan esta clase de errores, mas cuando dan clases de desarrollo de software, la próxima vez las críticas van a Twitter o Youtube, se que Freddy se ofende, pero las críticas son útiles y necesarias, no es para ofender, o que sea todo malo, no me molesta reconocer lo bueno de Platzi, pero uno normalmente escribe por las quejas, uno escribe para quejarse de un boton que falla, no de todos los botones que funcionan, uno escribe cuando algo está mal, no cuando algo está bien
Un artículo interesante sobre clustering y su aplicación a Big data:
https://medium.com/cracking-the-data-science-interview/an-introduction-to-big-data-clustering-1a911b83e590
En los Sistemas de Informacion Geografica se suele utilizar en los mapas tematicos para agrupar en los sectores en base a la distance que tienen y a las variables que se estan midiendo
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?