Ich mache eine Clusteranalyse und habe mich gefragt, ob es möglich ist, Duplikate aus dem Datensatz zu entfernen, um die Leistung zu steigern.
Ich arbeite an Tabellen, in denen sich Objekte in Zeilen und Variablen in Spalten befinden.
Wenn zwei Zeilen identisch sind, können sie dann gelöscht werden? Würde dies das Ergebnis verändern?
Ich arbeite mit beiden hierarchical clustering
und k-means
/k-modes
Antworten:
Es ändert die Ergebnisse. Bei k-means sollte dies leicht zu erkennen sein: Der Mittelwert von 0, 0 und 1 unterscheidet sich von 0 und 1. Normalerweise ist dies auch bei hierarchischen Clustern der Fall, dies hängt jedoch von den Verknüpfungskriterien ab, z. B. der vollständigen Verknüpfung sollte nicht betroffen sein.
Allgemein gesprochen würde ich dafür argumentieren, es zu belassen. Duplikate weisen darauf hin, dass dies besonders wahrscheinlich Kombinationen variabler Werte sind, die aus diesem Grund ein höheres Gewicht erhalten sollten. Dies bedeutet, dass Beobachtungen mit denselben Werten nicht redundant werden.
Haben Sie wirklich Leistungsprobleme mit diesen beiden Algorithmen?
quelle
Wenn Sie Duplikate entfernen, müssen Sie stattdessen Ihren Daten Gewichte hinzufügen , andernfalls kann sich das Ergebnis ändern (mit Ausnahme von Single-Linkage-Clustering, denke ich).
Wenn Ihr Datensatz nur wenige Duplikate enthält, kostet Sie dies wahrscheinlich einige Laufzeit.
Wenn Ihr Datensatz viele Duplikate enthält, kann dies die Verarbeitung erheblich beschleunigen, um sie zusammenzuführen und stattdessen Gewichte zu verwenden . Wenn Sie durchschnittlich 10 Duplikate jedes Objekts und einen Algorithmus mit quadratischer Laufzeit haben, kann die Beschleunigung 100-fach sein. Das ist erheblich und die Mühe wert, Duplikate zusammenzuführen.
quelle