donEnno / gamma_delta

1 stars 0 forks source link

kNN pruning performance #24

Closed mbruhns closed 2 years ago

mbruhns commented 2 years ago

Moin,

ich habe gerade nochmal über die Analyse der Klassifikationsperformance bzgl. Graph-Pruning via kNN-Selection nachgedacht (Buzzword-Bingo!😄). Insgesamt wollen wir ja sehen, wie sich die Größe der Nachbarschaft, bzw. ihre relative Größe zum Gesamtgraphen verhält (im Folgenden RN) auf die Performance der Klassifikation auswirkt. Zwei Darstellungen sind interessant:

  1. RN vs. ARI
  2. RN vs. F1

Durch (2) können wir sehen, ob das Pruning eventuell positive Effekte im Vergleich zum vollen Graphen hat.

Zusätzlich frage ich mich gerade, wie wir diese Effekte etwas stabiler abschätzen können. In der regulären Pipeline hast du ja schon eine cross-validation implementiert, welche Variante genau? Das solltest du an dieser Stelle auch verwenden, dann kannst du (1) und (2) mit Konfidenzintervall darstellen.

Welche Variablen hältst du für diese Untersuchung konstant? Ist eigentlich nur der Resolution-Parameter von Leiden, oder?

Gib Bescheid, falls du Fragen hast ✌🏻

donEnno commented 2 years ago

Moin! Die Ergebnisse des Pruning-Experiments habe ich als powerpoints hochgealden. Unten findest du drei Plots (P70, B45, B62) die jeweils die den ARI vs k%-cutoffs und number_clusters vs k%-cutoff zeigen.

Insgesamt bin ich so vorgegangen: Erst einmal habe ich die UMAP mit dem initialen Clustering für den vollen Graphen erzeugt. Dann habe ich für jedes k% in [0.05, 0.1, ...., 0.95] das gepruned werden soll, eine neue UMAP erzeugt und auf dem neuen Graphe geclustert. Dieses Clustering habe ich dann sowohl in der kNN UMAP als auch in der ground truth UMAP geplottet. Außerdem habe ich immer den ARI und die Anzahl der gefundenen Cluster gespeichert und die dann eben für die Plots weiter unten verwendet.

Anmerkung Leider habe ich nicht die Clusterzahl in die jeweiligen Plots aufgenommen, aber die ganzen Werte habe ich. Wichtig zu wissen ist aber, dass für PAM70 und BLOSUM45 8 Cluster in der ground truth sind und für BLOSUM62 nur 2. Die Zahl der Cluster hat sehr stark für verschieden k% geschwankt. Für alle Durchgänge war gamma=1.11 konstant.

Beobachtung Für P70 und B45 (8 initiale Cluster) ist ein sehr ähnliches Verhalten zu beobachten: Die Zahl der Cluster geht für k%=0.4 stark nach oben, wonach sie wieder fällt, während der ARI wieder zunimmt. Der ARI ist für beiden SMs am Anfang am höchsten, scheint aber für k%=0.9 zwar nicht nahe bei 1.0 zu liegen, aber dennoch über 0.5 liegt. Wenn man sich die UMAP Projektionen ansieht, und das gilt für alle 3 SMs, kann man Beobachten, wie die Projektionen nach und nach etwas entzerrt werden und eine klarere Trennung oder zumindest eine bessere Orientierung der Cluster in der Projektion entsteht. Das ist aber alles nur augenscheinlich und wie viel Schlüsse sich aus den UMAP Projektionen im Vergleich zu den Clusterings ziehen lassen, finde ich insgesamt schwierig. Für B62 sind die ARI-Scores insgesamt eher niedrig, das liegt aber (IMO) an den zwei initialen Clustern. Aber auch hier gibt es für k5=0.85 noch einmal eine Zunahme des ARI.

p70_result b45_result b62_result

donEnno commented 2 years ago

Weitere Anmerkung Insgesamt finde ich es eher schwierig mit den gammas zu arbeiten, da manchmal einfach sehr random sehr sehr viele Cluster und dann wieder nur 1 2 Cluster gefunden werden.

RN vs. F1: Hierfür muss ich erstmal die Pipeline mit dem kNN Klassikationen vervollständigen.

Für den Wochenstart möchte ich das Spectral Clustering und die kNN Classification einpflegen.

mbruhns commented 2 years ago

Danke für das Update! Kompakt ein paar Fragen:

  1. Du schreibst in der PowerPoint immer knn with lowest X% pruned, ist das ein Typo, oder ein Fehler im Code? Wenn du das Pruning auf der Distanzmatrix machst, willst du doch die oberen X% entfernen
  2. Insgesamt sieht (zumindest für mich) die ARI-kNN-Analyse nicht sehr informativ aus, das Verhalten hätte ich mir anders erhofft, aber vielleicht liegt das auch an (1)
  3. In diesem Setting hast du doch aber konstantes Gamma gewählt, inwiefern hat das hier Schwierigkeiten bereitet?
  4. Insgesamt sind die UMAPs immernoch ziemlich "unsauber". Kann natürlich am Datentyp liegen, aber vielleicht hängt das auch mit #25
donEnno commented 2 years ago

Pruning wird erstmal ausgeklammert.