Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Universidad Nacional Autónoma de México Facultad de Ingeniería Minería de Datos Grupo: 03 - Semestre: 2023-2 Práctica 18: Clustering Particional - K Means y Bosques Aleatorios Fecha de entrega: 30/05/2023 Profesor: Dr. Guillermo Gilberto Molero Castillo Alumnos: Cruz Rangel Leonardo Said Téllez González Jorge Luis Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Introducción El clustering particional es un enfoque de agrupamiento de datos en el campo del aprendizaje no supervisado. El objetivo del clustering es dividir un conjunto de datos en grupos o clústeres, donde los objetos dentro de un mismo clúster son similares entre sí y diferentes de los objetos en otros clústeres. El clustering particional implica asignar cada punto de datos a un clúster, de manera que la suma de las diferencias dentro de cada clúster sea mínima. K-means es uno de los algoritmos de clustering particional más comunes y ampliamente utilizado. En K-means, se selecciona un número prede�nido de clústeres "k" y el algoritmo busca iterativamente asignar cada punto de datos al clúster más cercano y actualizar la posición del centroide de cada clúster en función de las asignaciones. El objetivo es minimizar la suma de las distancias cuadradas entre cada punto de datos y el centroide de su clúster asignado. Figura 1. Ejemplo del funcionamiento de KMeans. En esta práctica se hará la combinación de los modelos K Means y Bosques Aleatorios, es decir, trabajaremos con un modelo mixto conocido como ‘Clustering Forests (CF)’ con el objetivo de aprovechar las ventajas de ambos enfoques: K-means para la partición de clústeres iniciales y los bosques aleatorios para el aprendizaje supervisado en cada clúster. Los bosques aleatorios, son conjuntos de árboles de decisión. En lugar de utilizar un solo árbol de decisión, los bosques aleatorios generan múltiples árboles de decisión y combinan sus resultados para realizar la clasi�cación. Cada árbol en el bosque se entrena con una muestra aleatoria de datos de entrenamiento y utilizando una selección aleatoria de 2 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ atributos. La combinación de las clasi�caciones individuales de los árboles en el bosque, produce la clasi�cación �nal. El uso de un bosque aleatorio proporciona una mayor precisión en la clasi�cación en comparación con un solo árbol de decisión. Además, reduce el impacto de los posibles errores individuales de cada árbol, lo que mejora la robustez y generalización del modelo. Figura 3. Representación de un bosque aleatorio. Para la construcción del modelo mixto se utilizará un conjunto de datos que contiene información sobre el comportamiento de compra de 2000 personas en una tienda física. Lo que se quiere lograr principalmente con el modelo es segmentar los tipos de clientes que compran en la tienda para posteriormente hacer una clasi�cación en función de los atributos del dataset. Figura 4. Fuente de los datos. 3 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Desarrollo A continuación se describen los pasos que se siguieron para hacer el proceso de segmentación con KMeans y posteriormente la clasi�cación con Bosques Aleatorios Paso 0. Importación de bibliotecas y Preparación de los datos Se descarga el dataset desde: https://www.kaggle.com/code/karthickaravindan/k-means-clustering-project/data y se carga para su manipulación usando read_csv de pandas. Luego, se procede a hacer un pequeño procedimiento de EDA en donde se identi�can valores nulos, se eliminan columnas que no son necesarias para el modelo y se hace un mapa de correlaciones para determinar si hacer o no un análisis de componentes principales. Se obtuvieron los siguientes resultados: 4 https://www.kaggle.com/code/karthickaravindan/k-means-clustering-project/data Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ No existen valores nulos, por lo que no hay que manejarlos. Se elimina la variable ‘ID’, pues no es importante para los modelos que se van a construir, esta modi�cación hace que el conjunto de datos original pase de tener 8 columnas a 7. Se obtienen las correlaciones usando el método ‘pearson’, sin embargo, para mejorar la identi�cación de variables correlacionadas se hace un mapa de calor como el que se muestra a continuación: 5 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Se puede observar la existencia de una alta correlación, sin embargo, por la cantidad de variables del conjunto de datos se decidió considerar todas las variables para la construcción de los modelos. Una vez �nalizada esta fase de preparación de los datos, ahora sí se pueden crear los modelos para clasi�cación. Modelo 1: Árbol de Decisión Paso 1. Estandarización Cuando se trabaja con clustering, dado que son algoritmos basados en distancias, es fundamental escalar los datos para que cada una de las variables contribuyan por igual en el análisis. 6 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Para hacer la estandarización se utiliza el método de Escalado utilizando StandardScaler( ). Paso 2. De�nición de K-clústeres para KMeans La de�nición del número de clústeres (k) en el algoritmo K-means es un paso crucial y requiere un enfoque cuidadoso. La elección correcta de k afectará directamente los resultados del clustering. Sin embargo, determinar el valor óptimo de k puede ser un desafío, ya que no existe una regla general que funcione en todos los casos. Para esta práctica utilizaremos el ‘método del codo’, que consiste en identi�car el punto de in�exión en una grá�ca de inercia (o de codo). Estas grá�cas muestran la suma de las distancias cuadradas de cada punto de datos a su centroide más cercano (inercia) en función del número de clústeres (k) utilizado en el algoritmo K-means. La inercia disminuye a medida que aumenta k, ya que más clústeres permiten una mayor adaptación a los datos. Sin embargo, llega un punto en el que el bene�cio de agregar más clústeres disminuye signi�cativamente, lo que se re�eja en la forma de un "codo" en la grá�ca. El punto en el que se encuentra el codo se considera una indicación del número óptimo de clústeres. 7 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Localizar el codo en muchos de los casos no es de manera inmediata, por lo que se utiliza KneeLocator para ubicar este punto sin di�cultades y de forma no ambigua: Se observa que el número óptimo de clústeres es de 4. Paso 3. Segmentación particional Con el número óptimo de clústeres, el siguiente paso es crear el modelo KMeans, el cual hará la segmentación del conjunto de datos estandarizado en 4 grupos (clusters) según sus características. Ahora, ésta separación que hace KMeans, en donde básicamente está otorgando una ‘clasi�cación’ a cada registro del conjunto de datos que le indica a qué clúster pertenece, se añade como columna al conjunto de datos original para que posteriormente se puedan agrupar según la variable y observar cómo se distribuyeron los registros: 8 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Se observan la cantidad de registros que se clasi�caron como pertenecientes a cada clúster. Paso 4. Obtención de centroides En este paso, básicamente lo que se hace es obtener un resúmen (promedio) de cada una de las variablessegún los registros que se ubicaron en cada clúster. Con lo anterior, lo que se busca es obtener una descripción signi�cativa que nos diga algo signi�cativo o de interés de cada clúster. Según lo observado en la tabla, se hicieron las siguientes declaraciones sobre cada clúster: **Clúster 0:** Está conformado por 705 clientes con las siguientes características: - edad promedio: 29 años (adultos jóvenes) - la mayoría son hombres 9 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ - un ingreso anual de 105 759 dólares - en cuanto a la educación, ocupación y tamaño de la ciudad es complicado determinar debido a que realmente lo que se obtiene es un promedio de la cantidad de registros que se encuentran en este cluster pero se podría decir que la mayoría cuenta con un nivel de educación secundaria, son desempleados o no cali�cados y viven en una ciudad pequeña o mediana. **Clúster 1:** Está conformado por 462 clientes con las siguientes características: - edad promedio: 35 años (adultos y adultos jóvenes) - la mayoría son mujeres pero también hay una alta cantidad de hombres - el ingreso anual en promedio es de 97 859 dólares - la mayoría al parecer tiene educación secundaria o desconocida - la ocupación indica que una gran parte está desempleado o pre�rieron no decirla - la gran mayoría vive en ciudades pequeñas **Clúster 2:** Está conformado por 570 clientes con las siguientes características: - edad promedio: 36 años (adultos y adultos jóvenes) - la mayoría son mujeres - con ingreso anual promedio de 141 218 dólares - educación secundaria o desconocida - la ocupación que más domina es: empleado/funcionario pero también puede pertenecer a los otros dos grupos - al parecer la mayoría vive en una gran ciudad, pero también podrían vivir en una ciudad mediana o pequeña **Clúster 3:** Está conformado por 263 clientes con las siguientes características: - edad promedio: 56 años (adultos mayores, personas de la tercera edad) - prácticamente en este grupo la mitad son mujeres y la mitad hombres - con un ingreso anual promedio de 158 338 dólares - educación universitaria en su mayoría, pero todo parece indicar que también hay clientes con posgrado y algunos otros con escuela secundaria u otra 10 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ - la ocupación que más domina es: empleado/funcionario pero también puede pertenecer a los otros dos grupos - al parecer la mayoría vive en una ciudad mediana, pero también podrían vivir en una ciudad grande o pequeña Con esto es posible hacer una grá�ca 3D para observar los clústeres: Modelo 2: Bosques Aleatorios para clasi�cación Paso 0. Selección de variable regresora y variables predictoras. Como lo que se busca predecir es la partición a la que pertenece un registro, entonces las variables predictoras son prácticamente todas las variables del conjunto de datos estandarizado. 11 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ La variable regresora, como ya se mencionó es el cluster al que pertenece cada registro. Paso 1. Creación del modelo, Selección de parámetros y Entrenamiento El bosque se creó con un total de 100 árboles de decisión (n_estimators), los cuales tienen una profundidad máxima de 10, y algunos otros parámetros que ayudan a evitar el over�tting. El entrenamiento se hace con el 80% de los datos originales, dejando así el 20% para validación. Paso 2. Clasi�cación y rendimiento del modelo Con el modelo creado y entrenado se procede a hacer la validación con los respectivos datos destinados para este propósito: 12 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ En la imagen anterior se obtiene una comparación preliminar entre las clasi�caciones originales y las que el modelo arroja, se aprecia de forma temprana que la predicción no di�ere prácticamente en ningún registro. Lo anterior se puede apreciar de mejor manera a través de la matriz de clasi�cación, la cual nos arroja los Verdaderos Positivos y Falsos Positivos en cada variable, en pocas palabras, cuántas veces acertó al clasi�car y cuántas no: Incluso, se puede ir más allá y mostrar un reporte detallado en donde se muestra la precisión del modelo para predecir correctamente cada clase: 13 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ En la imagen anterior también se muestra el porcentaje de relevancia que tuvo cada una de las variables para el modelo, para observar mejor esto se hace un grá�co de barras: Según esto, las variables más importantes sonMarital status y Settlement size, prácticamente son las que determinan el clúster al que pertenece cada registro. Por último se muestra la curva AUROC, en la que se ve el score para cada uno de los clusters: 14 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Conclusiones Cruz Rangel Leonardo Said: En esta práctica se empleó un enfoque mixto que consistió en la segmentación y clasi�cación utilizando los algoritmos KMeans y Bosques Aleatorios. Estas técnicas resultan especialmente útiles al transformar un conjunto de datos no supervisados en uno supervisado. En otras palabras, se buscó identi�car grupos dentro de los datos que estuvieran relacionados de alguna manera y luego se describieron dichos grupos en función de las variables que comparten. Al realizar esto, se le otorgó un signi�cado al conjunto de datos, lo cual permitió utilizar esta nueva variable como objetivo en un algoritmo de aprendizaje automático supervisado, como Bosques Aleatorios. Téllez González Jorge Luis: En conclusión, el clustering particional con el algoritmo K-means es una técnica efectiva para agrupar conjuntos de datos en clústeres. Permite una partición basada en la proximidad de los datos y minimiza la suma de las distancias cuadradas dentro de cada clúster. Sin embargo, K-means no proporciona directamente información sobre las etiquetas de clase o categorías a las que pertenecen los datos. Para abordar el problema de clasi�cación, se puede combinar K-means con bosques aleatorios. Esta combinación, conocida como Clustering Forests (CF), aprovecha los resultados del clustering particional de K-means para construir bosques aleatorios dedicados a cada clúster. Los bosques aleatorios se entrenan utilizando únicamente los puntos de datos de cada clúster, lo que permite un enfoque más preciso de la clasi�cación. Esta combinación es una estrategia prometedora para tareas de clasi�cación en conjuntos de datos complejos y grandes, donde la estructura de agrupamiento y la información de clase son importantes. Referencias Árboles de Decisión. (n.d.). Medium. RetrievedMay 23, 2023, from https://medium.com/@alexdianro/%C3%A1rboles-de-decisi%C3%B3n-960aebd7ee da 15 Facultad de Ingeniería Minería de Datos_____________________________________________________________________________________________________________ Bosques aleatorios y ejemplos. editores | by Alexdianro. (2020, September 12). Medium. RetrievedMay 23, 2023, from https://medium.com/@alexdianro/bosques-aleatorios-y-ejemplos-a850a2a35320 Martinez, J. (2020, September 18).Random Forest (Bosque Aleatorio): combinando árboles. IArti�cial.net. RetrievedMay 23, 2023, from https://www.iarti�cial.net/random-forest-bosque-aleatorio/ Step by Step to Understanding K-means Clustering and Implementation with sklearn. (2020, October 4). Medium. RetrievedMay 30, 2023, from https://medium.com/data-folks-indonesia/step-by-step-to-understanding-k-means-c lustering-and-implementation-with-sklearn-b55803f519d616
Compartir