¿Es necesario estandarizar sus datos antes del clúster? En el ejemplo de scikit learn
aproximadamente DBSCAN, aquí hacen esto en la línea:
X = StandardScaler().fit_transform(X)
Pero no entiendo por qué es necesario. Después de todo, la agrupación no supone una distribución particular de datos: es un método de aprendizaje no supervisado, por lo que su objetivo es explorar los datos.
¿Por qué sería necesario transformar los datos?
python
clustering
clusters
anomaly-detection
Candic3
fuente
fuente
Respuestas:
La normalización no siempre es necesaria, pero rara vez duele.
Algunos ejemplos:
K-significa :
Ejemplo en Matlab:
(FYI: ¿Cómo puedo detectar si mi conjunto de datos está agrupado o no agrupado (es decir, formando un solo grupo )
Agrupación distribuida :
Red neuronal artificial (entradas) :
Red neuronal artificial (entradas / salidas)
Curiosamente, cambiar las unidades de medida puede incluso llevar a uno a ver una estructura de agrupación muy diferente: Kaufman, Leonard y Peter J. Rousseeuw. "Encontrar grupos en los datos: una introducción al análisis de agrupación". (2005)
Kaufman y col. continúa con algunas consideraciones interesantes (página 11):
fuente
Se recomienda estandarizar los datos porque, de lo contrario, el rango de valores en cada característica actuará como una ponderación al determinar cómo agrupar los datos, que generalmente no son deseados.
Por ejemplo, considere la métrica estándar para la mayoría de los algoritmos de agrupamiento (incluido DBSCAN en sci-kit learn)
euclidean
, también conocida como la norma L2. Si una de sus características tiene un rango de valores mucho más grande que las otras, la agrupación estará completamente dominada por esa característica. Para ilustrar este aspecto en el ejemplo simple a continuación:A partir de esto, debería ver que las distancias euclidianas entre las versiones no estandarizadas están dominadas por la tercera columna porque su rango de valores es mucho mayor que las otras dos. Sin embargo, cuando los datos están estandarizados, esto ya no se convierte en un problema y pondera cada característica como igual al calcular la distancia entre cada punto de datos.
fuente
No es estrictamente necesario estandarizar, ya sea que se requiera o no, puede depender de la métrica de distancia que elija.
Por ejemplo, si opta por la distancia de Mahalanobis, la separación se basará en el número de desviaciones estándar que separan los puntos y no en la distancia absoluta entre ellos, como tal, es una métrica invariante de escala.
Al igual que con muchas cosas en el aprendizaje automático, no hay una respuesta rápida y difícil y la única forma de saberlo con certeza es aplicar una variedad de técnicas para ver cuál da los resultados más apropiados para sus datos.
fuente
En algunos casos, me pareció útil definir una función de "evaluación comercial", definiendo la "importancia" de las dimensiones utilizadas para la agrupación. Por ejemplo, para la frutería que agrupa a los clientes, si las manzanas son dos veces más caras que las naranjas, el número de manzanas se duplicará.
fuente