sklearn.manifold.smacof

sklearn.manifold.smacof()

Calcula el escalado multidimensional mediante el algoritmo SMACOF.

El algoritmo SMACOF (Scaling by MAjorizing a COmplicated Function) es un algoritmo de escalado multidimensional que minimiza una función objetivo (the stress o tensión) mediante una técnica de mayorización. La mayorización de la tensión, también conocida como Transformada de Guttman, garantiza una convergencia monótona de la tensión, y es más potente que las técnicas tradicionales, como el descenso del gradiente.

El algoritmo SMACOF para el MDS métrico puede resumirse en los siguientes pasos:

  1. Establece una configuración inicial de inicio, aleatoria o no.

  2. Calcula la tensión

  3. Calcula la transformación Guttman

  4. Iterar 2 y 3 hasta la convergencia.

El algoritmo no métrico añade un paso de regresión monótona antes de calcular la tensión.

Parámetros
dissimilaritiesndarray de forma (n_samples, n_samples)

Disimilitudes por pares entre los puntos. Debe ser simétrica.

metricbool, default=True

Calcula el algoritmo SMACOF métrico o no métrico.

n_componentsint, default=2

Número de dimensiones en las que sumergir las disimilitudes. Si se proporciona el arreglo init, esta opción se anula y la forma de init se utiliza para determinar la dimensionalidad del espacio de embedding.

initndarray of shape (n_samples, n_components), default=None

Configuración inicial del embedding para inicializar el algoritmo. Por defecto, el algoritmo se inicializa con un arreglo elegido al azar.

n_initint, default=8

Número de veces que se ejecutará el algoritmo SMACOF con diferentes inicializaciones. El resultado final será el mejor resultado de las ejecuciones, determinado por la ejecución con la menor tensión final. Si se proporciona init, esta opción se anula y se realiza una única ejecución.

n_jobsint, default=None

El número de trabajos a utilizar para el cálculo. Si se utilizan múltiples inicializaciones (n_init), cada ejecución del algoritmo se calcula en paralelo.

None significa 1 a menos que esté en un contexto joblib.parallel_backend. -1 significa que se utilizan todos los procesadores. Consulta Glosario para más detalles.

max_iterint, default=300

Número máximo de iteraciones del algoritmo SMACOF para una sola ejecución.

verboseint, default=0

Nivel de verbosidad.

epsfloat, default=1e-3

Tolerancia relativa con respecto a la tensión a la que declarar la convergencia.

random_stateint, RandomState instance or None, default=None

Determina el generador de números aleatorios utilizado para inicializar los centros. Pase un int para obtener resultados reproducibles a través de múltiples llamadas a la función. Ver :term: Glosario <random_state>.

return_n_iterbool, default=False

Devolver o no el número de iteraciones.

Devuelve
Xndarray de forma (n_samples, n_components)

Coordenadas de los puntos en un espacio n_components.

stressfloat

El valor final de la tensión (suma de la distancia al cuadrado de las disparidades y las distancias de todos los puntos restringidos).

n_iterint

El número de iteraciones correspondientes a la mejor tensión. Se devuelve sólo si return_n_iter se establece como True.

Notas

«Modern Multidimensional Scaling - Theory and Applications» Borg, I.; Groenen P. Springer Series in Statistics (1997)

«Nonmetric multidimensional scaling: a numerical method» Kruskal, J. Psychometrika, 29 (1964)

«Multidimensional scaling by optimizing goodness of fit to a nonmetric hypothesis» Kruskal, J. Psychometrika, 29, (1964)