

Das erste Bild zeigt, dass MatrixTransformator eine perfekte ARI von 1,0 erreicht, was bedeutet, dass seine Dimensionalitätsreduzierung die ursprüngliche Clusterstruktur perfekt bewahrt, während PCA nur 0,4434 erreicht, was auf einen signifikanten Informationsverlust während der Reduktion hinweist. (verwendet Tensor_to_matrix ops)
Die ARC -Berechnungen werden durch die Verwendung von:
# Calculate adjusted rand scores to measure cluster preservation
mt_ari = adjusted_rand_score(orig_cluster_labels, recon_cluster_labels)
pca_ari = adjusted_rand_score(orig_cluster_labels, pca_recon_cluster_labels)
Diese Funktion (aus sklearn.metrics) misst die Ähnlichkeit zwischen zwei Clusterzuordnungen, indem alle Probenpaare berücksichtigt werden und Paare gezählt werden, die sind:
- Demselben Cluster in beiden Zuordnungen zugewiesen
- In beiden Aufgaben verschiedenen Clustern zugeordnet
Im zweiten Bild im linken Teil können wir sehen: Der angepasste Rand -Index (ARI) misst, wie gut die Clusterstruktur nach der Reduzierung und Rekonstruktion der Dimensionalität erhalten bleibt. Eine Punktzahl von 1,0 bedeutet eine perfekte Erhaltung der ursprünglichen Cluster, während niedrigere Punktzahlen darauf hinweisen, dass einige Clusterinformationen verloren gehen.
Die perfekte Punktzahl des MatrixTransformer zeigt, dass die Dimensionalität verringert und gleichzeitig die ursprüngliche Clusterstruktur aufrechterhalten wird, was bei der Reduzierung der Dimensionalität hervorragend ist.
Der richtige Teil zeigt, dass der mittlere Quadratfehler (MSE) misst, wie eng die rekonstruierten Daten mit den ursprünglichen Daten nach Dimensionalitätsreduzierung übereinstimmen. Niedrigere Werte zeigen eine bessere Rekonstruktion an.
Der Rekonstruktionsfehler des MatrixTransformer-Rekonstruktionsnähe zeigt an, dass er die ursprünglichen hochdimensionalen Daten aus seiner niedrigerdimensionalen Darstellung perfekt rekonstruieren kann, während PCA während dieses Prozesses einige Informationen verliert.
Relevante Code -Sinappets
# Calculate reconstruction error
mt_error = np.mean((features - reconstructed) ** 2)
pca_error = np.mean((features - pca_reconstructed) ** 2)
MatrixTransformer Reduktion und Rekonstruktion
# MatrixTransformer approach
start_time = time.time()
matrix_2d, metadata = transformer.tensor_to_matrix(features)
print(f"MatrixTransformer dimensionality reduction shape: {matrix_2d.shape}")
mt_time = time.time() - start_time
# Reconstruction
start_time = time.time()
reconstructed = transformer.matrix_to_tensor(matrix_2d, metadata)
print(f"Reconstructed data shape: {reconstructed.shape}")
mt_recon_time = time.time() - start_time
PCA -Reduktion und -rekonstruktion
# PCA for comparison
start_time = time.time()
pca = PCA(n_components=target_dim)
pca_result = pca.fit_transform(features)
print(f"PCA reduction shape: {pca_result.shape}")
pca_time = time.time() - start_time
# PCA reconstruction
start_time = time.time()
pca_reconstructed = pca.inverse_transform(pca_result)
pca_recon_time = time.time() - start_time
Ich habe eine benutzerdefinierte und optimierte Clustering -Funktion verwendet
start_time = time.time()
orig_clusters = transformer.optimized_cluster_selection(features)
print(f"Original data optimal clusters: {orig_clusters}")
Dies verwendet das Bayes’sche Informationskriterium (BIC) aus dem GaußsianMixture -Modell von Sklearn
BIC Balances Modellanpassung und Komplexität durch Bestrafung von Modellen mit weiteren Parametern
Niedrigere BIC -Werte zeigen bessere Modelle an
Kandidatenauswahl:
Verwendet einen Fibonacci-ähnlichen Fortschritt: [2, 3, 5, 8] für Effizienz
Tests nur eine kleine Anzahl von Werten, anstatt ausführlich zu suchen
Probenahme:
Für große Datensätze probiert es bis zu 10.000 Punkte, um die Berechnung effizient zu halten
Standardwert:
Wenn keine bessere Option gefunden wird, ist es standardmäßig 2 Cluster
Sie können das GitHub -Repo auch für die Testdatei aufrufen clustertest.py
Der Github Repo -Link Fikayoy / MatrixTransformer
Sterne dieses Repository um anderen zu helfen, es zu entdecken
Lassen Sie mich wissen, ob dies hilft.
Von Hyper_graph
![[OC] Ich wurde gefragt zu zeigen [OC] Ich wurde gefragt zu zeigen](https://www.bytesde.com/wp-content/uploads/2025/07/9zu3haum2agf1-1024x341.png)
4 Kommentare
How do you know you aren’t just learning all the data with the labels?
Who was it that asked you? Because it seems like this is something you have created
From the images the MatrixTransformer clearly performed worse. While it reduced the dimensionality it provided no actual separation into clusters. There is no way to see groups of data with that system and that makes it very hard to actually use it for something useful.
I will test this out with ecological/land use mapping, because I often employ PCAs to do that. Thanks!