es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Agrupación de una matriz de características utilizando sklearn (Python)

Tengo un dataframe de tamaño 9×100 con puntuaciones de tf-idf de 100 palabras que existen en los documentos del 0 al 8, el dataframe se puede ver aquí:

Enlace a mi dataframe: My Dataframe

Luego convierto este dataframe en una matriz X usando:

X = df.values

Estoy tratando de agrupar estas 100 palabras en 50 grupos (donde no se permite un grupo vacío) utilizando el paquete sklearn.cluster.AgglomerativeClustering, pero realmente no estoy seguro de cómo implementar este método en mi conjunto de muestra, ya que aún quiero mantener las etiquetas de las palabras del dataframe en la salida de datos. ¿Alguien podría ayudarme?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para agrupar las 100 palabras en 50 grupos utilizando sklearn.cluster.AgglomerativeClustering, puedes seguir los siguientes pasos:

    1. Importa las librerías necesarias:
    from sklearn.cluster import AgglomerativeClustering
    
    1. Inicializa el objeto AgglomerativeClustering con el número deseado de grupos:
    agg_clustering = AgglomerativeClustering(n_clusters=50)
    
    1. Ajusta el modelo de agrupación en la matriz X:
    agg_clustering.fit(X)
    
    1. Obtiene las etiquetas de cluster para cada palabra:
    cluster_labels = agg_clustering.labels_
    

    Ten en cuenta que las etiquetas de los grupos serán enteros que van desde 0 hasta 49.

    Para mantener las etiquetas de las palabras del dataframe, puedes añadirlas como una columna en la matriz X antes de realizar la agrupación:

    X_with_labels = np.hstack((df.columns.to_numpy().reshape(-1,1), X))
    agg_clustering.fit(X_with_labels)
    cluster_labels_with_labels = agg_clustering.labels_
    

    Esto añadirá las etiquetas de las palabras como la primera columna en la matriz X y las etiquetas de grupo resultantes también incluirán las etiquetas de las palabras.

Comments are closed.