[PYTHON] Clustering mit Scikit-Learn (2)

Bedeutung und Zweck des Clusters

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.

Berechnung der Ähnlichkeit

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.

Clustering

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 )

Erwägung

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

Clustering mit Scikit-Learn (2)
Clustering mit scikit-learn + DBSCAN
DBSCAN (Clustering) mit Scikit-Learn
Isomap mit Scikit-lernen
Clustering mit Python-Louvain
DBSCAN mit Scikit-Learn
PCA mit Scikit-Learn
kmeans ++ mit scikit-learn
Clustering repräsentativer Schulen im Sommer 2016 mit Scikit-Learn
Kreuzvalidierung mit Scikit-Learn
Mehrklassen-SVM mit Scikit-Learn
Scikit-Lernen mit Chemoinfomatik
Installieren Sie scikit.learn mit pip
Berechnen Sie tf-idf mit scikit-learn
Versuchen Sie es mit Scikit-Learn (1) - K-Clustering nach Durchschnittsmethode
Neuronales Netzwerk mit Python (Scikit-Learn)
Ich habe versucht, mit PyCaret zu clustern
[Python] Lineare Regression mit Scicit-Learn
Deep Embedded Clustering mit Chainer 2.0
Robuste lineare Regression mit Scikit-Learn
Rastersuche von Hyperparametern mit Scikit-learn
Erstellen eines bestimmten Baums mit Scikit-Learn
Bildsegmentierung mit Scikit-Image und Scikit-Learn
Fotosegmentierung und Clustering mit DBSCAN
Identifizieren Sie Ausreißer mit dem Random Forest Classifier von scikit-learn
Laplace-Eigenkarten mit Scikit-Learn (persönliche Notizen)
Nicht negative Matrixfaktorisierung (NMF) mit Scikit-Learn
SVM versucht maschinelles Lernen mit Scikit-Learn
Scikit-learn DecisionTreeClassifier mit Datetime-Typwerten
100 Sprachverarbeitung Knock-97 (mit Scicit-Learn): k-bedeutet Clustering
Lassen Sie uns die Hyperparameter des Modells mit scikit-learn abstimmen!
Überarbeitetes Scikit-Lernen
[Scikit-learn] Ich habe mit der ROC-Kurve gespielt
Multi-Label-Klassifizierung nach Random Forest mit Scikit-Learn
Implementieren Sie einen minimalen selbst erstellten Schätzer mit scikit-learn
Füllen Sie fehlende Werte mit Scikit-learn impute aus
Clustering von Büchern von Aozora Bunko mit Doc2Vec
Visualisieren Sie den Entscheidungsbaum von Scikit-Learn mit Plotlys Treemap
Multivariables Regressionsmodell mit Scikit-Learn - Ich habe versucht, SVR zu vergleichen und zu verifizieren