

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Algoritmo PCA (Principal Component Analysis)
<a name="pca"></a>

PCA è un algoritmo di Machine Learning non supervisionato che tenta di ridurre la dimensionalità (numero di caratteristiche) in un set di dati pur mantenendo la maggior quantità possibile di informazioni. Ciò è possibile individuando un nuovo insieme di caratteristiche denominate *componenti*, che sono compositi delle caratteristiche originali non correlate le une alle altre. Inoltre, le componenti sono vincolate in modo che la prima di esse rappresenti la maggiore variabilità possibile nei dati, la seconda componente la seconda maggiore variabilità e così via.

In Amazon SageMaker AI, la PCA opera in due modalità, a seconda dello scenario: 
+ **regular** (normale): per i set di dati con dati a densità bassa e un numero modesto di osservazioni e caratteristiche.
+ **randomized** (randomizzata): per i set di dati con un elevato numero di osservazioni e caratteristiche. Questo modo adotta un algoritmo di approssimazione. 

L'algoritmo PCA utilizza i dati tabulari. 

Le righe rappresentano le osservazioni da integrare in uno spazio dimensionale inferiore. Le colonne rappresentano le caratteristiche per le quali individuare un'approssimazione ridotta. L'algoritmo calcola la matrice di covarianza (o una sua approssimazione in modo distribuito), quindi esegue la decomposizione dei singoli valori sul riepilogo per produrre le componenti principali. 

**Topics**
+ [Interfaccia di input/output per l'algoritmo PCA](#pca-inputoutput)
+ [Raccomandazione istanza EC2 per l'algoritmo PCA](#pca-instances)
+ [Notebook di esempio di PCA](#PCA-sample-notebooks)
+ [Come funziona l'algoritmo PCA](how-pca-works.md)
+ [Iperparametri PCA](PCA-reference.md)
+ [Formati della risposta PCA](PCA-in-formats.md)

## Interfaccia di input/output per l'algoritmo PCA
<a name="pca-inputoutput"></a>

Per l’addestramento, PCA si aspetta i dati forniti nel canale di addestramento e, facoltativamente, supporta un set di dati passato al set di dati di test, che viene valutato dall'algoritmo finale. I formati `recordIO-wrapped-protobuf` e `CSV` sono supportati per l’addestramento. Puoi utilizzare la modalità file o la modalità pipe per addestrare i modelli sui dati formattati come `recordIO-wrapped-protobuf` o `CSV`.

Per l'interferenza, l'algoritmo PCA supporta `text/csv`, `application/json` e `application/x-recordio-protobuf`. I risultati vengono restituiti nei formati `application/json` o `application/x-recordio-protobuf` con un vettore di "previsioni".

Per ulteriori informazioni sui formati di file di input e output, consulta [Formati della risposta PCA](PCA-in-formats.md) per l'inferenza e i [Notebook di esempio di PCA](#PCA-sample-notebooks).

## Raccomandazione istanza EC2 per l'algoritmo PCA
<a name="pca-instances"></a>

PCA supporta istanze CPU e GPU per l'addestramento e l'inferenza. Il tipo di istanza con maggiori prestazioni dipende fortemente dalle specifiche dei dati di input. Per le istanze GPU, PCA supporta P2, P3, G4dn e G5.

## Notebook di esempio di PCA
<a name="PCA-sample-notebooks"></a>

Per un taccuino di esempio che mostra come utilizzare l'algoritmo SageMaker AI Principal Component Analysis per analizzare le immagini di cifre scritte a mano da zero a nove nel set di dati MNIST, vedi [Introduzione](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/pca_mnist/pca_mnist.html) alla PCA con MNIST. Per istruzioni su come creare e accedere alle istanze di notebook Jupyter da utilizzare per eseguire l'esempio in AI, consulta. SageMaker [Istanze SageMaker per notebook Amazon](nbi.md) Dopo aver creato un'istanza di notebook e averla aperta, seleziona la scheda **Esempi di SageMaker AI** per visualizzare un elenco di tutti gli esempi di IA. SageMaker I notebook di esempio di modellazione dell'argomento che utilizzano gli algoritmi NTM sono disponibili nella sezione con l'**introduzione agli algoritmi di Amazon**. Per aprire un notebook, fai clic sulla relativa scheda **Use (Utilizza)** e seleziona **Create copy (Crea copia)**.

# Come funziona l'algoritmo PCA
<a name="how-pca-works"></a>

L'analisi delle componenti principali (PCA, Principal Component Analysis) è un algoritmo di apprendimento che riduce la dimensionalità (numero di caratteristiche) di un set di dati mantenendo la maggior quantità possibile di informazioni. 

L'algoritmo PCA riduce le dimensioni individuando un nuovo insieme di caratteristiche denominate *componenti*, che sono compositi delle caratteristiche originali non correlate le une alle altre. La prima componente rappresenta la maggiore variabilità possibile nei dati, la seconda componente la seconda maggiore variabilità e così via.

Si tratta di un algoritmo di riduzione dimensionale non supervisionata. Nell'apprendimento non supervisionato, le etichette che possono essere associate con gli oggetti nel set di dati di addestramento non verranno utilizzate.

Considerato l'input di una matrice con righe ![\[x_1,…,x_n\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-39b.png) ciascuna con dimensione `1 * d`, i dati vengono partizionati in mini-batch di righe e distribuiti tra i nodi di addestramento (worker). Quindi, ogni worker calcola un riepilogo dei propri dati. I riepiloghi dei diversi worker vengono quindi uniti in un'unica soluzione al termine del calcolo. 

**Modalità**

L'algoritmo PCA di Amazon SageMaker AI utilizza una delle due modalità per calcolare questi riepiloghi, a seconda della situazione:
+ **regular** (normale): per i set di dati con dati a densità bassa e un numero modesto di osservazioni e caratteristiche.
+ **randomized** (randomizzata): per i set di dati con un elevato numero di osservazioni e caratteristiche. Questo modo adotta un algoritmo di approssimazione. 

Come ultima fase, l'algoritmo esegue la decomposizione dei singoli valori sulla soluzione unificata, dalla quale derivano le componenti principali.

## Modalità 1: regular (normale)
<a name="mode-1"></a>

I worker calcolano insieme ![\[Equation in text-form: \sum x_i^T x_i\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-1b.png) e ![\[Equation in text-form: \sum x_i\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-2b.png).

**Nota**  
Poiché ![\[Equation in text-form: x_i\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-3b.png) sono vettori della riga `1 * d`, ![\[Equation in text-form: x_i^T x_i\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-4b.png) è una matrice (non un valore scalare). L'utilizzo dei vettori delle righe nel codice permette di ottenere il caching efficiente.

La matrice di covarianza viene calcolata come ![\[Equation in text-form: \sum x_i^T x_i - (1/n) (\sum x_i)^T \sum x_i\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-32b.png) e i relativi vettori delle singole `num_components` superiori formano il modello.

**Nota**  
Se `subtract_mean` è `False`, si evita di calcolare e sottrarre ![\[Equation in text-form: \sum x_i\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-2b.png).

Utilizza questo algoritmo quando la dimensione `d` dei vettori è sufficientemente piccola affinché ![\[Equation in text-form: d^2\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-7b.png) rientri in memoria.

## Modalità 2: randomized (randomizzata)
<a name="mode-2"></a>

Quando il numero di caratteristiche nel set di dati di input è elevato, si utilizza un metodo di approssimazione del parametro di covarianza. Per ogni mini-batch ![\[Equation in text-form: X_t\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-23b.png) di dimensione `b * d`, si inizializza in modo casuale una matrice `(num_components + extra_components) * b` da moltiplicare per ogni mini-batch per creare una matrice `(num_components + extra_components) * d`. La somma di queste matrici viene calcolata dai worker e i server eseguono la SVD (Singular Value Decomposition) sulla matrice `(num_components + extra_components) * d` finale. I vettori delle singole `num_components` in alto a destra sono l'approssimazione dei vettori singoli superiori della matrice di input.

Consenti ![\[Equation in text-form: \ell\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-38b.png) ` = num_components + extra_components`. Considerato un mini-batch ![\[Equation in text-form: X_t\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-23b.png) di dimensione `b * d`, il worker disegna una matrice casuale ![\[Equation in text-form: H_t\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-24b.png) di dimensione ![\[Equation in text-form: \ell * b\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-38.png) . A seconda se l'ambiente utilizza una GPU o un CPU e in base alla grandezza della dimensione, la matrice è una matrice a segni casuali dove ogni voce è `+-1` o una *FJLT* (Fast Johnson-Lindenstrauss Transform; per informazioni consulta [FJLT Transforms](https://www.cs.princeton.edu/~chazelle/pubs/FJLT-sicomp09.pdf) e i documenti di follow-up). Quindi, il worker calcola ![\[Equation in text-form: H_t X_t\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-26b.png) e mantiene ![\[Equation in text-form: B = \sum H_t X_t\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-27b.png) . Il worker mantiene anche ![\[Equation in text-form: h^T\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-28b.png), la somma delle colonne di ![\[Equation in text-form: H_1,..,H_T\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-29b.png) (dove `T` è il numero totale di mini-batch) e `s`, la somma di tutte le righe di input. Dopo l'elaborazione dell'intero shard di dati, il worker invia al server `B`, `h`, `s` e `n` (il numero di righe di input).

Indica i diversi input al server come ![\[Equation in text-form: B^1, h^1, s^1, n^1,…\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-30b.png) Il server calcola `B`, `h`, `s`, `n` le somme dei rispettivi input. Quindi, calcola ![\[Equation in text-form: C = B – (1/n) h^T s\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/PCA-31b.png) e rileva la relativa decomposizione dei singoli valori. I vettori singoli in alto a destra e i valori singoli di `C` vengono utilizzati come soluzione approssimativa del problema.

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

Nella richiesta `CreateTrainingJob` puoi specificare l'algoritmo di addestramento. Puoi anche specificare mappe specifiche dell'algoritmo HyperParameters . string-to-string La tabella seguente elenca gli iperparametri per l'algoritmo di addestramento PCA fornito da Amazon SageMaker AI. Per ulteriori informazioni sul funzionamento di PCA, consulta [Come funziona l'algoritmo PCA](how-pca-works.md). 


| Nome parametro | Description | 
| --- | --- | 
| feature\$1dim |  Dimensione di input. **Campo obbligatorio** Valori validi: numeri interi positivi  | 
| mini\$1batch\$1size |  Numero di righe in un mini-batch. **Campo obbligatorio** Valori validi: numeri interi positivi  | 
| num\$1components |  Numero delle componenti principali da calcolare. **Campo obbligatorio** Valori validi: numeri interi positivi  | 
| algorithm\$1mode |  Modalità di calcolo delle componenti principali.  **Opzionale** Valori validi: *regular* o *randomized* Valore predefinito: *regular*  | 
| extra\$1components |  Con l'aumentare del valore, la soluzione diventa più precisa, ma il runtime e il consumo di memoria aumentano in modo lineare. L'impostazione predefinita, -1, indica il massimo di 10 e `num_components`. Valido solo per la modalità *randomized* (randomizzata). **Opzionale** Valori validi: numeri interi non negativi o -1 Valore predefinito: -1  | 
| subtract\$1mean |  Indica se i dati devono essere non bias sia durante l’addestramento che in corrispondenza dell'interferenza.  **Opzionale** Valori validi: uno tra *true* o *false* Valore predefinito: *true*  | 

# Formati della risposta PCA
<a name="PCA-in-formats"></a>

Tutti gli algoritmi integrati di Amazon SageMaker AI aderiscono al formato di inferenza di input comune descritto in Common [Data Formats](https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html) - Inference. Questo argomento contiene un elenco dei formati di output disponibili per l'algoritmo AI PCA. SageMaker 

## Formato della risposta JSON
<a name="PCA-json"></a>

Accept—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]
        },
        ....
    ]
}
```

## Formato della risposta JSONLINES
<a name="PCA-jsonlines"></a>

Accept—application/jsonlines

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

## Formato della risposta RECORDIO
<a name="PCA-recordio"></a>

Accetta—applicazione/ 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]
            }
        }
    }  
]
```