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:
Establece una configuración inicial de inicio, aleatoria o no.
Calcula la tensión
Calcula la transformación Guttman
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 deinit
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 contextojoblib.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 comoTrue
.
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)