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.

Cómo transformar la inversa después de realizar el agrupamiento

Quiero recuperar mis datos después de la agrupación K-means en un conjunto de datos escalado con MinMaxScaler.
Aquí tienes un ejemplo de mi código:

copy_df = scaled_df.copy()
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(features)
copy_df['Cluster'] = kmeans.predict(features)

El escalador fue guardado;
Intenté algo como: x = scaler.inverse_transform(x)

Mi copy_df debe tener una columna más en comparación con mi scaled_df (el número de cluster)

Supongo que es por eso que estoy obteniendo:

ValueError: las dimensiones de los operandos no coinciden (3,5) (4,) (3,5)

¿Cómo puedo recuperar mis datos?

Necesito obtener los datos reales de mis clusters o la media de cada característica.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para recuperar sus datos después de aplicar el algoritmo de agrupamiento K-means en un conjunto de datos escalados con MinMaxScaler, primero necesita aplicar la transformación inversa del MinMaxScaler en los datos escalados utilizando el método inverse_transform(). Luego puede agregar las etiquetas de los clústeres al marco de datos. Aquí está el código que se puede utilizar para lograr esto:

    # Aplicar la transformación inversa en los datos escalados
    unscaled_df = pd.DataFrame(scaler.inverse_transform(scaled_df), columns=scaled_df.columns)
    
    # Crear una copia de los datos no escalados
    copy_df = unscaled_df.copy()
    
    # Ajustar el agrupamiento K-means en los datos no escalados
    kmeans = KMeans(n_clusters=3, random_state=42)
    kmeans.fit(unscaled_df)
    
    # Agregar las etiquetas de los clústeres al marco de datos
    copy_df['Cluster'] = kmeans.labels_
    
    # Calcular la media de cada característica para cada clúster
    mean_df = copy_df.groupby('Cluster').mean()
    

    La variable unscaled_df contiene los datos no escalados, que luego se copian en copy_df en el cual se realiza el agrupamiento K-means. Se agrega la columna Cluster a copy_df para indicar la etiqueta del clúster de cada punto de datos. Finalmente, se puede calcular la media de cada característica para cada clúster utilizando el método groupby() en el marco de datos copy_df.

Comments are closed.