Ich konnte auch nicht aus finden die Dokumentation zu lesen. Ich vermute, sie führen nicht classical MDS, aber etwas mehr anspruchsvolle:
"Moderne mehrdimensionale Skalierung - Theorie und Anwendungen" Borg, I .; Groenen P. Springer-Statistik (1997)
„nichtmetrischen multidimensionalen Skalierung: eine numerische Methode“ Kruskal, J. Psychometrika, 29 (1964)
„Multidimensionale Skalierung durch Güte der Anpassung an eine nichtmetrischen Hypothese zu optimieren“ Kruskal, J. Psychometrika, 29, (1964)
Wenn Sie nach Eigenwerten pro klassischen MDS suchen, dann ist es nicht schwer, sie selbst zu bekommen. Die Schritte sind:
- Holen Sie sich Ihre Distanzmatrix. Dann platziere es.
- Doppelzentrierung durchführen.
- Eigenwerte und Eigenvektoren finden
- Obere k Eigenwerte auswählen.
- Ihre i-ten Hauptkomponente ist sqrt (eigenvalue_i) * eigenvector_i
Siehe unten für Codebeispiel:
import numpy.linalg as la
import pandas as pd
# get some distance matrix
df = pd.read_csv("http://rosetta.reltech.org/TC/v15/Mapping/data/dist-Aus.csv")
A = df.values.T[1:].astype(float)
# square it
A = A**2
# centering matrix
n = A.shape[0]
J_c = 1./n*(np.eye(n) - 1 + (n-1)*np.eye(n))
# perform double centering
B = -0.5*(J_c.dot(A)).dot(J_c)
# find eigenvalues and eigenvectors
eigen_val = la.eig(B)[0]
eigen_vec = la.eig(B)[1].T
# select top 2 dimensions (for example)
PC1 = np.sqrt(eigen_val[0])*eigen_vec[0]
PC2 = np.sqrt(eigen_val[1])*eigen_vec[1]