Gestern habe ich mit skikit-learn den Überblick über das Clustering und den Ablauf des tatsächlichen Clustering erklärt.
Clustering durch scikit-learn (1)
Kehren wir zu den Grundlagen zurück und untersuchen, was Clustering überhaupt ist.
In vielen Algorithmen für maschinelles Lernen werden Merkmale (Elemente) durch Vektoren dargestellt. In der linearen Algebra wird die Menge, in der die Summe und das Skalarprodukt intern definiert sind, als Vektorraum bezeichnet, und ihre Elemente werden als Vektor bezeichnet.
Grob gesagt ist Clustering eine Methode, um zu berechnen, wie ähnlich die Merkmalsgrößen sind, und um ähnliche zu gruppieren.
Unabhängig davon, ob es sich bei den Originaldaten um Text oder Bilder handelt, wird es möglich, zu gruppieren, ohne dass die Daten einem Lehrer übergeben werden, wenn das Muster erkannt und auf die Merkmalsmenge reduziert wird.
Beispielsweise kann es auf verschiedene Technologien angewendet werden, z. B. das Sammeln einer nicht festgelegten Anzahl von Fragebogenantworten zwischen ähnlichen Personen und das Extrahieren des Hautfarbenteils eines Bildes.
Wenn Sie so weit gelesen haben, sollten Sie verstanden haben, dass der Schlüssel zum Clustering darin besteht, die Ähnlichkeit von Mengen zu finden.
Ich werde Sie zusammen mit dem Scikit-Lernprogramm durch den Code führen. Clustering
labels_true = [0, 0, 0, 1, 1, 1]
labels_pred = [0, 0, 1, 1, 2, 2]
print ( metrics.adjusted_mutual_info_score(labels_true, labels_pred) )
# => 0.225042310598
labels_true = [0, 1, 2, 0, 3, 4, 5, 1]
labels_pred = [1, 1, 0, 0, 2, 2, 2, 2]
print ( metrics.adjusted_mutual_info_score(labels_true, labels_pred) )
# => -0.105263430575
labels_true = [0, 0, 0, 1, 1, 1]
labels_pred = [0, 0, 1, 1, 2, 2]
print ( metrics.homogeneity_score(labels_true, labels_pred) )
# => 0.666666666667
print ( metrics.completeness_score(labels_true, labels_pred) )
# => 0.420619835714
Wie Sie sehen können, kann Scikit-Learn verschiedene Ähnlichkeiten finden.
Versuchen wir, mit dem gestrigen Code zu clustern. Da scikit-learn einen Datensatz hat, verwenden Sie ihn so wie er ist. Bereiten Sie zunächst den Datensatz vor.
from sklearn import metrics
from sklearn.metrics import pairwise_distances
from sklearn import datasets
dataset = datasets.load_iris()
X = dataset.data
y = dataset.target
#Werfen Sie einen Blick auf den Inhalt
print (X)
print (y)
Lassen Sie uns mit dem gestrigen Code gruppieren.
import numpy as np
from sklearn.cluster import KMeans
kmeans_model = KMeans(n_clusters=3, random_state=1).fit(X)
labels = kmeans_model.labels_
#Versuchen Sie, die euklidische Entfernung zu berechnen
print ( metrics.silhouette_score(X, labels, metric='euclidean') )
#Clustering mit dem Code von gestern
clusters = make_cluster(X)
#Geben Sie das Ergebnis in eine Datei aus
write_cluster(clusters, 'out.txt')
#Sehen Sie sich den Inhalt des generierten Clusters an
print ( clusters )
Durch die Verwendung einer leistungsstarken Clusterbibliothek kann gesagt werden, dass die Gruppierung einfach durchgeführt und auf verschiedene Felder angewendet werden kann, sobald die Identität des Ziels durch Mustererkennung extrahiert wurde.
Recommended Posts