k-Means-Algorithmus
Der k-Means-Algorithmus ist ein unüberwachter Lernalgorithmus. Es versucht, diskrete Gruppierungen innerhalb von Daten zu finden, wobei Mitglieder einer Gruppe sich so ähnlich wie möglich sein sollen und sich so stark wie möglich von Mitgliedern anderer Gruppen unterscheiden sollen. Sie definieren die Attribute, die der Algorithmus zum Ermitteln der Ähnlichkeit verwenden soll.
Amazon SageMaker AI verwendet eine modifizierte Version des für Webanwendungen skalierbaren k-Clustering-Algorithmus. Verglichen mit der ursprünglichen Version des Algorithmus ist die Version, die von Amazon SageMaker AI benutzt wird, genauer. Sie ist, wie der ursprüngliche Algorithmus, für riesige Datensätze skalierbar und bringt Verbesserungen hinsichtlich der Trainingszeit. Zu diesem Zweck streamt die von Amazon SageMaker AI verwendete Version Mini-Batches (kleine, nach dem Zufallsprinzip ausgewählte Untermengen) der Trainingsdaten. Weitere Informationen zu k-Means-Mini-Stapeln finden Sie unter Web-scale k-means Clustering
Der k-Means-Algorithmus erwartet tabellarische Daten, wobei die Zeilen die Beobachtungen darstellen, die Sie clustern möchten, und die Spalten die Attribute der Beobachtungen. Die n Attribute in den einzelnen Zeilen stellen einen Punkt im n-dimensionalen Raum dar. Der euklidisch Abstand zwischen diesen Punkten stellt die Ähnlichkeit der entsprechenden Beobachtungen dar. Der Algorithmus gruppiert die Beobachtungen mit ähnlichen Attributen (die Punkte, die diesen Beobachtungen entsprechen, sind näher beieinander). Weitere Informationen zur Funktionsweise von k-Means-Algorithmen in Amazon SageMaker AI finden Sie unter So funktioniert das Clustering mit k-Means-Algorithmen.
Themen
E/A-Schnittstelle für den k-Means-Algorithmus
Für das Training nimmt der k-Means-Algorithmus an, dass die Daten in einem Trainingskanal (empfohlen S3DataDistributionType=ShardedByS3Key), mit einem optionalen Testkanal (empfohlen S3DataDistributionType=FullyReplicated) bereitgestellt werden, für den die Daten bewertet werden. Die Formate recordIO-wrapped-protobuf und CSV werden beide für das Training unterstützt. Sie können entweder den Datei- oder den Pipe-Modus verwenden, um Modelle mit Daten, die als recordIO-wrapped-protobuf oder CSV formatiert sind, zu trainieren.
Für Inferenz werden text/csv, application/json und application/x-recordio-protobuf unterstützt. k-Means gibt eine closest_cluster-Bezeichnung und die distance_to_cluster für jede Beobachtung zurück.
Weitere Informationen über die Eingabe- und Ausgabedateiformate finden Sie unter k-Means-Antwortformate für Inferenz und unter k-Means-Beispiel-Notebooks. Der k-Means-Algorithmus unterstützt kein Mehrfach-Instance-Lernen, bei dem der Trainingssatz aus gekennzeichneten „Data Bags” besteht, von denen jede eine Sammlung von nicht gekennzeichneten Instances ist.
EC2-Instance-Empfehlung für den k-Means-Algorithmus
Wir empfehlen, k-Means-Algorithmen auf CPU-Instances zu trainieren. Sie können auf GPU-Instances trainieren, sollten aber das GPU-Training auf Single-GPU-Instances (wie ml.g4dn.xlarge) beschränken, da nur eine GPU pro Instance verwendet wird. Der k-means-Algorithmus unterstützt P2-, P3-, G4dn- und G5-Instances für Training und Inferenz.
k-Means-Beispiel-Notebooks
Ein Beispiel-Notebook, das den SageMaker AI k-Means-Algorithmus zur Segmentierung der Bevölkerung der Bezirke in den USA nach Attributen, die mit der Hauptkomponentenanalyse identifiziert werden, verwendet, finden Sie unter Analysieren Sie US-Volkszählungsdaten für die Bevölkerungssegmentierung mit Amazon SageMaker AI