Está en la página 1de 21

IA

K-MEANS
clustering
ORIGEN
K-means es un algoritmo de aprendizaje no supervisado
ya que no requiere la presencia de etiquetas o respuestas
predefinidas para realizar la agrupación de datos en
clusters. En cambio, el algoritmo busca estructurar los
datos de manera que los elementos de un mismo cluster
sean similares entre sí y diferentes de los elementos de
otros clusters. Utilizado para clasificar y agrupar datos
en conjuntos o clusters.
K-means fue propuesto originalmente por Stuart Lloyd en
1957 como una técnica de cuantización vectorial en el
contexto de la transmisión de señales de voz. Sin embargo,
su uso en el ámbito de la agrupación de datos y análisis de
datos se popularizó en la década de 1960 gracias a las
contribuciones de otros investigadores, como Thomas
Cover y Peter Hart.

1/20
ORIGEN

El término "K-means" se acuñó más tarde en la literatura


científica por James MacQueen en 1967, en un artículo
titulado "Algunos métodos para la clasificación y análisis
de documentos". MacQueen propuso la técnica de
clustering basada en la minimización de la varianza intra-
cluster como una forma eficiente de agrupar datos en
clusters de manera no supervisada.Desde entonces, el
algoritmo K-means ha sido ampliamente estudiado y
utilizado en diversos campos de aplicación y sigue siendo
uno de los algoritmos de clustering más populares y
ampliamente utilizados en la actualidad.

2/20
K-MEANS CLUSTERING

El algoritmo K-means se utiliza en una amplia variedad de aplicaciones, entre las


cuales se incluyen:

1. Segmentación de clientes: K-means se puede utilizar para segmentar clientes en


diferentes grupos basados en sus características demográficas, comportamiento de
compra o preferencias.
2. Análisis de texto: K-means se puede utilizar para agrupar documentos de texto en
categorías similares basadas en el contenido y las palabras clave.
3. Análisis de imágenes: K-means se puede utilizar para segmentar imágenes en
diferentes regiones o para reducir el número de colores en una imagen.
4. Reconocimiento de voz: K-means se puede utilizar para agrupar señales de voz
similares en diferentes grupos y así mejorar la precisión del reconocimiento de
voz.
5. Sistemas de recomendación: K-means se puede utilizar para agrupar usuarios con
perfiles similares de navegación en línea y para recomendar productos o servicios
relevantes a cada grupo.
6. Análisis de datos genómicos: K-means se utiliza comúnmente en la
bioinformática para agrupar datos genómicos en diferentes grupos con
características similares. Fuente: https://bookdown.org/tpinto_home/Unsupervised-learning/kmeans.png

3/20
Ventajas:
● K-means es un algoritmo rápido y escalable, lo que lo hace adecuado para grandes conjuntos de
datos.

● Funciona bien en grandes conjuntos de datos.

● Es una técnica ampliamente utilizada en la minería de datos y la estadística.


● Es fácil de implementar y entender, lo que lo hace accesible para principiantes y expertos por igual.
● Es un algoritmo versátil que se puede utilizar en una variedad de aplicaciones, como la
segmentación de clientes en marketing, la detección de anomalías en datos, la biología, la
medicina, la ciencia de datos y la agrupación de imágenes.
● Los resultados son fácilmente interpretables, ya que cada cluster representa un grupo distinto de
datos.
● Es posible optimizar los resultados utilizando diferentes medidas de distancia y métodos de
inicialización de centroides.

4/20
Limitaciones
● Sensibilidad a la inicialización: El resultado del K-means puede variar
significativamente dependiendo de la inicialización de los centroides. Si
los centroides iniciales se seleccionan de manera subóptima, el
algoritmo puede converger a un óptimo local en lugar del óptimo global.

● Requiere la definición del número de clusters de antemano.

● Puede converger a una solución subóptima si los centroides iniciales son


seleccionados aleatoriamente de manera inapropiada.

● No es adecuado para datos con estructuras complejas o no lineales.

● Necesidad de especificar el número de clústeres: El número de clústeres


(K) debe ser especificado previamente, lo que puede ser un desafío en
casos donde no se tiene un conocimiento previo sobre la estructura de
los datos. Una selección inapropiada de K puede conducir a resultados
no deseables.

5/20
● Sensibilidad a datos atípicos y ruido: El K-means puede ser
sensible a la presencia de datos atípicos o ruido en los datos, lo
que puede afectar la posición de los centroides y, por lo tanto,
la formación de los clústeres.

● Asunciones sobre la forma de los clústeres: El K-means asume


que los clústeres son convexos, isotrópicos y tienen una
distribución similar en términos de densidad. Si los clústeres
tienen formas no convexas, anisotrópicas o tienen diferentes
densidades, el K-means puede tener dificultades para
identificarlos correctamente.

6/20
Escalabilidad

● Escalabilidad: El K-means puede enfrentar desafíos en


términos de escalabilidad cuando se trata de grandes
conjuntos de datos, ya que el cálculo de la distancia y la
actualización de los centroides pueden ser
computacionalmente costosos.

● Falta de garantía de convergencia global: El K-means puede


converger a un óptimo local en lugar del óptimo global, lo
que significa que no siempre se obtiene la solución más
óptima en términos de la estructura de los datos.

7/20
CASOS DE USO Segmentación por Comportamiento:
relacionar el carrito de compras de un
usuario, sus tiempos de acción e
información del perfil.

Categorización de Inventario: agrupar productos por


actividad en sus ventas

Detectar anomalías o actividades sospechosas: según


el comportamiento en una web reconocer un troll -o un
bot- de un usuario normal

Estadística, y se puede aplicar en diversas áreas, como


la biología, la medicina, la ciencia de datos y la
inteligencia artificial.

8/20
Funcionamiento del algoritmo

El procedimiento del algoritmo K-means se puede resumir en los siguientes pasos:

• Definir el número de clusters (K) que se desea obtener.


• Seleccionar aleatoriamente K elementos de los datos como centroides iniciales de cada clúster.
• Asignar cada elemento del conjunto de datos al centroide más cercano (en términos de distancia euclidiana).
• Calcular el nuevo centroide de cada cluster como el punto medio de todos los elementos asignados a ese clúster.
• Repetir los pasos 3 y 4 hasta que no haya cambios en la asignación de elementos a los clusters o hasta que se alcance un
número máximo de iteraciones.
• Una vez que se alcanza la convergencia, los datos se encuentran agrupados en K clusters diferentes, cada uno representado
por su centroide.

Es importante destacar que el algoritmo K-means busca minimizar la distancia entre cada punto de los datos y el centroide de su
cluster asignado, lo que se conoce como la suma de cuadrados dentro del cluster (SSW). El objetivo final del algoritmo es
encontrar los K centroides que minimicen la SSW total de todos los clusters.

9/20
FLUJO

¿Se mueve
algún objeto Fin
de grupo?

01 02 03 04

01 Número de K grupos deseados


02 Calcular la distancia de los objetos con respecto a cada centroide

03 Calcular o en su caso, elegir los centroides


04 Seleccionar la distancia menor con respect a cada centroide

10/20
Fuente: https://repository.uaeh.edu.mx/scige/boletin/huejutla/n8/multimedia/p1/p1_1p.jpg
Ejemplos de clasificación
El algoritmo más común utiliza una técnica de
refinamiento iterativo. Debido a su ubicuidad, a
menudo se le llama "el algoritmo de k -medias";
también se le conoce como algoritmo de Lloyd ,
particularmente en la comunidad informática. A
veces también se lo denomina " k -means
ingenuo", porque existen alternativas mucho más
rápidas.

11/20
Demostración del algoritmo estándar

k "medios" iniciales (en este caso k =


k clusters se crean asociando cada El centroide de cada uno de los k Se repiten los pasos 2 y 3 hasta
3) se generan aleatoriamente dentro
observación con la media más cercana. grupos se convierte en la nueva alcanzar la convergencia.
del dominio de datos (mostrado en
Las particiones aquí representan el media.
color).
diagrama de Voronoi generado por los
medios.

12/20
Demostración:
El algoritmo consta de tres pasos:
1. Inicialización: una vez escogido el número de grupos, k, se establecen k
centroides en el espacio de los datos, por ejemplo, escogiendo
aleatoriamente.
2. Asignación objetos a los centroides: cada objeto de los datos es asignado a
su centroide más cercano.
3. Actualización centroides: se actualiza la posición del centroide de cada
grupo tomando como nuevo centroide la posición del promedio de los
objetos pertenecientes a dicho grupo.
Se repiten los pasos 2 y 3 hasta que los centroides no se mueven, o se mueven por debajo de
una distancia umbral en cada paso.
El algoritmo k-means resuelve un problema de optimización, siendo la función a optimizar
(minimizar) la suma de las distancias cuadráticas de cada objeto al centroide de su cluster.
Los objetos se representan con vectores reales de d dimensiones
y el algoritmo k-means construye K grupos donde se minimiza la suma de distancias de los
objetos, dentro de cada grupo

13/20
Usos actuales del algoritmo

Amazon SageMaker utiliza una versión modificada


del algoritmo de agrupación en clústeres k-means a
escala web. En comparación con la versión original
del algoritmo, la versión utilizada por Amazon
SageMaker es más precisa. Al igual que el algoritmo
original, se escala a conjuntos de datos masivos y
ofrece mejoras en el tiempo de entrenamiento. Para
ello, la versión utilizada por Amazon SageMaker
transmite minilotes (pequeños subconjuntos
aleatorios) de los datos de entrenamiento.

14/20
Facebook utiliza K-means para la segmentación de
audiencia en su plataforma de publicidad en línea.
Ayuda a agrupar a los usuarios en diferentes segmentos
basados en sus intereses, comportamientos y
características demográficas para entregar anuncios
personalizados.

15/20
Es importante tener en cuenta que muchas empresas utilizan técnicas de clustering como
parte de un conjunto más amplio de herramientas y algoritmos de análisis de datos, y la
implementación específica puede variar en función de las necesidades y objetivos de cada
empresa.

16/20
FUNCIONAMIENTO EN JAVA

17/20
FUNCIONAMIENTO EN PYTHON

18/20
CONCLUCIÓN
En resumen, el algoritmo K-means es una técnica simple pero efectiva para la agrupación de
datos en clusters. Es rápido y escalable, lo que lo hace adecuado para grandes conjuntos de
datos, y puede ser utilizado en diversos campos para la identificación de patrones y la
exploración de datos. Sin embargo, su rendimiento depende en gran medida de la elección
adecuada del número de clusters y de la inicialización aleatoria de los centroides, lo que
puede resultar en una solución subóptima en algunos casos.

19/20
IA
¡Gracias!
K-MEANS
Código en java

INTEGRANTES:
Bernardo Arturo Garcia Espinosa 211850715
Gustavo De Jesus Quintero Cerpa 219294307
Oscar Abraham Carrillo López 219294188
Jorge Ivan Nuñez Baez 217291866
Oscar Beltran Villegas 216794422
Miguel angel castro Castro 213543682

También podría gustarte