

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.

# k-Means-Algorithmus
<a name="k-means"></a>

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 webbasierten K-Means-Clustering-Algorithmus. Im Vergleich zur Originalversion des Algorithmus ist die von Amazon SageMaker AI verwendete Version 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, zufällige Teilmengen) der Trainingsdaten. Weitere Informationen zu k-Means-Mini-Stapeln finden Sie unter [Web-scale k-means Clustering](https://dl.acm.org/doi/10.1145/1772690.1772862).

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 in Amazon SageMaker AI finden Sie unter[So funktioniert das Clustering mit k-Means-Algorithmen](algo-kmeans-tech-notes.md).

**Topics**
+ [E/A-Schnittstelle für den k-Means-Algorithmus](#km-inputoutput)
+ [EC2-Instance-Empfehlung für den k-Means-Algorithmus](#km-instances)
+ [k-Means-Beispiel-Notebooks](#kmeans-sample-notebooks)
+ [So funktioniert das Clustering mit k-Means-Algorithmen](algo-kmeans-tech-notes.md)
+ [k-Means-Hyperparameter](k-means-api-config.md)
+ [Optimieren eines k-Means-Modells](k-means-tuning.md)
+ [k-Means-Antwortformate](km-in-formats.md)

## E/A-Schnittstelle für den k-Means-Algorithmus
<a name="km-inputoutput"></a>

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](km-in-formats.md) für Inferenz und unter [k-Means-Beispiel-Notebooks](#kmeans-sample-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
<a name="km-instances"></a>

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
<a name="kmeans-sample-notebooks"></a>

Ein Beispielnotizbuch, das den SageMaker KI K-Means-Algorithmus verwendet, um die Bevölkerung von Landkreisen in den Vereinigte Staaten nach Attributen zu segmentieren, die mithilfe der Hauptkomponentenanalyse identifiziert wurden, finden Sie unter [Analysieren von US-Volkszählungsdaten zur Bevölkerungssegmentierung](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_applying_machine_learning/US-census_population_segmentation_PCA_Kmeans/sagemaker-countycensusclustering.html) mit Amazon AI. SageMaker Anweisungen zum Erstellen und Zugreifen auf Jupyter-Notebook-Instances, mit denen Sie das Beispiel in KI ausführen können, finden Sie unter. SageMaker [SageMaker Amazon-Notebook-Instanzen](nbi.md) Nachdem Sie eine Notebook-Instanz erstellt und geöffnet haben, wählen Sie den Tab **SageMaker KI-Beispiele** aus, um eine Liste aller KI-Beispiele zu sehen. SageMaker Zum Öffnen eines Notebooks klicken Sie auf die Registerkarte **Use (Verwenden)** und wählen Sie **Create copy (Kopie erstellen)** aus.

# So funktioniert das Clustering mit k-Means-Algorithmen
<a name="algo-kmeans-tech-notes"></a>

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](algorithms-choose.md#algorithms-choose-unsupervised-learning).

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 AI verwendet eine benutzerdefinierte Version des Algorithmus. Anstatt anzugeben, dass der Algorithmus *k* Cluster erstellt, können Sie die Modellgenauigkeit verbessern, indem Sie zusätzliche Cluster-Zentren angeben *(K = k\$1x*). Der Algorithmus reduziert diese jedoch letztendlich auf *k* Cluster.

In SageMaker KI geben Sie bei der Erstellung eines Schulungsjobs die Anzahl der Cluster an. Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html). 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 KI:

1. Er bestimmt die anfänglichen *K* Clusterzentren. 
**Anmerkung**  
In den folgenden Themen beziehen sich *K* Cluster auf *k \$1 x*, wobei Sie *k* und *x* beim Erstellen eines Modelltrainingsauftrags festlegen. 

1. Die eingegebenen Trainingsdaten werden abgearbeitet und die Cluster-Zentren neu berechnet.

1. Die sich daraus ergebenden Cluster werden auf *k* reduziert (wenn der Datenexperte in der Anforderung festgelegt hat, dass *k\$1x* 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. 

**Topics**
+ [Schritt 1: Festlegen der anfänglichen Clusterzentren](#kmeans-step1)
+ [Schritt 2: Arbeiten Sie den Trainingsdatensatz ab und berechnen Sie die Clusterzentren](#kmeans-step2)
+ [Schritt 3: Reduzieren Sie die Cluster von *K* auf *k*](#kmeans-step3)

## Schritt 1: Festlegen der anfänglichen Clusterzentren
<a name="kmeans-step1"></a>

Bei der Verwendung von K-Means in SageMaker KI werden die anfänglichen Clusterzentren aus den Beobachtungen in einer kleinen, zufällig 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\$1\$1 funktioniert folgendermaßen: 

  1. 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.

  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.

  1. Wiederholen Sie Schritt 2, um das Clusterzentrum 3 zu finden. Suchen Sie dieses Mal die Abstände der verbleibenden Bilder vom Clusterzentrum 2.

  1. Wiederholen Sie diesen Vorgang, bis Sie *K* Clusterzentren vorliegen haben.

Um ein Modell in SageMaker KI zu trainieren, 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 auf `random` oder `k-means++`.

Weitere Informationen zum SageMaker KI K-Means Estimator finden Sie unter [K-Means](https://sagemaker.readthedocs.io/en/stable/algorithms/unsupervised/kmeans.html) in der [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) SDK-Dokumentation.

Sie verfügen jetzt über einen ersten Satz an Clusterzentren. 

## Schritt 2: Arbeiten Sie den Trainingsdatensatz ab und berechnen Sie die Clusterzentren
<a name="kmeans-step2"></a>

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.

1. 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 Zeichenfolgenzuweisung `HyperParameters` an. 

   1. Weisen Sie alle Beobachtungen im Mini-Stapel einem der Cluster mit dem nächstgelegenen Clusterzentrum zu.

   1. 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)
      ```

   1. 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
      ```

   1. 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)
      ```

1. Lesen Sie den nächsten Mini-Stapel und wiederholen Sie Schritt 1, um die Clusterzentren neu zu berechnen. 

1. Weitere Informationen zu *k*-Means-Mini-Batches finden Sie unter [Web-Scale k-means Clustering](https://citeseerx.ist.psu.edu/document?repid=rep1type=pdf&doi=b452a856a3e3d4d37b1de837996aa6813bedfdcf).

## Schritt 3: Reduzieren Sie die Cluster von *K* auf *k*
<a name="kmeans-step3"></a>

Wenn der Algorithmus *K*-Cluster erstellt hat– *(K = k\$1x)*, 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](https://pdfs.semanticscholar.org/0074/4cb7cc9ccbbcdadbd5ff2f2fee6358427271.pdf). 

# k-Means-Hyperparameter
<a name="k-means-api-config"></a>

In der [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)-Anforderung geben Sie den Trainingsalgorithmus an, den Sie verwenden möchten. Sie können auch algorithmusspezifische Hyperparameter als Maps angeben. string-to-string In der folgenden Tabelle sind die Hyperparameter für den K-Means-TrainingsalGORITHmus aufgeführt, der von Amazon SageMaker AI bereitgestellt wird. Weitere Informationen zur Funktionsweise von k-Means-Clustering finden Sie unter [So funktioniert das Clustering mit k-Means-Algorithmen](algo-kmeans-tech-notes.md).


| Name des Parameters | Description | 
| --- | --- | 
| feature\$1dim | Die Anzahl der Merkmale der Eingabedaten. **Erforderlich** Gültige Werte: Positive Ganzzahl  | 
| k |  Die Anzahl der erforderlichen Cluster. **Erforderlich** Gültige Werte: Positive Ganzzahl  | 
| epochs | Die Anzahl der mit den Trainingsdaten durchgeführten Durchläufe. **Optional** Gültige Werte: Positive Ganzzahl Standardwert: 1  | 
| eval\$1metrics | Eine JSON-Liste der Metriktypen, die zum Melden einer Punktzahl für das Modell verwendet werden. Zulässige Werte sind `msd` für den mittleren quadratischen Abweichung und `ssd` für die Summe der quadrierten Abstände. Wenn Testdaten angegeben werden, die Punktzahl für jede der angeforderten Metriken gemeldet. **Optional** Gültige Werte: entweder `[\"msd\"]`, `[\"ssd\"]` oder `[\"msd\",\"ssd\"]`. Standardwert: `[\"msd\"]`  | 
| extra\$1center\$1factor | Der Algorithmus erstellt K Zentren = `num_clusters` \$1 `extra_center_factor` während der Ausführung und reduziert die Anzahl der Zentren bei der Fertigstellung des Modells von K auf `k`. **Optional** Gültige Werte: entweder eine positive Ganzzahl oder `auto`. Standardwert: `auto`  | 
| half\$1life\$1time\$1size | Wird verwendet, um die Gewichtung zu bestimmen, die einer Beobachtung beim Berechnen eines Clustermittelwerts zugeteilt wird. Die Gewichtung zerfällt exponentiell, sobald mehrere Punkte beobachtet werden. Bei der ersten Beobachtung eines Punkts wird ihm eine Gewichtung von 1 bei der Berechnung des Clustermittelwerts zugeteilt. Die Zerfallkonstante für die exponentielle Funktion wird ausgewählt, sodass die Gewichtung nach Beobachtung von `half_life_time_size` Punkten 1/2 lautet. Wenn er auf 0 festgelegt ist, erfolgt kein Verfall. **Optional** Gültige Werte: Positive Ganzzahl Standardwert: 0  | 
| init\$1method | Die Methode, mit der der Algorithmus die anfänglichen Clusterzentren auswählt. Der k-Means-Standardansatz wählt sie nach dem Zufallsprinzip aus. Eine alternative k-Means\$1\$1-Methode wählt das erste Clusterzentrum nach dem Zufallsprinzip aus. Anschließend wird eine bessere Verteilung der Position des verbleibenden anfänglichen Cluster erzielt, indem die Auswahl von Zentren mit einer Wahrscheinlichkeitsverteilung gewichtet wird, die proportional zum Quadrat der Entfernung der verbleibenden Datenpunkte aus vorhandenen Zentren ist. **Optional** Gültige Werte: Entweder `random` oder `kmeans++`. Standardwert: `random`  | 
| local\$1lloyd\$1init\$1method | Die Initialisierungsmethode für das Expectation Maximization (EM)-Verfahren nach Lloyd, die zum Erstellen des endgültigen Modells mit `k`-Zentren verwendet wird. **Optional** Gültige Werte: Entweder `random` oder `kmeans++`. Standardwert: `kmeans++`  | 
| local\$1lloyd\$1max\$1iter | Die maximale Anzahl der Iterationen für das Expectation Maximization (EM)-Verfahren nach Lloyd, die zum Erstellen des endgültigen Modells mit `k`-Zentren verwendet wird. **Optional** Gültige Werte: Positive Ganzzahl Standardwert: 300  | 
| local\$1lloyd\$1num\$1trials | Gibt an, wie oft das Expectation Maximization (EM)-Verfahren nach Lloyd mit dem geringsten Verlust ausgeführt wird beim Erstellen des endgültigen Modells mit `k`-Zentren. **Optional** Gültige Werte: entweder eine positive Ganzzahl oder `auto`. Standardwert: `auto`  | 
| local\$1lloyd\$1tol | Die Toleranz für die Änderung in Verlust zum frühzeitigen Beenden des Expectation Maximization (EM)-Verfahrens nach Lloyd, das zum Erstellen des endgültigen Modells mit `k`-Zentren verwendet wird. **Optional** Gültige Werte: Gleitkommazahl. Bereich [0, 1]. Standardwert: 0.0001  | 
| mini\$1batch\$1size | Die Anzahl der Beobachtungen pro Mini-Stapel für den Dateniterator. **Optional** Gültige Werte: Positive Ganzzahl Standardwert: 5000  | 

# Optimieren eines k-Means-Modells
<a name="k-means-tuning"></a>

Die *automatische Modelloptimierung*, auch bekannt als Hyperparameteroptimierung, sucht die beste Version eines Modells, indem viele Aufträge ausgeführt werden, die einen Bereich von Hyperparametern in Ihrem Datensatz testen. Sie wählen die optimierbaren Hyperparameter, eine Reihe von Werten für jeden Parameter und eine objektive Metrik aus. Sie wählen die objektive Metrik aus den Metriken aus, die der Algorithmus berechnet. Die automatische Modelloptimierung durchsucht die ausgewählten Hyperparameter nach der Kombination von Werten, die das Modell ergeben, das die objektive Metrik optimiert.

Der Amazon SageMaker AI k-Means-Algorithmus ist ein unbeaufsichtigter Algorithmus, der Daten in Clustern gruppiert, deren Mitglieder sich so ähnlich wie möglich sind. Da er nicht überwacht ist, wird kein Validierungsdatensatz verwendet, anhand dessen Hyperparameter eine Optimierung vornehmen können. Es wird jedoch ein Testdatensatz verwendet und Metriken ausgegeben, die von der quadrierten Entfernung zwischen den Datenpunkten und den Schwerpunkten des endgültigen Clusters am Ende jedes Trainingslaufs abhängen. Um das Modell zu finden, das die stärksten Cluster im Testdatensatz meldet, können Sie einen Hyperparameter-Optimierungsauftrag verwenden. Die Cluster optimieren die Ähnlichkeit ihrer Mitglieder.

Mehr Informationen über die Modelloptimierung finden Sie unter [Automatische Modelloptimierung mit KI SageMaker](automatic-model-tuning.md).

## Vom k-Means-Algorithmus berechnete Metriken
<a name="km-metrics"></a>

Der k-Means-Algorithmus berechnet die folgenden Metriken während des Trainings. Wählen Sie beim Optimieren eines Modells eine dieser Metriken als objektive Metrik aus. 


| Metrikname | Description | Optimierungsrichtung | 
| --- | --- | --- | 
| test:msd | Mittlere quadratische Entfernungen zwischen den einzelnen Datensätzen im Testdatensatz und dem nächsten Mittelpunkt des Modells. | Minimieren | 
| test:ssd | Summe der quadratischen Entfernungen zwischen den einzelnen Datensätzen im Testdatensatz und dem nächsten Mittelpunkt des Modells. | Minimieren | 



## Optimierbare k-Means-Hyperparameter
<a name="km-tunable-hyperparameters"></a>

Optimieren Sie das Amazon SageMaker AI K-Means-Modell mit den folgenden Hyperparametern. Die Hyperparameter, die den größten Einfluss auf objektive k-Means-Metriken haben, sind: `mini_batch_size`, `extra_center_factor` und `init_method`. Optimieren des Hyperparameters `epochs` führt in der Regel zu kleineren Verbesserungen.


| Name des Parameters | Parametertyp | Empfohlene Bereiche | 
| --- | --- | --- | 
| epochs | IntegerParameterRanges | MinValue: 1, :10 MaxValue | 
| extra\$1center\$1factor | IntegerParameterRanges | MinValue: 4, :10 MaxValue | 
| init\$1method | CategoricalParameterRanges | ['kmeans\$1\$1', 'random'] | 
| mini\$1batch\$1size | IntegerParameterRanges | MinValue: 3000, :15000 MaxValue | 

# k-Means-Antwortformate
<a name="km-in-formats"></a>

Alle integrierten SageMaker KI-Algorithmen halten sich an das gemeinsame Eingabe-Inferenzformat, das unter [Allgemeine Datenformate](https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html) — Inferenz beschrieben ist. Dieses Thema enthält eine Liste der verfügbaren Ausgabeformate für den SageMaker KI-Algorithmus K-Means.

## JSON-Antwortformat
<a name="km-json"></a>

```
{
    "predictions": [
        {
            "closest_cluster": 1.0,
            "distance_to_cluster": 3.0,
        },
        {
            "closest_cluster": 2.0,
            "distance_to_cluster": 5.0,
        },

        ....
    ]
}
```

## JSONLINES-Antwortformat
<a name="km-jsonlines"></a>

```
{"closest_cluster": 1.0, "distance_to_cluster": 3.0}
{"closest_cluster": 2.0, "distance_to_cluster": 5.0}
```

## RECORDIO-Antwortformat
<a name="km-recordio"></a>

```
[
    Record = {
        features = {},
        label = {
            'closest_cluster': {
                keys: [],
                values: [1.0, 2.0]  # float32
            },
            'distance_to_cluster': {
                keys: [],
                values: [3.0, 5.0]  # float32
            },
        }
    }
]
```

## CSV-Antwortformat
<a name="km-csv"></a>

Der erste Wert in jeder Zeile entspricht `closest_cluster`.

Der zweite Wert in jeder Zeile entspricht `distance_to_cluster`.

```
1.0,3.0
2.0,5.0
```