

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.

# Algorithmus für die Hauptkomponentenanalyse (Principal Component Analysis, PCA)
<a name="pca"></a>

Die PCA ist ein unüberwachter Machine-Learning-Algorithmus, der versucht, die Dimensionalität (Anzahl der Merkmale) innerhalb eines Datensatzes zu reduzieren und zugleich so viele Informationen wie möglich beizubehalten. Dies geschieht, indem eine neue Menge an Merkmalen, sogenannte *Komponenten*, ermittelt wird, die Composites der ursprünglichen, nicht miteinander korrelierten Merkmale sind. Sie sind ebenfalls eingeschränkt, sodass die erste Komponente die größtmögliche Variabilität der Daten umfasst, die zweite Komponente die zweitgrößte Variabilität und so weiter.

In Amazon SageMaker AI arbeitet PCA je nach Szenario in zwei Modi: 
+ **regular**: bei Datensätzen mit geringer Datendichte und einer geringen Anzahl an Beobachtungen und Merkmalen.
+ **randomized**: bei Datensätzen mit einer großen Anzahl an Beobachtungen und Merkmalen. Dieser Modus verwendet einen Approximationsalgorithmus. 

PCA verwendet tabellarische Daten. 

Die Zeilen enthalten die Beobachtungen, die in einen Raum mit geringerer Dimensionalität eingebettet werden sollen. Die Spalte enthält die Merkmale, für die Sie eine reduzierte Approximation suchen. Der Algorithmus berechnet die Kovarianzmatrix (oder eine Approximation davon in verteilter Form) und wendet dann eine Singulärwertzerlegung auf diese Zusammenfassung an, um die Hauptkomponenten zu ermitteln. 

**Topics**
+ [E/A-Schnittstelle für den PCA-Algorithmus](#pca-inputoutput)
+ [EC2-Instance-Empfehlung für den PCA-Algorithmus](#pca-instances)
+ [PCA-Beispiel-Notebooks](#PCA-sample-notebooks)
+ [Funktionsweise der PCA](how-pca-works.md)
+ [PCA-Hyperparameter](PCA-reference.md)
+ [PCA-Antwortformate](PCA-in-formats.md)

## E/A-Schnittstelle für den PCA-Algorithmus
<a name="pca-inputoutput"></a>

Für das Training der PCA müssen die Daten über den Trainingskanal bereitgestellt werden. Optional wird ein Datensatz unterstützt, der an den Testdatensatz weitergeleitet und vom finalen Algorithmus bewertet wird. 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 Inferenzen unterstützt PCA `text/csv`, `application/json` und `application/x-recordio-protobuf`. Ergebnisse werden entweder im Format `application/json` oder `application/x-recordio-protobuf` mit dem Vektor "Projektionen" zurückgegeben.

Weitere Informationen über die Eingabe- und Ausgabedateiformate finden Sie unter [PCA-Antwortformate](PCA-in-formats.md) für Inferenz und unter [PCA-Beispiel-Notebooks](#PCA-sample-notebooks).

## EC2-Instance-Empfehlung für den PCA-Algorithmus
<a name="pca-instances"></a>

PCA unterstützt CPU- und GPU-Instances für Training und Inferenz. Welcher Instance-Typ am leistungsstärksten ist, hängt hauptsächlich von den Besonderheiten der Eingabedaten ab. Für GPU-Instances unterstützt PCA P2, P3, G4dn und G5.

## PCA-Beispiel-Notebooks
<a name="PCA-sample-notebooks"></a>

Ein Beispielnotizbuch, das zeigt, wie der Algorithmus SageMaker AI Principal Component Analysis verwendet wird, um die Bilder handgeschriebener Ziffern von Null bis Neun im MNIST-Datensatz zu analysieren, finden Sie unter [Eine Einführung in PCA](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/pca_mnist/pca_mnist.html) mit MNIST. Anweisungen zum Erstellen und Zugreifen auf Jupyter-Notebook-Instanzen, 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 Die Beispiel-Notebooks zur Themenmodellierung unter Verwendung der NTM-Algorithmen finden Sie im Abschnitt **Einführung in die Amazon-Algorithmen**. Zum Öffnen eines Notebooks klicken Sie auf die Registerkarte **Use (Verwenden)** und wählen Sie **Create copy (Kopie erstellen)** aus.

# Funktionsweise der PCA
<a name="how-pca-works"></a>

Die PCA ist ein unüberwachter Machine-Learning-Algorithmus, der die Dimensionalität (Anzahl der Merkmale) innerhalb eines Datensatzes reduziert und zugleich so viele Informationen wie möglich beibehält. 

Die PCA reduziert die Dimensionalität, indem sie eine neue Menge an Merkmalen, sogenannter *Komponenten*, ermittelt, die Composites der ursprünglichen Merkmale sind, die jedoch nicht miteinander korrelieren. Die erste Komponente umfasst die größtmögliche Variabilität der Daten, die zweite Komponente die zweitgrößte Variabilität und so weiter.

Es handelt sich um eine unüberwachten Algorithmus zur Reduktion der Dimensionalität. Bei unüberwachtem Lernen werden Kennzeichnungen, die den Objekten im Trainingsdatensatz zugeordnet werden, nicht verwendet.

Angenommen es liegt eine Matrix mit den Zeilen ![\[x_1,…,x_n\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-39b.png) und der Dimension `1 * d` vor. Die Daten werden zeilenweise in Mini-Stapel partitioniert an das Trainingsknoten (Worker) verteilt. Jeder Worker berechnet eine Zusammenfassung seiner Daten. Die Zusammenfassungen der verschiedenen Worker werden am Ende der Berechnung in einer einzigen Lösung zusammengeführt. 

**Modi**

Der Amazon SageMaker AI PCA-Algorithmus verwendet je nach Situation einen von zwei Modi, um diese Zusammenfassungen zu berechnen:
+ **regular**: bei Datensätzen mit geringer Datendichte und einer geringen Anzahl an Beobachtungen und Merkmalen.
+ **randomized**: bei Datensätzen mit einer großen Anzahl an Beobachtungen und Merkmalen. Dieser Modus verwendet einen Approximationsalgorithmus. 

Der Algorithmus wendet als letzten Schritt die Singulärwertzerlegung für die vereinheitlichte Lösung an, von der die Hauptkomponenten abgeleitet werden.

## Modus 1: regular
<a name="mode-1"></a>

Die Worker berechnen sowohl ![\[Equation in text-form: \sum x_i^T x_i\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-1b.png) als auch ![\[Equation in text-form: \sum x_i\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-2b.png).

**Anmerkung**  
Da ![\[Equation in text-form: x_i\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-3b.png) `1 * d` Zeilenvektoren sind, ist ![\[Equation in text-form: x_i^T x_i\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-4b.png) eine Matrix (keine Skalarfunktion). Das Verwenden von Vektoren innerhalb des Codes ermöglicht effizientes Caching.

Die Kovarianzmatrix wird als ![\[Equation in text-form: \sum x_i^T x_i - (1/n) (\sum x_i)^T \sum x_i\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-32b.png) berechnet und die oberen `num_components` singulären Vektoren bilden das Modell.

**Anmerkung**  
Wenn `subtract_mean` gleich `False` ist, wird auf die Berechnung und Subtraktion von ![\[Equation in text-form: \sum x_i\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-2b.png) verzichtet.

Verwenden Sie diesen Algorithmus, wenn die Dimension `d` der Vektoren klein genug ist, sodass ![\[Equation in text-form: d^2\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-7b.png) in den Arbeitsspeicher integriert werden kann.

## Modus 2: randomized
<a name="mode-2"></a>

Wenn die Anzahl der Merkmale im eingegebenen Datensatz groß ist, wird eine Methode zur Approximierung der Kovarianzmetrik angewandt. Für jeden Mini-Stapel ![\[Equation in text-form: X_t\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-23b.png) der Dimension `b * d` initialisieren wir nach dem Zufallsprinzip eine `(num_components + extra_components) * b` Matrix, die mit jedem Mini-Stapel multipliziert wird, um eine `(num_components + extra_components) * d` Matrix zu erstellen. Die Summe dieser Matrizes wird durch die Worker berechnet. Die Server wendet die Singulärwertzerlegung auf die letzte `(num_components + extra_components) * d`-Matrix an. Die singulären Vektoren `num_components` oben rechts sind die Approximation der obersten singulären Vektoren der Eingabematrix.

Nehmen wir an ![\[Equation in text-form: \ell\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-38b.png) ` = num_components + extra_components`. Mit einem gegebenen Mini-Stapel ![\[Equation in text-form: X_t\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-23b.png) der Dimension `b * d` zeichnet der Worker zeichnet eine zufällige Matrix ![\[Equation in text-form: H_t\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-24b.png) der Dimension ![\[Equation in text-form: \ell * b\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-38.png). Je nachdem, ob die Umgebung eine GPU oder CPU verwendet und je nach Dimensionsgröße, ist die Matrix entweder eine randomisierte Matrix mit Vorzeichen, bei der jeder Eintrag `+-1` lautet, oder eine *FJLT* (schnelle Johnson-Lindenstrauss-Transformation). Weitere Informationen finden Sie unter [FJLT Transforms](https://www.cs.princeton.edu/~chazelle/pubs/FJLT-sicomp09.pdf) und im nachfolgenden Artikel. Der Worker berechnet anschließend ![\[Equation in text-form: H_t X_t\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-26b.png) und behält ![\[Equation in text-form: B = \sum H_t X_t\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-27b.png) bei. Der Worker behält außerdem ![\[Equation in text-form: h^T\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-28b.png) bei, die Summe der Spalten ![\[Equation in text-form: H_1,..,H_T\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-29b.png) (`T` ist die Gesamtanzahl der Mini-Stapel) und `s`, die Summe aller Eingabezeilen. Nach der Verarbeitung der gesamten Datenbruchstücke schickt der Worker `B`, `h`, `s` und `n` (die Anzahl der Eingabezeilen) an den Server.

Bezeichnen Sie die verschiedenen Eingaben an den Server als ![\[Equation in text-form: B^1, h^1, s^1, n^1,…\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-30b.png). Der Server berechnet `B`, `h`, `s`, `n` die Summen der jeweiligen Eingaben. Anschließend wird ![\[Equation in text-form: C = B – (1/n) h^T s\]](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/PCA-31b.png) berechnet und seine Singulärwertzerlegung gesucht. Die oberen rechten singulären Vektoren und einzelne Werte von `C` werden als Approximationslösung des Problems verwendet.

# PCA-Hyperparameter
<a name="PCA-reference"></a>

In der Anforderung `CreateTrainingJob` geben Sie den Trainingsalgorithmus an. Sie können auch algorithmusspezifische AS-Maps HyperParameters angeben. string-to-string In der folgenden Tabelle sind die Hyperparameter für den von Amazon SageMaker AI bereitgestellten PCA-Trainingsalgorhythmus aufgeführt. Weitere Information zur Funktionsweise von PCA finden Sie unter [Funktionsweise der PCA](how-pca-works.md). 


| Name des Parameters | Description | 
| --- | --- | 
| feature\$1dim |  Eingabedimension. **Erforderlich** Gültige Werte: positive Ganzzahl  | 
| mini\$1batch\$1size |  Anzahl der Zeilen in einem Mini-Stapel. **Erforderlich** Gültige Werte: positive Ganzzahl  | 
| num\$1components |  Die Anzahl der zu berechnenden Hauptkomponenten. **Erforderlich** Gültige Werte: positive Ganzzahl  | 
| algorithm\$1mode |  Modus zum Berechnen der Hauptkomponenten.  **Optional** Gültige Werte: *regular* oder *randomized* Standardwert: *regular*  | 
| extra\$1components |  Bei einem größeren Wert wird die Lösung genauer, aber die Laufzeit und Speicherbelegung nehmen linear zu. Der Standardwert -1 bedeutet ein Maximum von 10 und `num_components`. Nur gültig für den *randomisierten* Modus. **Optional** Gültige Werte: positive Ganzzahl oder -1 Standardwert: -1  | 
| subtract\$1mean |  Gibt an, ob die Daten während des Trainings und bei der Inferenz unverzerrt sein sollen.  **Optional** Gültige Werte: entweder *true* oder *false*. Standardwert: *true*  | 

# PCA-Antwortformate
<a name="PCA-in-formats"></a>

Alle integrierten Algorithmen von Amazon SageMaker AI halten sich an das gemeinsame Eingabe-Inferenzformat, das unter [Common Data Formats — Inference](https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html) beschrieben ist. Dieses Thema enthält eine Liste der verfügbaren Ausgabeformate für den SageMaker AI PCA-Algorithmus.

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

Akzeptieren–application/json

```
{
    "projections": [
        {
            "projection": [1.0, 2.0, 3.0, 4.0, 5.0]
        },
        {
            "projection": [6.0, 7.0, 8.0, 9.0, 0.0]
        },
        ....
    ]
}
```

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

Akzeptieren–application/jsonlines

```
{ "projection": [1.0, 2.0, 3.0, 4.0, 5.0] }
{ "projection": [6.0, 7.0, 8.0, 9.0, 0.0] }
```

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

Akzeptieren — Anwendung/ x-recordio-protobuf

```
[
    Record = {
        features = {},
        label = {
            'projection': {
                keys: [],
                values: [1.0, 2.0, 3.0, 4.0, 5.0]
            }
        }
    },
    Record = {
        features = {},
        label = {
            'projection': {
                keys: [],
                values: [1.0, 2.0, 3.0, 4.0, 5.0]
            }
        }
    }  
]
```