

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

# XGBoost Versione 0.72
<a name="xgboost-72"></a>

**Importante**  
Lo XGBoost 0,72 è obsoleto da Amazon AI. SageMaker Puoi comunque utilizzare questa vecchia versione di XGBoost (come algoritmo integrato) estraendo l'URI dell'immagine, come mostrato nel seguente esempio di codice. Infatti XGBoost, l'URI dell'immagine che termina con `:1` si riferisce alla vecchia versione.  

```
import boto3
from sagemaker.amazon.amazon_estimator import get_image_uri

xgb_image_uri = get_image_uri(boto3.Session().region_name, "xgboost", repo_version="1")
```

```
import boto3
from sagemaker import image_uris

xgb_image_uri = image_uris.retrieve("xgboost", boto3.Session().region_name, "1")
```
Se desideri utilizzare versioni più recenti, devi specificare esplicitamente i tag URI dell'immagine (vedi). [Versioni supportate](xgboost.md#xgboost-supported-versions)

Questa versione precedente dell' XGBoost algoritmo Amazon SageMaker AI si basa sulla versione 0.72. [XGBoost](https://github.com/dmlc/xgboost)(eXtreme Gradient Boosting) è un'implementazione open source popolare ed efficiente dell'algoritmo Gradient Boosted Trees. Gradient boosting è un algoritmo di apprendimento supervisionato che tenta di prevedere con precisione una variabile target combinando le stime di un insieme di modelli più semplici e deboli. XGBoost ha ottenuto risultati straordinari nelle competizioni di machine learning perché gestisce in modo affidabile una varietà di tipi di dati, relazioni e distribuzioni e grazie al gran numero di iperparametri che possono essere ottimizzati e ottimizzati per adattarsi meglio. Questa flessibilità rappresenta XGBoost una scelta valida per i problemi di regressione, classificazione (binaria e multiclasse) e classificazione.

I clienti devono valutare l'utilizzo della nuova versione di [XGBoost algoritmo con Amazon SageMaker AI](xgboost.md). Possono usarlo come algoritmo integrato nell' SageMaker intelligenza artificiale o come framework per eseguire script nei loro ambienti locali, come farebbero normalmente, ad esempio, con un framework di deep learning Tensorflow. La nuova implementazione ha un impatto minore sulla memoria, una migliore registrazione, una convalida degli iperparametri migliorata e un set esteso di parametri. L'implementazione precedente di XGBoost rimane disponibile per i clienti in caso di necessità di posticipare la migrazione alla nuova versione. Tuttavia, questa implementazione precedente rimarrà legata alla versione 0.72 di. XGBoost

## Interfaccia di input/output per la versione 0.72 XGBoost
<a name="xgboost-72-InputOutput"></a>

Il gradient boosting agisce sui dati tabulari, con le righe che rappresentano le osservazioni, una colonna che rappresenta la variabile o l'etichetta di destinazione e le colonne rimanenti che rappresentano le caratteristiche. 

L'implementazione SageMaker AI XGBoost supporta i formati CSV e libsvm per l'addestramento e l'inferenza:
+ *Per Training ContentType, gli input validi sono *text/libsvm (impostazione predefinita) o text/csv*.*
+ *Per Inference ContentType, gli input validi sono *text/libsvm o (impostazione predefinita) text/csv*.*

**Nota**  
Per l’addestramento CSV, l'algoritmo presume che la variabile di destinazione si trovi nella prima colonna e che CSV non disponga di un record di intestazione. Per l'inferenza CSV, l'algoritmo presuppone che l'input CSV non disponga della colonna di etichette.   
Per l’addestramento libsvm, l'algoritmo presuppone che l'etichetta si trovi nella prima colonna. Le successive colonne contengono le coppie chiave-valore in base zero per le caratteristiche. Quindi, ogni riga ha il formato: <label> <index0>:<value0> <index1>:<value1> ... Le richieste di inferenza per libsvm possono o meno avere etichette nel formato libsvm.

Ciò differisce dagli altri algoritmi di SageMaker intelligenza artificiale, che utilizzano il formato di input di addestramento protobuf per mantenere una maggiore coerenza con i formati di dati standard. XGBoost 

Per la modalità di input dell’addestramento CSV, la memoria totale disponibile per l'algoritmo (calcolo dell'istanza \$1 memoria disponibile nel `InstanceType`) deve essere in grado di gestire il set di dati di addestramento. Per la modalità di input dell’addestramento libsvm non è richiesto, sebbene lo consigliamo.

SageMaker L'intelligenza artificiale XGBoost utilizza il modulo Python pickle per serialize/deserialize il modello, che può essere utilizzato per il saving/loading modello.

**Per utilizzare un modello addestrato con l' SageMaker intelligenza artificiale XGBoost in open source XGBoost**
+ Utilizza il seguente codice Python:

  ```
  import pickle as pkl 
  import tarfile
  import xgboost
  
  t = tarfile.open('model.tar.gz', 'r:gz')
  t.extractall()
  
  model = pkl.load(open(model_file_path, 'rb'))
  
  # prediction with test data
  pred = model.predict(dtest)
  ```

**Per differenziare l'importanza di punti dati contrassegnati utilizza Instance Weight Support**
+ SageMaker L'intelligenza artificiale XGBoost consente ai clienti di differenziare l'importanza dei punti dati etichettati assegnando a ciascuna istanza un valore di peso. Per l'input *text/libsvm*, i clienti possono assegnare valori di peso alle istanze dati collegandoli dopo le etichette. Ad esempio, `label:weight idx_0:val_0 idx_1:val_1...`. Per l'input *text/csv*, i clienti devono attivare il contrassegno `csv_weights` nei parametri e collegare i valori di peso nella colonna dopo le etichette. Ad esempio: `label,weight,val_0,val_1,...`).

## Raccomandazione sull'istanza EC2 per la versione 0.72 XGBoost
<a name="xgboost-72-Instance"></a>

SageMaker L'intelligenza artificiale XGBoost attualmente si allena solo utilizzando. CPUs Poiché si tratta di un algoritmo basato su memoria e non su calcolo, un'istanza di calcolo a scopo generico (ad esempio, M4) rappresenta una scelta migliore rispetto a un'istanza ottimizzata per il calcolo (ad esempio, C4). Inoltre, consigliamo di disporre di memoria sufficiente nelle istanze selezionate per conservare i dati di addestramento. Sebbene supporti l'uso dello spazio su disco per gestire dati che non entrano nella memoria principale (la out-of-core funzionalità disponibile con la modalità di input libsvm), la scrittura di file di cache su disco rallenta il tempo di elaborazione dell'algoritmo.

## XGBoost Notebook di esempio della release 0.7.2
<a name="xgboost-72-sample-notebooks"></a>

Per un taccuino di esempio che mostra come utilizzare l'ultima versione dell' SageMaker intelligenza artificiale XGBoost come algoritmo integrato per addestrare e ospitare un modello di regressione, consulta [Regressione con algoritmo Amazon SageMaker ](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/xgboost_abalone/xgboost_abalone.html) AI. XGBoost Per utilizzare la versione 0.72 di XGBoost, devi modificare la versione del codice di esempio in 0.72. 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 L'argomento relativo alla modellazione di notebook che utilizzano XGBoost gli algoritmi si trova nella sezione Introduzione **agli** algoritmi di Amazon. Per aprire un notebook, fai clic sulla relativa scheda **Use (Utilizza)** e seleziona **Create copy (Crea copia)**.

## XGBoost Iperparametri della versione 0.72
<a name="xgboost-72-hyperparameters"></a>

La tabella seguente contiene gli iperparametri per l'algoritmo. XGBoost Si tratta di parametri che vengono impostati dagli utenti per agevolare la stima dei parametri del modello dai dati. Gli iperparametri richiesti che devono essere impostati sono elencati prima, in ordine alfabetico. Gli iperparametri facoltativi che possono essere impostati sono elencato dopo, sempre in ordine alfabetico. L' XGBoost algoritmo SageMaker AI è un'implementazione del pacchetto open source XGBoost . Attualmente SageMaker AI supporta la versione 0.72. [Per maggiori dettagli sulla configurazione degli iperparametri per questa versione di XGBoost, vedi XGBoost Parametri.](https://xgboost.readthedocs.io/en/release_0.72/parameter.html)


| Nome parametro | Description | 
| --- | --- | 
| num\$1class | Numero di classi. **Obbligatorio** se `objective` è impostato su *multi:softmax* o *multi:softprob*. Valori validi: numero intero  | 
| num\$1round | Numero di arrotondamenti per eseguire l’addestramento. **Campo obbligatorio** Valori validi: numero intero  | 
| alpha | Termine di regolarizzazione L1 sui pesi. Aumentando questo valore, i modelli diventano più restrittivi. **Opzionale** Valori validi: float. Valore predefinito: 0  | 
| base\$1score | Punteggio previsto iniziale di tutte le istanze, bias globale. **Opzionale** Valori validi: float. Valore predefinito: 0.5  | 
| booster | Booster da utilizzare. I valori `gbtree` e `dart` utilizzano un modello basato su alberi, mentre `gblinear` utilizza una funzione lineare. **Opzionale** Valori validi: stringa. Uno tra `gbtree`, `gblinear` o `dart`. Valore predefinito: `gbtree`  | 
| colsample\$1bylevel | Rapporto di sottocampionamento delle colonne per ogni suddivisione, in ogni livello. **Opzionale** Valori validi: Float. Intervallo: [0,1]. Valore predefinito: 1  | 
| colsample\$1bytree | Rapporto di sottocampionamento delle colonne durante la creazione di ogni albero. **Opzionale** Valori validi: Float. Intervallo: [0,1]. Valore predefinito: 1 | 
| csv\$1weights | Quando questo flag è abilitato, XGBoost differenzia l'importanza delle istanze per l'input in formato csv prendendo come peso delle istanze la seconda colonna (la colonna dopo le etichette) nei dati di addestramento. **Opzionale** Valori validi: 0 o 1 Valore predefinito: 0  | 
| early\$1stopping\$1rounds | Il modello continua l’addestramento finché il punteggio della convalida non smette di migliorare. Gli errori di convalida devono diminuire almeno ogni `early_stopping_rounds` per continuare con l’addestramento. SageMaker L'hosting basato sull'intelligenza artificiale utilizza il miglior modello di inferenza. **Opzionale** Valori validi: numero intero Valore predefinito: -  | 
| eta | Riduzione delle dimensioni della fase utilizzata negli aggiornamenti per evitare l'overfitting. Dopo ogni fase di boosting, puoi ottenere direttamente i pesi delle nuove caratteristiche. Il parametro `eta` riduce effettivamente i pesi delle caratteristiche per rendere il processo di boosting più restrittivo. **Opzionale** Valori validi: Float. Intervallo: [0,1]. Valore predefinito: 0.3  | 
| eval\$1metric | Parametri di valutazione per i dati di convalida. Un parametro predefinito viene assegnato in base all'obiettivo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/xgboost-72.html) [Per un elenco di input validi, XGBoost consulta Parametri.](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst#learning-task-parameters) **Opzionale** Valori validi: stringa Valore predefinito: in base all'obiettivo.  | 
| gamma | Riduzione della perdita minima richiesta per creare un'ulteriore partizione su un nodo foglia dell'albero. Maggiore è il valore e più restrittivo sarà l'algoritmo. **Opzionale** Valori validi: Float. Intervallo: [0,∞). Valore predefinito: 0  | 
| grow\$1policy | Controlla il modo in cui i nuovi nodi vengono aggiunti all'albero. Attualmente supportato solo se `tree_method` è impostato su `hist`. **Opzionale** Valori validi: stringa. `depthwise` o `lossguide`. Valore predefinito: `depthwise`  | 
| lambda | Termine di regolarizzazione L2 sui pesi. Aumentando questo valore, i modelli diventano più restrittivi. **Opzionale** Valori validi: float. Valore predefinito: 1  | 
| lambda\$1bias | Termine di regolarizzazione L2 su bias. **Opzionale** Valori validi: Float. Intervallo: [0.0, 1.0]. Valore predefinito: 0  | 
| max\$1bin | Numero massimo di container discreti per le funzioni continue del bucket. Utilizzato solo se `tree_method` è impostato su `hist`.  **Opzionale** Valori validi: numero intero Valore predefinito: 256  | 
| max\$1delta\$1step | Fase delta massima consentita per ogni stima del peso dell'albero. L'utilizzo di un numero intero positivo rende l'aggiornamento maggiormente restrittivo. La scelta migliore è di utilizzarlo nella regressione logistica. Impostare su 1-10 per aiutare a controllare l'aggiornamento.  **Opzionale** Valori validi: numero intero. Intervallo: [0,∞). Valore predefinito: 0  | 
| max\$1depth | Profondità massima di un albero. Aumentando questo valore, il modello diviene più complesso e aumentano le probabilità di overfitting. 0 indica che non ci sono limiti. Un limite è richiesto se `grow_policy`=`depth-wise`. **Opzionale** Valori validi: numero intero. Intervallo: [0,∞) Valore predefinito: 6  | 
| max\$1leaves | Numero massimo di nodi da aggiungere. Rilevante solo se `grow_policy` è impostato su `lossguide`. **Opzionale** Valori validi: numero intero Valore predefinito: 0  | 
| min\$1child\$1weight | Somma minima del peso delle istanze (hessiano) necessaria in un figlio. Se la fase di partizione dell'albero restituisce un nodo foglia in cui la somma del peso delle istanze è inferiore a `min_child_weight`, il processo di creazione interrompe l'ulteriore partizionamento. Nei modelli di regressione lineare, ciò corrisponde semplicemente a un numero minimo di istanze necessario in ogni nodo. Maggiore è il valore dell'algoritmo e più restrittivo sarà. **Opzionale** Valori validi: Float. Intervallo: [0,∞). Valore predefinito: 1  | 
| normalize\$1type | Tipo di algoritmo di normalizzazione. **Opzionale** Valori validi: *tree* o *forest*. Valore predefinito: *tree*  | 
| nthread | Numero di thread paralleli utilizzati per eseguire *xgboost*. **Opzionale** Valori validi: numero intero Valore predefinito: numero massimo di thread.  | 
| objective | Specifica le attività di apprendimento e l'obiettivo di apprendimento corrispondente. Esempi: `reg:logistic`, `reg:softmax`, `multi:squarederror`. [Per un elenco completo degli input validi, fare riferimento a XGBoost Parametri.](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst#learning-task-parameters) **Opzionale** Valori validi: stringa Valore predefinito: `reg:squarederror`  | 
| one\$1drop | Quando questo contrassegno è abilitato, durante il dropout almeno un albero viene rilasciato. **Opzionale** Valori validi: 0 o 1 Valore predefinito: 0  | 
| process\$1type | Tipo di processo di boosting da eseguire. **Opzionale** Valori validi: stringa. `default` o `update`. Valore predefinito: `default`  | 
| rate\$1drop | La velocità di dropout che specifica la frazione di alberi precedenti da rilasciare durante il dropout. **Opzionale** Valori validi: Float. Intervallo: [0.0, 1.0]. Valore predefinito: 0.0  | 
| refresh\$1leaf | Questo è un parametro del plugin di aggiornamento. Se è impostato su `true` (1), vengono aggiornate le foglie dell'albero e le statistiche dei nodi dell'albero. Se è impostato su `false`(0), vengono aggiornate solo le statistiche dei nodi dell'albero. **Opzionale** Valori validi: 0/1 Valore predefinito: 1  | 
| sample\$1type | Tipo di algoritmo di campionamento. **Opzionale** Valori validi: `uniform` o `weighted`. Valore predefinito: `uniform`  | 
| scale\$1pos\$1weight | Controlla il bilanciamento dei pesi positivi e negativi. Utile per le classi non bilanciate. Valore tipico da considerare: `sum(negative cases)` / `sum(positive cases)`. **Opzionale** Valori validi: float. Valore predefinito: 1  | 
| seed | Seed per il numero casuale. **Opzionale** Valori validi: numero intero Valore predefinito: 0  | 
| silent | 0 indica i messaggi di stampa in esecuzione, 1 indica la modalità silenziosa. Valori validi: 0 o 1 **Opzionale** Valore predefinito: 0  | 
| sketch\$1eps | Utilizzato solo per l'algoritmo greedy approssimativo. Questo si traduce in O (1/ `sketch_eps`) numero di container. Rispetto alla selezione diretta del numero di container, questo valore viene fornito con la garanzia teorica con precisione di sketch. **Opzionale** Valori validi: float, intervallo: [0, 1]. Valore predefinito: 0.03  | 
| skip\$1drop | Probabilità di ignorare la procedura di dropout durante un'iterazione di boosting. **Opzionale** Valori validi: Float. Intervallo: [0.0, 1.0]. Valore predefinito: 0.0  | 
| subsample | Rapporto di sottocampionamento dell'istanza di addestramento. Impostandolo su 0,5 significa che la metà delle istanze di dati vengono raccolte XGBoost casualmente per far crescere gli alberi. In questo modo si evita l'overfitting. **Opzionale** Valori validi: Float. Intervallo: [0,1]. Valore predefinito: 1  | 
| tree\$1method | L'algoritmo di costruzione degli alberi utilizzato in. XGBoost **Opzionale** Valori validi: uno tra `auto`, `exact`, `approx` o `hist`. Valore predefinito: `auto`  | 
| tweedie\$1variance\$1power | Controlla la varianza della distribuzione Tweedie. **Opzionale** Valori validi: Float. Intervallo: (1, 2). Valore predefinito: 1.5  | 
| updater | Stringa separata da virgole che definisce la sequenza di strumenti di aggiornamento degli alberi da eseguire. Questo fornisce un approccio modulare per creare e modificare gli alberi. Per un elenco completo degli input validi, consulta [XGBoost Parametri](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst). **Opzionale** Valori validi: stringa separata da virgole. Valore predefinito: `grow_colmaker`, prune  | 

## Ottimizza un modello della XGBoost release 0.7.2
<a name="xgboost-72-tuning"></a>

L'*ottimizzazione automatica dei modelli*, nota anche come ottimizzazione degli iperparametri, trova la versione migliore di un modello eseguendo molti processi che testano un intervallo di iperparametri sul set di dati di addestramento e di convalida. Puoi scegliere tre tipi di iperparametri:
+ una funzione di apprendimento `objective` da ottimizzare durante l’addestramento dei modelli
+ un `eval_metric` da utilizzare per valutare le prestazioni del modello durante la convalida
+ un insieme di iperparametri e un intervallo di valori per ciascuno da utilizzare quando si ottimizza automaticamente il modello

Scegli il parametro di valutazione dal set di parametri di valutazione calcolate dall'algoritmo. L'ottimizzazione automatica del modello ricerca gli iperparametri scelti per trovare la combinazione di valori che restituisce il modello che ottimizza il parametro di valutazione. 

Per ulteriori informazioni sull'ottimizzazione del modello, consulta [Ottimizzazione automatica dei modelli con AI SageMaker](automatic-model-tuning.md).

### Metriche calcolate dall'algoritmo della versione 0.72 XGBoost
<a name="xgboost-72-metrics"></a>

L' XGBoost algoritmo basato sulla versione 0.72 calcola le seguenti nove metriche da utilizzare per la convalida del modello. Durante l'ottimizzazione del modello, scegli uno di questi parametri per valutare il modello. [Per l'elenco completo dei `eval_metric` valori validi, consulta Learning Task Parameters XGBoost ](https://github.com/dmlc/xgboost/blob/master/doc/parameter.rst#learning-task-parameters)


| Nome parametro | Description | Direzione dell'ottimizzazione | 
| --- | --- | --- | 
| validation:auc |  Area sottesa alla curva.  |  Massimizza  | 
| validation:error |  Percentuale di errori della classificazione binaria, calcolata come n. (casi con errori)/n. (tutti i casi).  |  Minimizza  | 
| validation:logloss |  Probabilità log negativa.  |  Minimizza  | 
| validation:mae |  Media degli errori assoluti.  |  Minimizza  | 
| validation:map |  Media della precisione media.  |  Massimizza  | 
| validation:merror |  Percentuale di errori della classificazione multiclasse, calcolata come n. (casi con errori)/n. (tutti i casi).  |  Minimizza  | 
| validation:mlogloss |  Probabilità log negativa per la classificazione multiclasse.  |  Minimizza  | 
| validation:ndcg |  Normalized Discounted Cumulative Gain.  |  Massimizza  | 
| validation:rmse |  Radice dell'errore quadratico medio  |  Minimizza  | 

### Iperparametri della XGBoost versione 0.72 di Tunable
<a name="xgboost-72-tunable-hyperparameters"></a>

Ottimizza il XGBoost modello con i seguenti iperparametri. Gli iperparametri che hanno il maggiore effetto sull'ottimizzazione delle metriche di XGBoost valutazione sono:`alpha`,,`min_child_weight`, `subsample` e. `eta` `num_round` 


| Nome parametro | Tipo parametro | Intervalli consigliati | 
| --- | --- | --- | 
| alpha |  ContinuousParameterRanges  |  MinValue: 0,: 100 MaxValue  | 
| colsample\$1bylevel |  ContinuousParameterRanges  |  MinValue: 0,1, MaxValue: 1  | 
| colsample\$1bytree |  ContinuousParameterRanges  |  MinValue: 0,5, MaxValue: 1  | 
| eta |  ContinuousParameterRanges  |  MinValue: 0,1, MaxValue 0,5  | 
| gamma |  ContinuousParameterRanges  |  MinValue: 0, MaxValue: 5  | 
| lambda |  ContinuousParameterRanges  |  MinValue: 0, MaxValue: 100  | 
| max\$1delta\$1step |  IntegerParameterRanges  |  [0, 10]  | 
| max\$1depth |  IntegerParameterRanges  |  [0, 10]  | 
| min\$1child\$1weight |  ContinuousParameterRanges  |  MinValue: 0, MaxValue: 120  | 
| num\$1round |  IntegerParameterRanges  |  [1, 4000]  | 
| subsample |  ContinuousParameterRanges  |  MinValue: 0,5, MaxValue: 1  | 