Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
So funktioniert das Clustering mit k-Means-Algorithmen
k-Means ist ein Algorithmus, der ein Modell schult, das ähnliche Objekte gruppiert. Der k-Means-Algorithmus erreicht dies, indem er jeder Beobachtung in der Eingabemenge einen Punkt im n-dimensionalen Raum zuweist (wobei n gleich der Anzahl der Attribute der Beobachtung ist). Beispiel: Angenommen, Ihr Datensatz enthält Beobachtungen über Temperatur und Luftfeuchtigkeit an einem bestimmten Standort, die auf Punkte (t, h) in einem zweidimensionalen Raum abgebildet sind.
Anmerkung
Clustering-Algorithmen sind unüberwacht. Bei unüberwachtem Lernen werden Kennzeichnungen, die den Objekten im Trainingsdatensatz zugeordnet werden, nicht verwendet. Weitere Informationen finden Sie unter Unüberwachtes Lernen.
Beim k-means-Clustering hat jedes Cluster ein Zentrum. Bei der Modelltraining verwendet der k-Means-Algorithmus den Abstand zwischen einer Beobachtung im Datensatz und dem Clusterzentrum als Grundlage für das Clustering. Sie wählen die Anzahl der zu erstellenden (k) Cluster.
Angenommen, Sie möchten ein Modell erstellen, das handschriftliche Zahlen erkennt und Sie wählen für das Training einen MNIST-Datensatz aus. Der Datensatz enthält Tausende von Bildern handschriftlicher Zahlen (0 bis 9). In diesem Beispiel können Sie beispielsweise 10 Cluster erstellen, einen für jede Ziffer (0, 1,..., 9). Im Rahmen der Modelltraining gruppiert der k-Means-Algorithmus die eingegebenen Bilder in 10 Cluster.
Jedes Bild im MNIST-Datensatz ist ein 28x28-Pixel-Bild mit insgesamt 784 Pixeln. Jedes Bild entspricht einem Punkt in einem 784-dimensionalen Raum, ähnlich einem Punkt in einem zweidimensionalen Raum (x, y). Um ein Cluster zu finden, dem der Punkt zugeordnet werden kann, sucht der k-Means-Algorithmus den Abstand dieses Punktes von allen Clusterzentren. Dann wählt der Algorithmus das Cluster mit dem nächsten Zentrum als Cluster aus, zu dem das Bild gehört.
Anmerkung
Amazon SageMaker verwendet eine benutzerdefinierte Version des Algorithmus. Anstatt anzugeben, dass der Algorithmus k Cluster erstellt, können Sie die Modellgenauigkeit verbessern, indem Sie zusätzliche Clusterzentren angeben (K = k*x). Der Algorithmus reduziert diese jedoch letztendlich auf k Cluster.
In geben Sie die Anzahl der Cluster an SageMaker, wenn Sie einen Schulungsjob erstellen. Weitere Informationen finden Sie unter CreateTrainingJob
. Im Anforderungstext fügen Sie die HyperParameters
String-Zuweisung hinzu, um die Strings k
und extra_center_factor
festzulegen.
Im Folgenden finden Sie eine Zusammenfassung der Funktionsweise von K-Means für das Modelltraining in SageMaker:
-
Er bestimmt die anfänglichen K Clusterzentren.
Anmerkung
In den folgenden Themen beziehen sich K Cluster auf k * x, wobei Sie k und x beim Erstellen eines Modelltrainingsauftrags festlegen.
-
Die eingegebenen Trainingsdaten werden abgearbeitet und die Cluster-Zentren neu berechnet.
-
Die sich daraus ergebenden Cluster werden auf k reduziert (wenn der Datenexperte in der Anforderung festgelegt hat, dass k*x Cluster erstellt werden).
In den folgenden Abschnitten werden einige der Parameter erläutert, die ein Datenexperte festlegen kann, um einen Modelltrainingssauftrag als Teil der String-Zuweisung HyperParameters
zu konfigurieren.
Themen
Schritt 1: Festlegen der anfänglichen Clusterzentren
Bei Verwendung von K-Means in SageMaker werden die anfänglichen Clusterzentren aus den Beobachtungen in einer kleinen, nach dem Zufallsprinzip ausgewählten Charge ausgewählt. Wählen Sie eine der folgenden Strategien, um zu festzulegen, wie diese anfänglichen Clusterzentren ausgewählt werden:
-
Der Zufallsansatz–Wählen Sie zufällig K-Beobachtungen in Ihrem Eingabedatensatz als Clusterzentren aus. Sie können beispielsweise ein Clusterzentrum auswählen, das auf den 784 dimensionalen Raum verweist, der 10 beliebigen Bildern im MNIST-Trainingsdatensatz entspricht.
-
Der Ansatz k-Means++ funktioniert folgendermaßen:
-
Sie beginnen mit einem Cluster und legen seine Zentren fest. Sie wählen zufällig eine Beobachtung aus Ihrem Trainingsdatensatz und verwenden den Punkt, welcher der Beobachtung entspricht, als Clusterzentrum. Wählen Sie z. B. im MNIST-Datensatz nach dem Zufallsprinzip ein handschriftliches Zahlenbild aus. Wählen Sie dann den Punkt im 784-dimensionalen Raum, der dem Bild als Ihrem Clusterzentrum entspricht. Dies ist das Clusterzentrum 1.
-
Bestimmen Sie das Zentrum für Cluster 2. Von den verbleibenden Beobachtungen im Trainingsdatensatz suchen Sie nach dem Zufallsprinzip eine Beobachtung heraus. Wählen Sie eine, die sich von den zuvor ausgewählten unterscheidet. Diese Beobachtung entspricht einem Punkt, der von Clusterzentrum 1 weit entfernt ist. Führen Sie die folgenden Schritte aus, um den MNIST-Datensatz als Beispiel zu verwenden:
-
Finden Sie für jedes der restlichen Bilder den Abstand des entsprechenden Punktes von Clusterzentrum 1. Bilden Sie das Quadrat des Abstands und weisen Sie eine Wahrscheinlichkeit zu, die proportional zum Quadrat des Abstands ist. Auf diese Weise erhöht sich die Wahrscheinlichkeit, dass ein Bild als Clusterzentrum 2 ausgewählt wird, das sich von dem zuvor ausgewählten unterscheidet.
-
Wählen Sie eines der Bilder nach dem Zufallsprinzip, basierend auf den Wahrscheinlichkeiten, die im vorherigen Schritt zugewiesen wurden. Der Punkt, der dem angegebenen Bild entspricht, ist Clusterzentrum 2.
-
-
Wiederholen Sie Schritt 2, um das Clusterzentrum 3 zu finden. Suchen Sie dieses Mal die Abstände der verbleibenden Bilder vom Clusterzentrum 2.
-
Wiederholen Sie diesen Vorgang, bis Sie K Clusterzentren vorliegen haben.
-
Um ein Modell zu trainieren SageMaker, erstellen Sie einen Trainingsjob. Stellen Sie in der Anforderung die Konfigurationsinformationen bereit, indem Sie folgende HyperParameters
String-Zuweisung angeben:
-
Um die Anzahl der zu erstellenden Cluster anzugeben, fügen Sie die
k
-Zeichenfolge hinzu. -
Um eine größere Genauigkeit zu erzielen, fügen Sie die optionale
extra_center_factor
-Zeichenfolge hinzu. -
Um die Strategie, die Sie zur Ermittlung der ersten Clusterzentren verwenden möchten, zu bestimmen, fügen Sie die Zeichenfolge
init_method
hinzu und setzen Sie ihren Wert aufrandom
oderk-means++
.
Weitere Informationen zum SageMaker K-Means-Schätzer finden Sie unter K-Means
Sie verfügen jetzt über einen ersten Satz an Clusterzentren.
Schritt 2: Arbeiten Sie den Trainingsdatensatz ab und berechnen Sie die Clusterzentren
Die Clusterzentren, die Sie im vorhergehenden Schritt erstellt haben, sind meistens nach dem Zufallsprinzip unter Berücksichtigung des Trainingsdatensatzes entstanden. In diesem Schritt verwenden Sie den Trainingsdatensatz, um diese Zentren in die richtigen Clusterzentren zu verschieben. Der Algorithmus arbeitet den Trainingsdatensatz ab und berechnet die K- Clusterzentren neu.
-
Lesen Sie eine Mini-Stapel an Beobachtungen (eine kleine, nach dem Zufallsprinzip ausgewählte Teilmenge aller Datensätze) aus dem Trainingsdatensatz und führen Sie die folgenden Schritte aus.
Anmerkung
Beim Erstellen eines Modelltrainingsauftrags geben Sie die Stapelgröße in der Zeichenfolge
mini_batch_size
in der ZeichenfolgenzuweisungHyperParameters
an.-
Weisen Sie alle Beobachtungen im Mini-Stapel einem der Cluster mit dem nächstgelegenen Clusterzentrum zu.
-
Berechnen Sie die Anzahl der Beobachtungen, die jedem Cluster zugewiesen werden. Anschließend berechnen Sie den Anteil der neuen Punkte, die jedem Cluster zugeordnet werden.
Betrachten wir z. B. die folgenden Cluster:
Cluster c1 = 100 zuvor zugewiesene Punkte. Sie haben in diesem Schritt 25 Punkte aus dem Mini-Stapel zugeordnet.
Cluster c2 = 150 zuvor zugewiesene Punkte. Sie haben in diesem Schritt 40 Punkte aus dem Mini-Stapel zugeordnet.
Cluster c3 = 450 zuvor zugewiesene Punkte. Sie haben in diesem Schritt 5 Punkte aus dem Mini-Stapel zugeordnet.
Berechnen Sie den Anteil der neuen Punkte, die jedem Cluster zugewiesen wurden, wie folgt:
p1 = proportion of points assigned to c1 = 25/(100+25) p2 = proportion of points assigned to c2 = 40/(150+40) p3 = proportion of points assigned to c3 = 5/(450+5)
-
Berechnen Sie den Mittelpunkt der neuen Punkte, die jedem Cluster hinzugefügt wurden:
d1 = center of the new points added to cluster 1 d2 = center of the new points added to cluster 2 d3 = center of the new points added to cluster 3
-
Berechnen Sie den gewichteten Durchschnitt wie im Folgenden dargestellt, um die aktualisierten Clusterzentrem zu finden:
Center of cluster 1 = ((1 - p1) * center of cluster 1) + (p1 * d1) Center of cluster 2 = ((1 - p2) * center of cluster 2) + (p2 * d2) Center of cluster 3 = ((1 - p3) * center of cluster 3) + (p3 * d3)
-
-
Lesen Sie den nächsten Mini-Stapel und wiederholen Sie Schritt 1, um die Clusterzentren neu zu berechnen.
-
Weitere Informationen zu k-Means-Mini-Batches finden Sie unter Web-Scale k-means Clustering
.
Schritt 3: Reduzieren Sie die Cluster von K auf k
Wenn der Algorithmus K-Cluster erstellt hat– (K = k*x), wobei x größer als 1 ist– dann reduziert er K-Cluster auf k-Cluster. (Weitere Informationen finden Sie unter extra_center_factor
der vorangegangenen Diskussion.) Dies geschieht durch Anwendung der Methode von Lloyd mit der kmeans++
-Initialisierung auf die K Clusterzentren. Weitere Informationen zur Lloyd-Methode finden Sie unter k-means clustering