Agrupamiento Jerárquico – Scikit Learn

La Agrupación Jerárquica es un tipo de algoritmo de Aprendizaje no Supervisado que se utiliza para agrupar puntos de datos no etiquetados. La Agrupación Jerárquica también agrupa los puntos de datos con características similares. En algunos casos, el resultado de la Agrupación Jerárquica y de K Means puede ser similar.

Existen dos tipos de Agrupación Jerárquica: aglomerativa y divisoria. En el primero, los puntos de datos se agrupan utilizando un enfoque ascendente que comienza con puntos de datos individuales, mientras que en el segundo se sigue un enfoque descendente en el que todos los puntos de datos se tratan como un gran conglomerado y el proceso de agrupación implica la división de un gran conglomerado en varios conglomerados pequeños.

Acá nos enfocaremos en la agrupación aglomerativa que implica el enfoque ascendente.

El objeto, de Scikit Learn, AgglomerativeClustering realiza una agrupación jerárquica utilizando un enfoque de abajo hacia arriba, cada observación comienza en su propio cúmulo, y los cúmulos se fusionan sucesivamente.

Veamos primero los métodos que podemos utilizar para posterior ver detalladamente los parámetros que podemos utilizar para configurar el algoritmo y obtener mejores resultados.

El primer paso que tienes que hacer es importar el modulo AgglomerativeClustering desde sklearn.cluster. Recuerda que este es un algoritmo de agrupamiento por lo que es normal que se encuentre dentro del módulo “cluster”.

Realizado esto procedemos a analizar los parámetros que podemos utilizar junto a este algoritmo.

El primero será fit(), con el cual puedes entrenar el modelo. Acá solamente debes utilizar los datos correspondientes a X, que vendrían siendo los datos de entrenamiento.

Recuerda que para los algoritmos de Aprendizaje no Supervisado no se utiliza los valores de “y” o lo que vendría siendo los datos dependientes ya que acá nos enfocamos básicamente en entender los datos más que predecir un valor específico como se hace en el Aprendizaje Supervisado.

El siguiente método será fit_predict(), con el cual podemos entrenar el algoritmo y también realizar una predicción. Con este método utilizamos las muestras de nuestros datos en vez de los valores con el que se entreno el algoritmo.

La diferencia entre fit() y fit_predict(), es que en el primer caso utilizas tus datos de entrenamiento mientras que en el segundo utilizas los datos de prueba o los que quieres predecir. En pocas palabras fit_predict() sería algo similar al método predict() en los algoritmos de Aprendizaje Supervisado.

Una vez implementados estos métodos junto al algoritmo obtendremos el número de clúster asociado a cada dato que realizamos la predicción.

Estos serán los métodos que se usan generalmente al momento de implementar el algoritmo de Aprendizaje no Supervisado Agrupamiento Jerárquico Aglomerativo.

Expliquemos ahora los parámetros que podemos configurar en el algoritmo para obtener mejores resultados. Recuerda que estos parámetros lo que harán es que tengas un mejor control sobre el algoritmo de Agrupamiento Jerárquico Aglomerativo y podemos mejorar los resultados del modelo.

El primer parámetro a definir, por supuesto, será el número de clústeres. Acá debemos escribir el número de clústeres a formar. Por defecto este valor es de 2 en caso de que no sea definido. Recuerda que este valor deberás calcularlo previamente con cualquiera de los métodos que fueron explicados en anteriores videos.

El siguiente parámetro es “affinity” que se refiere a las medidas de distancia que se utilizarán para calcular la vinculación. Esta métrica puede ser “euclidean”, referente a la distancia euclidiana, “manhattan” referente a la distancia manhattan, “cosine” referente a la distancia del coseno o “precomputed”. Estas distancias fueron explicadas en la teoría de este algoritmo. Si se va a utilizar la vinculación “ward” se debe seleccionar la métrica euclidiana. En caso de seleccionar precalculado, se necesita una matriz de distancia, en lugar de una matriz de similitud, como entrada para el método de ajuste. Por defecto este parámetro esta configurado con la distancia euclidiana.

Finalmente, el siguiente parámetro a definir es “linkage” o las medidas de vinculación. El criterio de vinculación determina qué distancia usar entre los conjuntos de observación. El algoritmo fusionará los pares de cúmulos que minimizan este criterio. Las medidas de vinculación que se pueden seleccionar son: ward, la cual se encuentra configurada por defecto, “complete” haciendo referencia al enlace completo, “average” refiriéndose a enlace promedio y “single” refiriéndose al enlace simple. Cada una de estas medidas fueron explicadas en la teoría de este algoritmo.

Con toda esta información podemos configurar correctamente el algoritmo de Agrupamiento Jerárquico Aglomerativo y desarrollar un buen modelo junto a los datos con que se este trabajando. De igual forma, una vez construido el modelo se puede obtener la información necesaria para ser presentada posteriormente alas personas interesadas.

 

2 comentarios en “Agrupamiento Jerárquico – Scikit Learn”

  1. Arnaldo Viera daza

    Me interesa mucho aprender por el tema de aprendizaje no supervisado.
    (Mejorar el algoritmo)
    Por que e tenido y tengo experiencia física con la IA
    POR ESE MOTIVO INVESTIGUE HASTA QUE DI CON ESTA PÁGINA
    QUE POR CIERTO FUE LA QUE MAS ME LLAMO LA ATENCIÓN

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *