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à.
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")
Se desideri utilizzare versioni più recenti, devi specificare esplicitamente i tag URI dell'immagine (vedi). Versioni supportate
Questa versione precedente dell' XGBoost algoritmo Amazon SageMaker AI si basa sulla versione 0.72. XGBoost
I clienti devono valutare l'utilizzo della nuova versione di XGBoost algoritmo con Amazon SageMaker AI. 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
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 * 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 the model, which can be used for saving/loading il 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 contrassegnocsv_weights
nei parametri e collegare i valori di peso nella colonna dopo le etichette. Ad esempio:label,weight,val_0,val_1,...
).
EC2 Raccomandazione sull'istanza per la versione 0.72 XGBoost
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
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
XGBoost Iperparametri della versione 0.72
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.
Nome parametro | Descrizione |
---|---|
num_class |
Numero di classi. Obbligatorio se Valori validi: numero intero |
num_round |
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_score |
Punteggio previsto iniziale di tutte le istanze, bias globale. Opzionale Valori validi: float. Valore predefinito: 0.5 |
booster |
Booster da utilizzare. I valori Opzionale Valori validi: stringa. Uno tra Valore predefinito: |
colsample_bylevel |
Rapporto di sottocampionamento delle colonne per ogni suddivisione, in ogni livello. Opzionale Valori validi: Float. Intervallo: [0,1]. Valore predefinito: 1 |
colsample_bytree |
Rapporto di sottocampionamento delle colonne durante la creazione di ogni albero. Opzionale Valori validi: Float. Intervallo: [0,1]. Valore predefinito: 1 |
csv_weights |
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_stopping_rounds |
Il modello continua l’addestramento finché il punteggio della convalida non smette di migliorare. Gli errori di convalida devono diminuire almeno ogni 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 Opzionale Valori validi: Float. Intervallo: [0,1]. Valore predefinito: 0.3 |
eval_metric |
Parametri di valutazione per i dati di convalida. Un parametro predefinito viene assegnato in base all'obiettivo:
Per un elenco di input validi, XGBoost consulta Parametri. 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_policy |
Controlla il modo in cui i nuovi nodi vengono aggiunti all'albero. Attualmente supportato solo se Opzionale Valori validi: stringa. Valore predefinito: |
lambda |
Termine di regolarizzazione L2 sui pesi. Aumentando questo valore, i modelli diventano più restrittivi. Opzionale Valori validi: float. Valore predefinito: 1 |
lambda_bias |
Termine di regolarizzazione L2 su bias. Opzionale Valori validi: Float. Intervallo: [0.0, 1.0]. Valore predefinito: 0 |
max_bin |
Numero massimo di container discreti per le funzioni continue del bucket. Utilizzato solo se Opzionale Valori validi: numero intero Valore predefinito: 256 |
max_delta_step |
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_depth |
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 Opzionale Valori validi: numero intero. Intervallo: [0,∞) Valore predefinito: 6 |
max_leaves |
Numero massimo di nodi da aggiungere. Rilevante solo se Opzionale Valori validi: numero intero Valore predefinito: 0 |
min_child_weight |
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 Opzionale Valori validi: Float. Intervallo: [0,∞). Valore predefinito: 1 |
normalize_type |
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: Opzionale Valori validi: stringa Valore predefinito: |
one_drop |
Quando questo contrassegno è abilitato, durante il dropout almeno un albero viene rilasciato. Opzionale Valori validi: 0 o 1 Valore predefinito: 0 |
process_type |
Tipo di processo di boosting da eseguire. Opzionale Valori validi: stringa. Valore predefinito: |
rate_drop |
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_leaf |
Questo è un parametro del plugin di aggiornamento. Se è impostato su Opzionale Valori validi: 0/1 Valore predefinito: 1 |
sample_type |
Tipo di algoritmo di campionamento. Opzionale Valori validi: Valore predefinito: |
scale_pos_weight |
Controlla il bilanciamento dei pesi positivi e negativi. Utile per le classi non bilanciate. Valore tipico da considerare: 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_eps |
Utilizzato solo per l'algoritmo greedy approssimativo. Questo si traduce in O (1/ Opzionale Valori validi: Float. Intervallo: [0, 1]. Valore predefinito: 0.03 |
skip_drop |
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_method |
L'algoritmo di costruzione degli alberi utilizzato in. XGBoost Opzionale Valori validi: uno tra Valore predefinito: |
tweedie_variance_power |
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 Opzionale Valori validi: stringa separata da virgole. Valore predefinito: |
Ottimizza un modello della XGBoost release 0.7.2
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 .
Metriche calcolate dall'algoritmo della versione 0.72 XGBoost
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
Nome parametro | Descrizione | 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
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_bylevel |
ContinuousParameterRanges |
MinValue: 0,1, MaxValue: 1 |
colsample_bytree |
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_delta_step |
IntegerParameterRanges |
[0, 10] |
max_depth |
IntegerParameterRanges |
[0, 10] |
min_child_weight |
ContinuousParameterRanges |
MinValue: 0, MaxValue: 120 |
num_round |
IntegerParameterRanges |
[1, 4000] |
subsample |
ContinuousParameterRanges |
MinValue: 0,5, MaxValue: 1 |