¿Es necesario estandarizar sus datos antes de la agrupación?


23

¿Es necesario estandarizar sus datos antes del clúster? En el ejemplo de scikit learnaproximadamente 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?


¡Gracias por las respuestas detalladas! Como seguimiento de todas sus respuestas: entiendo que si las características están en escalas diferentes, esto podría presentar un problema. Sin embargo, si la métrica de distancia se normaliza a la varianza, ¿logra esto el mismo resultado que la escala estándar antes de la agrupación? es decir, generalmente uso una distancia euclidiana normalizada relacionada : ¿esto también mitiga los efectos de escala?
Candic3

Respuestas:


19

La normalización no siempre es necesaria, pero rara vez duele.

Algunos ejemplos:

K-significa :

La agrupación de K significa que es "isotrópica" en todas las direcciones del espacio y, por lo tanto, tiende a producir agrupaciones más o menos redondas (en lugar de alargadas). En esta situación, dejar varianzas desiguales es equivalente a poner más peso en las variables con menor varianza.

Ejemplo en Matlab:

X = [randn(100,2)+ones(100,2);...
     randn(100,2)-ones(100,2)];

% Introduce denormalization
% X(:, 2) = X(:, 2) * 1000 + 500;

opts = statset('Display','final');

[idx,ctrs] = kmeans(X,2,...
                    'Distance','city',...
                    'Replicates',5,...
                    'Options',opts);

plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
plot(ctrs(:,1),ctrs(:,2),'kx',...
     'MarkerSize',12,'LineWidth',2)
plot(ctrs(:,1),ctrs(:,2),'ko',...
     'MarkerSize',12,'LineWidth',2)
legend('Cluster 1','Cluster 2','Centroids',...
       'Location','NW')
title('K-means with normalization')

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

(FYI: ¿Cómo puedo detectar si mi conjunto de datos está agrupado o no agrupado (es decir, formando un solo grupo )

Agrupación distribuida :

El análisis comparativo muestra que los resultados de la agrupación distribuida dependen del tipo de procedimiento de normalización.

Red neuronal artificial (entradas) :

Si las variables de entrada se combinan linealmente, como en un MLP, rara vez es estrictamente necesario estandarizar las entradas, al menos en teoría. La razón es que cualquier cambio de escala de un vector de entrada puede deshacerse efectivamente cambiando los pesos y sesgos correspondientes, dejándolo con los mismos resultados exactos que tenía antes. Sin embargo, hay una variedad de razones prácticas por las cuales estandarizar las entradas puede hacer que el entrenamiento sea más rápido y reducir las posibilidades de quedarse atascado en los óptimos locales. Además, la disminución de peso y la estimación bayesiana se pueden hacer más convenientemente con entradas estandarizadas.

Red neuronal artificial (entradas / salidas)

¿Debería hacer alguna de estas cosas a sus datos? La respuesta es, depende.

La estandarización de las variables de entrada u objetivo tiende a hacer que el proceso de capacitación se comporte mejor al mejorar la condición numérica (ver ftp://ftp.sas.com/pub/neural/illcond/illcond.html ) del problema de optimización y garantizar que varios valores predeterminados los valores involucrados en la inicialización y terminación son apropiados. La estandarización de objetivos también puede afectar la función objetivo.

La estandarización de los casos debe abordarse con precaución porque descarta la información. Si esa información es irrelevante, entonces estandarizar casos puede ser bastante útil. Si esa información es importante, entonces estandarizar casos puede ser desastroso.


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)

En algunas aplicaciones, cambiar las unidades de medida puede incluso hacer que uno vea una estructura de agrupación muy diferente. Por ejemplo, la edad (en años) y la altura (en centímetros) de cuatro personas imaginarias se dan en la Tabla 3 y se representan en la Figura 3. Parece que {A, B) y {C, 0) son dos grupos bien separados . Por otro lado, cuando la altura se expresa en pies, se obtienen la Tabla 4 y la Figura 4, donde los grupos obvios ahora son {A, C} y {B, D}. Esta partición es completamente diferente de la primera porque cada sujeto ha recibido otro compañero. (La Figura 4 se habría aplanado aún más si la edad se hubiera medido en días).

Para evitar esta dependencia de la elección de las unidades de medida, uno tiene la opción de estandarizar los datos. Esto convierte las medidas originales en variables sin unidades.

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Kaufman y col. continúa con algunas consideraciones interesantes (página 11):

Desde un punto de vista filosófico, la estandarización realmente no resuelve el problema. De hecho, la elección de las unidades de medida da lugar a pesos relativos de las variables. Expresar una variable en unidades más pequeñas dará lugar a un rango mayor para esa variable, lo que tendrá un gran efecto en la estructura resultante. Por otro lado, al estandarizar se intenta dar a todas las variables un peso igual, con la esperanza de lograr la objetividad. Como tal, puede ser utilizado por un practicante que no posee conocimiento previo. Sin embargo, puede ser que algunas variables sean intrínsecamente más importantes que otras en una aplicación en particular, y luego la asignación de pesos debería basarse en el conocimiento de la materia (véase, por ejemplo, Abrahamowicz, 1985). Por otra parte, Ha habido intentos de diseñar técnicas de agrupamiento que sean independientes de la escala de las variables (Friedman y Rubin, 1967). La propuesta de Hardy y Rasson (1982) es buscar una partición que minimice el volumen total de los cascos convexos de los grupos. En principio, dicho método es invariante con respecto a las transformaciones lineales de los datos, pero desafortunadamente no existe un algoritmo para su implementación (excepto por una aproximación que está restringida a dos dimensiones). Por lo tanto, el dilema de la estandarización parece inevitable en la actualidad y los programas descritos en este libro dejan la elección del usuario. La propuesta de Hardy y Rasson (1982) es buscar una partición que minimice el volumen total de los cascos convexos de los grupos. En principio, dicho método es invariante con respecto a las transformaciones lineales de los datos, pero desafortunadamente no existe un algoritmo para su implementación (excepto por una aproximación que está restringida a dos dimensiones). Por lo tanto, el dilema de la estandarización parece inevitable en la actualidad y los programas descritos en este libro dejan la elección del usuario. La propuesta de Hardy y Rasson (1982) es buscar una partición que minimice el volumen total de los cascos convexos de los grupos. En principio, dicho método es invariante con respecto a las transformaciones lineales de los datos, pero desafortunadamente no existe un algoritmo para su implementación (excepto por una aproximación que está restringida a dos dimensiones). Por lo tanto, el dilema de la estandarización parece inevitable en la actualidad y los programas descritos en este libro dejan la elección del usuario.


1
Esta respuesta es fenomenal
Candic3

6

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:

>>> import numpy as np
>>> from sklearn.preprocessing import StandardScaler
>>> from sklearn.metrics.pairwise import euclidean_distances
>>> 
>>> X = np.array([[1,2,100],[4,3,50],[1,1,75]])
>>> 
>>> print X
[[  1   2 100]
 [  4   3  50]
 [  1   1  75]]
>>> 
>>> print euclidean_distances(X)
[[  0.          50.0999002   25.01999201]
 [ 50.0999002    0.          25.25866188]
 [ 25.01999201  25.25866188   0.        ]]
>>> print euclidean_distances(StandardScaler().fit_transform(X))
[[ 0.          3.46410162  1.73205081]
 [ 3.46410162  0.          3.46410162]
 [ 1.73205081  3.46410162  0.        ]]

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.


1

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.


0

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á.


Pero, ¿no podría simplemente incluir eso como una característica adicional en la que se agrupa? es decir, el precio se convierte en una característica para agrupar?
Candic3
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.