Ir al contenido principal

Diagrama de temas

    • 8.2 Evaluar modelos de clúster

      • Métricas de evaluación para el agrupamiento

        Hasta ahora, ha visto métricas utilizadas para evaluar modelos de aprendizaje supervisado que realizan clasificación y regresión. Las métricas de evaluación utilizadas para el aprendizaje no supervisado, como las tareas de agrupamiento en clústeres, no tienen la ventaja de medir el rendimiento de un modelo en conjuntos de validación y pruebas, debido a la ausencia de una etiqueta. Los datos que se agrupan en clúster se utilizan para evaluar esa agrupación en clústeres, en lugar de algún conjunto de datos externo no visual. Por lo tanto, estas métricas de evaluación deben medir las características internas de un modelo, en particular el número de clústeres. Esto guía cómo se agrupan los puntos de datos existentes y tendrá un efecto en cómo se agrupan los nuevos datos cuando se introducen en el modelo. En otras palabras, puede usar estas métricas para ayudarle a ajustar el modelo para que cumpla mejor sus metas, pero no puede evaluar la validez objetiva de ese modelo.

        Esto también subraya por qué el conocimiento del dominio es tan útil en las tareas de agrupamiento en clústeres y debe aprovecharse siempre que sea posible. Con un conocimiento de dominio adecuado, puede usar de forma más eficaz las métricas de agrupamiento en clústeres para ayudar a dar forma a un modelo de esa naturaleza y a fin de lograr los resultados deseados, en lugar de trabajar desde una pizarra en blanco.

        Como es de esperar, no hay una métrica que sea la mejor para cada situación. Puede usar varias métricas en tándem para obtener varias perspectivas, si lo desea.

      • Punto de intersección

        Un método para determinar k (número de clústeres) es calcular la distancia media entre cada ejemplo de datos y su centroide asociado. A medida que k aumenta, la distancia media necesariamente disminuye. Sin embargo, en algún momento, el aumento de k se vuelve inútil y no reduce la distancia media de ninguna manera significativa. El punto en el que la distancia media ya no disminuye de manera significativa se llama el punto de intersección y, por lo general, es un buen indicador de lo que k debería ser. Considere la siguiente figura, en la que k se traza contra la distancia media.


        Figura 1. El punto del intersección indica que k debe ser 3.

      • Suma de cuadrados dentro del clúster

        Hay dos propiedades ideales de un modelo de agrupamiento: la compacidad del clúster y lo bien separado que está de otros clústeres. Cuanto mejores sean estas propiedades para un problema dado, mejor será el resultado. Para evaluar estas propiedades, puede conectar los valores de datos en dos ecuaciones independientes.

        La suma de cuadrados dentro del clúster (WCSS) mide la compacidad de los clústeres. Para ello, mida la distancia entre un punto de datos dado y su centroide de clúster, luego repitiendo este proceso para todos los demás puntos del clúster y calculando la distancia media. Los valores más pequeños de WCSS indican que los puntos de datos dentro de un clúster están más juntos, lo que significa que los valores más pequeños son ideales.

        La suma de cuadrados entre clústeres (BCSS) mide la separación entre clústeres. Para ello, mida la distancia entre un centroide determinado y todo el resto, luego repitiendo este proceso para todos los demás centroides y calculando la suma. Los valores de BCSS más grandes indican clústeres que están más separados, lo que significa que los valores más grandes son ideales.

      • Análisis de silueta



        Un análisis de silueta le ayuda a evaluar los ideales de compacidad y buena separación en una ecuación matemática. La ecuación calcula en qué medida encaja un ejemplo de datos determinado dentro de un clúster en comparación con sus clústeres vecinos. A cada ejemplo se le asigna un valor, denominado coeficiente de silueta o puntuación de silueta, entre #LioxSpecialChar8722#1 y 1. Este valor indica lo siguiente:


        Un coeficiente alto significa que el ejemplo está lejos de los clústeres vecinos y, por lo tanto, encaja bien dentro de su propio clúster.
        Un coeficiente cercano a 0 significa que el ejemplo está cerca del límite de decisión entre clústeres.
        Un coeficiente en negativo significa que el ejemplo está más cerca de un clúster vecino que el suyo propio y, por lo tanto, es probable que se haya colocado en el clúster incorrecto.

        Lo ideal es tener sus ejemplos de datos lo más cerca posible de 1. Los coeficientes bajos indican que es posible que deba ajustar su valor k. Normalmente, calcularía el coeficiente para cada ejemplo de datos y, a continuación, agruparía cada uno en su clúster respectivo. También calcularía el coeficiente promedio de cada clúster, así como el promedio de todo el modelo k dado. Luego, haría los mismos cálculos para diferentes valores k y compararía los coeficientes promedio de los diferentes valores k. En última instancia, seleccionaría el valor k que conduce al coeficiente de silueta más alto.

        Los valores derivados de un análisis de silueta se trazan normalmente en una gráfica. Para cada clúster, el ejemplo de datos con el coeficiente más alto está en la parte superior, con el coeficiente más bajo en la parte inferior. Esto forma una forma similar a una silueta para cada clúster. El clúster con el coeficiente promedio más alto a menudo se coloca en la parte superior, y el resto de los clústeres se colocan en orden descendente.

        En la figura siguiente, se trazan los análisis de silueta de tres valores k diferentes. Para k = 2, el coeficiente de silueta promedio es de alrededor de 0,578; para k = 3, el coeficiente promedio es de alrededor de 0,732. Para k = 4, el coeficiente de silueta promedio es de alrededor de 0,492. Dado que el coeficiente promedio de k = 3 es más alto, esto sugiere un mejor ajuste. Además, tenga en cuenta que el grosor de cada grupo trazado en k = 3 se distribuye de forma más uniforme que k = 2, ya que el modelo ya no ajusta muchos ejemplos en un grupo grande. Sin embargo, esta distribución uniforme no siempre conduce a un mejor coeficiente.


        Figura 1. Un análisis de silueta de tres valores k diferentes. La línea discontinua indica el coeficiente promedio para ese modelo.

        Nota
        : Dependiendo de la herramienta de gráficos y el número de ejemplos de datos, los ejemplos de cada clúster pueden no ser fáciles de distinguir visualmente y, en su lugar, pueden fusionarse en una sola forma sólida.

        Información adicional

        Para obtener más información sobre las métricas de evaluación de agrupación en clústeres, consulte este sitio.

      • Evaluación de modelos de clúster


        Antes de empezar

        Clustering.ipynb está abierto en Jupyter Notebook.

        Nota: Si cerró Jupyter Notebook desde que completó la actividad anterior, deberá reiniciar Jupyter Notebook y volver a abrir el archivo. Para asegurarse de que todos los objetos y la salida de Python están en el estado correcto para comenzar esta actividad:


        1. Seleccione Kernel→Reiniciar & y Borrar salida.

        2. Seleccione Reiniciar y borrar todas las salidas.

        3. Desplácese hacia abajo y seleccione la celda con la etiqueta Usar el método de codo para determinar el número óptimo de clústeres.

        4. Seleccione Celda→ Ejecutar todo lo anterior.

        Escenario

        Al igual que con el aprendizaje supervisado, necesitará alguna forma de evaluar los modelos de agrupación en clústeres. Esto es especialmente importante para elegir el número óptimo de clústeres, ya que cualquier cambio en este número tendrá un impacto significativo en la forma en que se segmentan las casas.



        ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        1. Utilice el método de codo para determinar el número óptimo de clústeres.

        1. Desplácese hacia abajo y vea la celda titulada Usar el método del codo para determinar el número óptimo de clústeres y examine la lista de código debajo de ella.

        En lugar de proporcionar un valor arbitrario para el número de clústeres, debe realizar análisis para determinar cuál es el número óptimo de clústeres. El método de codo es un método para lograrlo. Este código probará valores k del 1 al 10 y determinará cuál es el mejor.

        2. Ejecute la celda de código.

        3. Examine el resultado.

        Este diagrama localiza automáticamente el codo por usted: 3. Como puede ver, este es el punto en el que agregar más clústeres proporciona rendimientos decrecientes. La línea verde discontinua indica el tiempo necesario para entrenar el modelo en cada valor de clúster.

        ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        2. Utilice el análisis de silueta para determinar el número óptimo de clústeres.
        1. Desplácese hacia abajo y vea la celda titulada Usar el análisis de silueta para determinar el número óptimo de clústeres y examine la lista de código debajo de ella.

        Una alternativa al método del punto del codo es la puntuación de silueta, que este código visualizará. Empezará generando las siluetas con un k de 4, como el modelo original que generó anteriormente.
        2. Ejecute la celda de código.
        Nota: El análisis de silueta puede tardar unos minutos en finalizar.

        3. Examine el resultado.

        Cada uno de los 4 clústeres se traza como su propia silueta y la puntuación media de silueta para los clústeres se dibuja como una línea roja vertical.
        Nota: La silueta gris, que indica el clúster 3, tiene comparativamente pocos ejemplos de datos y por eso es más delgada que las otras siluetas.
        4. En la siguiente celda de código, examine el código.


        5. Ejecute la celda de código.

        6. Examine el resultado.

        La puntuación de silueta para 4 clústeres es de ~ 0,54. Las puntuaciones más cercanas a 1 indican una mayor cantidad de compacidad y separación de clústeres, que son los dos objetivos principales de la agrupación en clústeres eficaz. Sin embargo, una puntuación de silueta para un número de clústeres es más útil cuando se compara con un número diferente de clústeres.

        -------------------------------------------------------------------------------------------------------------------------------------------------------------
        3. Utilice 3 clústeres para el análisis de silueta y compárelos con la puntuación de silueta de 4 clústeres.
        1. Desplácese hacia abajo y vea la celda titulada Usar 3 clústeres para el análisis de silueta y compararlos con la puntuación de silueta de 4 clústeres y examine la lista de código debajo de ella.

        Esta vez, las siluetas se calcularán para 3 clústeres mediante k-means. Este es el mismo número de clústeres que el punto de codo.
        2. Ejecute la celda de código.
        Nota: El análisis de silueta puede tardar unos minutos en finalizar.
        3. Examine el resultado.

        La puntuación de silueta parece haber aumentado un poco, pero buscará la puntuación exacta para asegurarse.
        4. En la siguiente celda de código, examine el código.


        5. Ejecute la celda de código.

        6. Examine el resultado.

        La puntuación de silueta para 3 clústeres es de ~ 0,55. Como era de esperar, la puntuación de silueta aumentó un poco. Esto sugiere que 3 clústeres pueden ser mejores que 4. Generará una puntuación de silueta más para realizar una comparación.

        -------------------------------------------------------------------------------------------------------------------------------------------------------------
        4. Utilice 10 clústeres para el análisis de silueta y compárelos con la puntuación de la silueta anterior.
        1. Desplácese hacia abajo y vea la celda titulada Usar 10 clústeres para el análisis de silueta y compararlos con la puntuación de la silueta anterior y examine la lista de código debajo de ella.

        Esta vez, las siluetas se calcularán para 10 clústeres mediante k-means.

        2. Ejecute la celda de código.
        Nota: El análisis de silueta puede tardar unos minutos en finalizar.
        3. Examine el resultado.

        La puntuación de silueta parece haber disminuido, pero buscará la puntuación exacta para asegurarse.

        4. En la siguiente celda de código, examine el código.


        5. Ejecute la celda de código.

        6. Examine el resultado.

        La puntuación de silueta de ~0,52 es inferior a las puntuaciones de 3 y 4 clústeres. Si tuviera tiempo, probablemente desearía generar puntuaciones de silueta para muchos más valores de k, ya que podría haber algunos que obtienen una puntuación incluso mejor que los 3 clústeres.
        Debe tener en cuenta cómo el número de clústeres influirá en la forma en que aplica esas casas al mundo real. Puede haber un límite superior para el número de clústeres impuesto por el dominio del problema. Por ejemplo, ¿será factible para la agencia de bienes raíces crear y rastrear 10 o más grupos de viviendas diferentes? Por ahora, solo considerará que 3 es el número "óptimo" de clústeres, ya que también se alinea con lo que concluyó el punto de codo.

        ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        5. Utilice el número óptimo de clústeres para mostrar los grupos de viviendas.
        1. Desplácese hacia abajo y vea la celda titulada Usar el número óptimo de clústeres para mostrar los grupos de viviendas y examine la lista de código debajo de ella.



        2. Ejecute la celda de código.

        3. Examine el resultado.

        Hay tres clústeres, cada uno de los cuales considera las seis características de interés para los compradores de viviendas.

        4. Active y desactive las diferentes combinaciones de los clústeres para mostrar y ocultar esos mapas de calor de los clústeres, respectivamente.




        -------------------------------------------------------------------------------------------------------------------------------------------------------------
        6. ¿Cree que este modelo es adecuado para resolver el problema de recomendar casas similares a compradores que expresaron interés en una casa específica? ¿Por qué o por qué no?


        -------------------------------------------------------------------------------------------------------------------------------------------------------------
        7. Cierre este kernel de Jupyter Notebook y la máquina virtual.
        1. En Firefox, seleccione la pestaña Clustering.ipynb.
        2. En el menú, seleccione Kernel→Cerrar.
        3. En el cuadro de diálogo ¿Cerrar kernel?, seleccione Cerrar.
        4. Cierre Firefox.
        5. Cierre la ventana Terminal - que ejecuta el programa Jupyter Notebook.
        6. En el menú VirtualBox VM en la parte superior de la pantalla, seleccione Equipo→Apagar ACPI y, si es necesario, seleccione Apagar. Compruebe que la ventana de la VM se cierre.
        7. Cierre la ventana Oracle VM VirtualBox Manager.