[PYTHON] Klassifizieren Sie Daten nach der k-means-Methode

Hallo, das ist Motty. Dieses Mal wurde die Klassifizierung (Clustering) in Python durchgeführt.

Was ist Klassifizierung?

Die Klassifizierung in Statistik und maschinelles Lernen bezieht sich auf die Klassifizierung von Daten in Gruppen mit ähnlichen Merkmalen. Es handelt sich um "lehrerloses Lernen", da es ohne Standard im Voraus durchgeführt wird.

KMeans Methode

Die K-Mittelungsmethode ist ein Algorithmus, der anhand des Durchschnitts der Cluster in eine bestimmte Anzahl von Clustern (k) klassifiziert wird. Die Klassifizierungsstruktur wird optimiert, indem alle Daten danach klassifiziert werden, wie nahe sie am Schwerpunkt liegen, und der Schwerpunkt nacheinander aktualisiert wird.

 2020-04-12 18.49.13.png

In Python implementiert

KMeans.py


import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs as mb


clf = KMeans(n_clusters = 3)
N = 100 #Number of sample

dataset = mb(centers = 3)
features = np.array(dataset[0])
pred = clf.fit_predict(features)

 2020-04-12 18.51.40.png Ich konnte es ordentlich klassifizieren.

Es ist zu beachten, dass die Daten selbst sauber sind, die Anzahl von K angemessen ist und die Auswahl des Algorithmus angemessen ist. Wenn die Bedingungen nicht erfüllt sind, ist es möglicherweise nicht möglich, die Daten auf diese Weise sauber zu teilen.

Wenn es einen Ausreißer gibt

NOISE = [25,25]
features = np.append(features,NOISE).reshape(-1,2)

 2020-04-12 18.56.36.png

Wenn die Anzahl der Cluster nicht angemessen ist

dataset = mb(centers = 4)

 2020-04-12 18.59.44.png

Fälle, in denen der Klassifizierungsalgorithmus überhaupt nicht für K Means geeignet ist

makemoons.py


import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs as mb

clf = KMeans(n_clusters = 2)

X1,y1 = make_moons(noise = 0.05, random_state=0)
pred1 = clf.fit_predict(X1)

for i in range(2):
    labels = X1[pred1 == i]
    plt.scatter(labels[:,0],labels[:,1])

plt.show()

 2020-04-12 19.03.03.png

Am Ende

Es gibt verschiedene Klassifizierungsalgorithmen, und diesmal habe ich einen davon beschrieben, die KMeans-Methode. Ich möchte später die Klassifizierung von SVM und Ranram Forest beschreiben.

Recommended Posts

Klassifizieren Sie Daten nach der k-means-Methode
Verstehen Sie die k-means-Methode
[Grob] Clustering mit K-Mitteln
Daten nach Schwellenwert aufteilen
Trainingsdaten von CNN
Korrelation durch Datenvorverarbeitung
Clustering und Hauptkomponentenanalyse nach der K-Means-Methode (Anfänger)
Methode zur Extraktion von Stapeldaten unter Verwendung regulärer Ausdrücke aus Serien
Visualisierung von Daten anhand einer erklärenden Variablen und einer objektiven Variablen
Gzip komprimiert Daten durch Streaming
Visualisierung von Daten nach Präfektur
Datenvisualisierungsmethode mit Matplotlib (1)
Von Django erfasste Daten wurden weitergegeben
Datenvisualisierungsmethode mit Matplotlib (2)
Erste Satellitendatenanalyse von Tellus
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (5)
Schätzung von π nach der Monte-Carlo-Methode
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (3)
Effiziente PCR-Inspektion nach Poolmethode
10 Auswahlen der Datenextraktion durch pandas.DataFrame.query
Animation von Geodaten durch Geopandas
SVM-Optimierung durch aktive Set-Methode
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (4)
Ich habe versucht, die Anzahl der Mnisten durch unbeaufsichtigtes Lernen zu klassifizieren [PCA, t-SNE, k-means]
Datenanalyse durch Clustering mit der k-means-Methode (Python) ([Informationen zur Informationsabteilung der High School II] Unterrichtsmaterialien für die Lehrerausbildung)