Es gibt mehrere Möglichkeiten, Daten zusammenzufassen. Ich gebe hier 2 Beispiele.
k-mean-Clustering
können Sie scikit-learn
verwenden, um Daten in der Gruppe clustern KMeans
Modell. Grundsätzlich werden alle Datenpunkte einer Gruppe zugeordnet.
from sklearn.cluster import KMeans
X = np.array([[1, 2], [2, 3], [2, 3], [3, 5], [4, 2], [1, 1.5]])
kmean_model = KMeans(n_clusters=5, random_state=0)
kmean_model.fit_predict(X)
# return array([4, 2, 2, 3, 0, 1], dtype=int32)
K-Mean Clustering-Algorithmus ist in den meisten Büchern an diesem Tag verfügbar, so dass Sie darauf verweisen können.
Hierarchical Clustering
Für Hierarchical Clustering, müssen Sie zuerst die Distanzmatrix finden, werden in diesem Fall 6 x 6 sein, weil wir 6 Datenpunkte in X
. Das Ergebnis, das wir erhalten, ist die Partitionsnummer, damit Sie Ihre Datenpunkte basierend auf der Ausgabepartition ordnen können.
import numpy as np
from scipy.cluster.hierarchy import fcluster, linkage
from scipy.spatial.distance import cdist
X = np.array([[1, 2], [2, 3], [2, 3], [3, 5], [4, 2], [1, 1.5]])
D = cdist(X, X) # euclidean distance matrix (you can custom distance here as you like)
linkage = linkage(D)
partition = fcluster(linkage, t=0.01, criterion='distance')
# return array([2, 1, 1, 5, 4, 3], dtype=int32)
Siehe ähnliche Papiere here.
Die sklearn Dokumentation ist ziemlich gut, listet ihre 9 Methoden auf und gibt veröffentlichte Referenzen für jede. Sie können es in [diesem Link] (http://scikit-learn.org/stable/modules/clustering.html) überprüfen. – Mephy
ziemlich sicher PMD CPD (Copy Paste Detector) kann mit Python-Code arbeiten, aber das funktioniert nicht auf der AST-Ebene, also wenn Sie suchen, jemanden zu entdecken, nur alle Variablen umbenennen, wird das nicht helfen – Foon
Nein, Es tut nicht. Überprüfen Sie es hier: http://pmd.sourceforge.net/pmd-4.3.0/cpd.html (danke für Ihre Antwort) –