[PYTHON] Clustering mit scikit-learn + DBSCAN

Heute folgt [SciPy und NumPy] auf Gestern Ein Beispiel für die Verwendung von scikit-learn aus Optimieren und Boosten Ihrer Python-Programmierung Ich werde es kurz erklären. In Bezug auf Clustering Speisepilze identifizieren und Clustering-Ergebnisse wiederverwenden ) Und [Clustering mit Scikit-Learn] ](Http://qiita.com/ynakayama/items/ab2d89be36d3cdaeb4f2) Ich habe mich damit befasst, daher denke ich, dass es eine vertraute Methode beim maschinellen Lernen ist.

Clustering mit Scikit-Learn

Kernpunkte mit mehr Datenpunkten im Vergleich zu den beliebten kmeans Der DBSCAN-Algorithmus (http://en.wikipedia.org/wiki/DBSCAN) wiederholt den Vorgang innerhalb des Radius, der bei der Definition des Kerns angegeben wurde. Diese Technik wird häufig mit km-Werten für verrauschte Daten verglichen.

Die Originalarbeit vergleicht und visualisiert auch diese Methoden. Lass es uns gleich versuchen.

import numpy as np
import matplotlib.pyplot as mpl
from scipy.spatial import distance
from sklearn.cluster import DBSCAN

#Generieren Sie zunächst Beispieldaten mit Zufallszahlen
c1 = np.random.randn(100, 2) + 5
c2 = np.random.randn(50, 2)

#Gleichmäßige Verteilung erzeugen und stapeln
u1 = np.random.uniform(low=-10, high=10, size=100)
u2 = np.random.uniform(low=-10, high=10, size=100)
c3 = np.column_stack([u1, u2])

#Speichern Sie alle Daten in einem 150 x 2-Array
data = np.vstack([c1, c2, c3])

#Clustering mit DBSCAN
# db.labels_Ist ein Array mit Bezeichnern für verschiedene Cluster in den Daten
db = DBSCAN().fit(data)
labels = db.labels_

#Holen Sie sich die Koordinaten für jeden Kern
#Zwei Cluster sind 0 und 1, das Rauschen ist-Klassifiziert als 1
#Teilen Sie diese
dbc1 = data[labels == 0] #Negatives Beispiel
dbc2 = data[labels == 1] #Positives Beispiel
noise = data[labels == -1] #Lärm

Das Merkmal ist, dass Rauschen auf diese Weise getrennt werden kann.

Visualisierung

Visualisieren wir es mit der bekannten matplotlib.

x1, x2 = -12, 12
y1, y2 = -12, 12
fig = mpl.figure()
fig.subplots_adjust(hspace=0.1, wspace=0.1)
ax1 = fig.add_subplot(121, aspect='equal')
ax1.scatter(c1[:, 0], c1[:, 1], lw=0.5, color='#00CC00')
ax1.scatter(c2[:, 0], c2[:, 1], lw=0.5, color='#028E9B')
ax1.scatter(c3[:, 0], c3[:, 1], lw=0.5, color='#FF7800')
ax1.xaxis.set_visible(False)
ax1.yaxis.set_visible(False)
ax1.set_xlim(x1, x2)
ax1.set_ylim(y1, y2)
ax1.text(-11, 10, 'Original')
ax2 = fig.add_subplot(122, aspect='equal')
ax2.scatter(dbc1[:, 0], dbc1[:, 1], lw=0.5, color='#00CC00')
ax2.scatter(dbc2[:, 0], dbc2[:, 1], lw=0.5, color='#028E9B')
ax2.scatter(noise[:, 0], noise[:, 1], lw=0.5, color='#FF7800')
ax2.xaxis.set_visible(False)
ax2.yaxis.set_visible(False)
ax2.set_xlim(x1, x2)
ax2.set_ylim(y1, y2)
ax2.text(-11, 10, 'DBSCAN identified')
fig.savefig('image.png', bbox_inches='tight')

image.png

Recommended Posts

Clustering mit scikit-learn + DBSCAN
DBSCAN (Clustering) mit Scikit-Learn
DBSCAN mit Scikit-Learn
Clustering mit Scikit-Learn (1)
Clustering mit Scikit-Learn (2)
Fotosegmentierung und Clustering mit DBSCAN
Isomap mit Scikit-lernen
Clustering mit Python-Louvain
PCA mit Scikit-Learn
kmeans ++ mit scikit-learn
Die grundlegendste Clusteranalyse 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
DBSCAN-Algorithmus (Datenclustering)
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
Parallele Verarbeitung mit Parallel von Scikit-Learn
[Python] Lineare Regression mit Scicit-Learn
Deep Embedded Clustering mit Chainer 2.0
Robuste lineare Regression mit Scikit-Learn
Führen Sie (Visualisierung> Clustering> Funktionsbeschreibung) mit (t-SNE, DBSCAN, Entscheidungsbaum) durch.
Rastersuche von Hyperparametern mit Scikit-learn
Erstellen eines bestimmten Baums mit Scikit-Learn
Bildsegmentierung mit Scikit-Image und Scikit-Learn
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!
[Scikit-learn] Ich habe mit der ROC-Kurve gespielt
Probieren Sie SVM mit scikit-learn auf Jupyter Notebook aus
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