0 / 0
Torna alla versione inglese della documentazione
Dettagli dell'implementazione AutoAI
Ultimo aggiornamento: 28 nov 2024
Dettagli dell'implementazione AutoAI

AutoAI prepara automaticamente i dati, applica algoritmi o stimatori e costruisce pipeline di modelli più adatti ai dati e ai casi d'uso.

Le sezioni seguenti descrivono alcuni dei dettagli tecnici che concorrono alla generazione delle pipeline e forniscono un elenco di documenti di ricerca che descrivono come AutoAI è stato progettato e implementato.

Preparazione dei dati per l'addestramento (pre-elaborazione dei dati)

Durante la preparazione automatica dei dati, o pre-elaborazione, AutoAI analizza i dati di addestramento e li prepara per la selezione del modello e la generazione della pipeline. La maggior parte dei set di dati contiene valori mancanti, ma gli algoritmi di apprendimento automatico di solito non prevedono valori mancanti. Un'eccezione a questa regola è descritta nella sezione 3.4 di xgboost. Gli algoritmi AutoAI eseguono diverse imputazioni di valori mancanti nel set di dati utilizzando varie tecniche, rendendo i dati pronti per l'apprendimento automatico. Inoltre, AutoAI individua e categorizza le caratteristiche in base ai loro tipi di dati, come quelli categorici o numerici. Esplora le strategie di codifica e scalatura basate sulla categorizzazione delle caratteristiche.

La preparazione dei dati prevede le seguenti fasi:

Classificazione delle colonne di caratteristiche

  • Rileva i tipi di colonne di caratteristiche e le classifica come classi categoriche o numeriche
  • Rileva vari tipi di valori mancanti (predefiniti, forniti dall'utente, valori erratici)

Engineering di funzioni

  • Gestisce le righe per le quali mancano i valori target (drop (default) o imputazione target)
  • Elimina le colonne a valore univoco (ad eccezione di datetime e timestamp)
  • Elimina le colonne a valore costante

Pre-elaborazione (imputazione e codifica dei dati)

  • Applica le strategie di imputazione/encoding/scaling di Sklearn (separatamente per ogni classe di caratteristiche). Ad esempio, l'attuale metodo predefinito per le strategie di imputazione dei valori mancanti, utilizzato nel prodotto, è " most frequent per le variabili categoriali e " mean per le variabili numeriche.
  • Gestisce le etichette del set di test che non sono state viste nel set di addestramento
  • Funzione HPO: Ottimizza le strategie di imputazione/codifica/scaling in base a un set di dati e a un algoritmo

Selezione automatica del modello

La seconda fase della formazione di un esperimento AutoAI è la selezione automatica del modello. L'algoritmo di selezione automatica dei modelli utilizza la strategia di allocazione dei dati mediante l'uso di limiti superiori. Questo approccio assegna in modo sequenziale piccoli sottoinsiemi di dati di addestramento a un ampio insieme di algoritmi. L'obiettivo è selezionare un algoritmo che fornisca un'accuratezza quasi ottimale quando viene addestrato su tutti i dati, minimizzando al contempo il costo dei campioni erroneamente assegnati. Il sistema supporta attualmente tutti gli algoritmi di Scikit-learn e i popolari algoritmi XGBoost e LightGBM. L'addestramento e la valutazione dei modelli su grandi insiemi di dati sono costosi. L'approccio che prevede di iniziare con piccoli sottoinsiemi e di assegnarne di sempre più grandi ai modelli che funzionano bene sul set di dati consente di risparmiare tempo, senza sacrificare le prestazioni. Gli algoritmi di apprendimento automatico di Snap sono stati aggiunti al sistema per incrementare ulteriormente le prestazioni.

Selezione degli algoritmi per un modello

Gli algoritmi vengono selezionati in base ai dati e alla natura del modello, ma possono anche bilanciare l'accuratezza e la durata del tempo di esecuzione, se il modello è configurato per questa opzione. Ad esempio, gli algoritmi Snap ML sono in genere più veloci per l'addestramento rispetto agli algoritmi Scikit-learn. Spesso sono gli algoritmi preferiti che AutoAI seleziona automaticamente per i casi in cui l'addestramento è ottimizzato per ottenere tempi di esecuzione e accuratezza più brevi. È possibile selezionarli manualmente se la velocità di allenamento è una priorità. Per maggiori dettagli, consultare la documentazione di Snap ML. Per una discussione sui casi in cui gli algoritmi SnapML sono utili, vedere questo post del blog sull'uso degli algoritmi SnapML.

Algoritmi utilizzati per i modelli di classificazione

Questi algoritmi sono gli algoritmi predefiniti che vengono utilizzati per la selezione dei modelli per i problemi di classificazione.

Tabella 1: Algoritmi predefiniti per la classificazione
Algoritmo Descrizione
Classificatore strutture ad albero decisionali Mappa le osservazioni su un elemento (rappresentate nei rami) alle conclusioni sul valore target dell'elemento (rappresentate nelle foglie). Supporta etichette binarie e multiclasse e caratteristiche continue e categoriali.
Classificatore strutture ad albero supplementari Un algoritmo di calcolo della media basato su strutture ad albero decisionali casuali.
Classificatore albero aumentato gradiente Produce un modello di previsione della classificazione sotto forma di un insieme di strutture ad albero decisionali. Supporta etichette binarie e caratteristiche continue e categoriche.
Classificatore LGBM Framework di boosting gradiente che utilizza l'algoritmo di apprendimento di tipo foglia (orizzontale) basato sulla struttura ad albero.
Regressione logistica Analizza un insieme di dati in cui una o più variabili indipendenti determinano uno dei due risultati. È supportata solo la regressione logistica binaria
Classificatore foresta casuale Crea più strutture ad albero decisionali per produrre l'etichetta che rappresenta una modalità di ciascuna struttura ad albero decisionale. Supporta etichette binarie e multiclasse e caratteristiche continue e categoriali.
SnapDecisionTreeClassifier Questo algoritmo fornisce un classificatore ad albero decisionale utilizzando la libreria IBM Snap ML.
SnapLogisticRegression Questo algoritmo fornisce una regressione logistica regolarizzata utilizzando il solutore IBM Snap ML.
SnapRandomForestClassifier Questo algoritmo fornisce un classificatore a foresta casuale utilizzando la libreria IBM Snap ML.
SnapSVMClassifier Questo algoritmo fornisce una macchina vettoriale di supporto regolarizzata utilizzando il solutore IBM Snap ML.
Classificatore XGBoost Procedura accurata e sicura che può essere utilizzata per i problemi di classificazione. I modelli XGBoost sono utilizzati in vari settori, tra cui il ranking delle ricerche web e l'ecologia.
SnapBoostingMachineClassifier Macchina di boosting per compiti di classificazione binaria e multiclasse che combina alberi decisionali binari e modelli lineari con caratteristiche casuali di Fourier.

Algoritmi utilizzati per i modelli di regressione

Questi algoritmi sono gli algoritmi predefiniti utilizzati per la selezione automatica dei modelli per i problemi di regressione.

Tabella 2: Algoritmi predefiniti per la regressione
Algoritmo Descrizione
Regressione albero decisionale Mappatura delle osservazioni relative a un elemento (rappresentate nei rami) in conclusioni sul valore target dell'elemento (rappresentate nelle foglie). Supporta caratteristiche sia continue che categoriche.
Regressione strutture ad albero supplementari Un algoritmo di calcolo della media basato su strutture ad albero decisionali casuali.
Regressione boosting gradiente Produce un modello di previsione della regressione sotto forma di un insieme di strutture ad albero decisionali. Supporta caratteristiche sia continue che categoriche.
Regressione LGBM Framework di boosting gradiente che utilizza algoritmi di apprendimento basati sulla struttura al albero.
Regressione lineare Modella la relazione lineare tra una variabile dipendente scalare y ed una o più variabili esplicative (o variabili indipendenti) x.
Regressione foresta casuale Crea più strutture ad albero decisionali per produrre la previsione media di ciascuna struttura ad albero decisionale. Supporta caratteristiche sia continue che categoriche.
Ridge La regressione Ridge è simile a Ordinary Least Squares ma impone una penalità sulla dimensione dei coefficienti.
SnapBoostingMachineRegressor Questo algoritmo fornisce una macchina di boosting utilizzando la libreria IBM Snap ML che può essere utilizzata per costruire un ensemble di alberi decisionali.
SnapDecisionTreeRegressor Questo algoritmo fornisce un albero decisionale utilizzando la libreria IBM Snap ML.
SnapRandomForestRegressor Questo algoritmo fornisce una foresta casuale utilizzando la libreria IBM Snap ML.
Regressione XGBoost GBRT è una procedura off-the-shelf accurata ed efficace che può essere utilizzata per problemi di regressione. I modelli di Gradient Tree Boosting sono utilizzati in vari settori, tra cui il ranking delle ricerche sul web e l'ecologia.

Metriche per tipo di modello

Sono disponibili le seguenti metriche per misurare l'accuratezza delle pipeline durante l'addestramento e per lo scoring dei dati.

Metriche di classificazione binaria

  • Precisione (predefinita per la classificazione delle pipeline)
  • ROC AUC
  • Precisione media
  • F
  • Perdita log negativa
  • Precisione
  • Richiamo

Metriche di classificazione multiclasse

Le metriche per i modelli multiclasse generano punteggi che indicano il rendimento di una pipeline rispetto alla misura specificata. Ad esempio, il punteggio F1 calcola la media tra precisione (delle previsioni effettuate, quante previsioni positive sono state corrette) e richiamo (di tutte le possibili previsioni positive, quante sono state previste correttamente).

È possibile affinare ulteriormente un punteggio qualificandolo per calcolare la metrica data a livello globale (macro), per etichetta (micro) o per ponderare un set di dati sbilanciato per favorire le classi più rappresentate.

  • Le metriche con il qualificatore micro calcolano le metriche a livello globale contando il numero totale di veri positivi, falsi negativi e falsi positivi.
  • Metrics con il qualificatore macro calcola le metriche per ogni etichetta e trova la loro media non ponderata. Tutte le etichette hanno la stessa ponderazione.
  • Le metriche con il qualificatore ponderato calcolano le metriche per ogni etichetta e trovano la loro media ponderata per il contributo di ogni classe. Ad esempio, in un set di dati che include le categorie di mele, pesche e prugne, se ci sono molte più istanze di mele, la metrica ponderata dà maggiore importanza alla previsione corretta delle mele. Questo altera le macro per tenere conto dello squilibrio delle etichette. Utilizzare una metrica ponderata, come la F1-weighted per un set di dati sbilanciato.

Queste sono le metriche di classificazione multiclasse:

  • Precisione (predefinita per la classificazione delle pipeline)
  • F1
  • F1 Micro
  • F1 Macro
  • F1 Ponderato
  • Precisione
  • Precisione Micro
  • Precisione Macro
  • Precisione Ponderata
  • Richiamo
  • Richiama Micro
  • Richiama Macro
  • Richiamo Ponderato

Metriche di regressione

  • Errore quadratico medio negativo (predefinito per la classificazione della pipeline)
  • Errore assoluto medio negativo
  • Errore logico medio quadratico negativo
  • Varianza spiegata
  • Errore quadratico medio negativo
  • Errore logico medio quadratico negativo
  • Errore assoluto mediano negativo
  • R2

Ingegneria automatizzata delle caratteristiche

La terza fase del processo AutoAI è l'ingegnerizzazione automatica delle caratteristiche. L'algoritmo di feature engineering automatizzato si basa su Cognito, descritto nei documenti di ricerca Cognito: Automated Feature Engineering for Supervised Learning e Feature Engineering for Predictive Modeling by using Reinforcement Learning. Il sistema esplora varie scelte di costruzione delle caratteristiche in modo gerarchico e non esaustivo, massimizzando progressivamente l'accuratezza del modello attraverso una strategia di esplorazione-sfruttamento. Questo metodo si ispira alla strategia "trial and error" per l'ingegnerizzazione delle caratteristiche, ma è condotto da un agente autonomo al posto dell'uomo.

Metriche utilizzate per l'importanza delle caratteristiche

Per gli algoritmi di classificazione e regressione ad albero, come Decision Tree, Extra Trees, Random Forest, XGBoost, Gradient Boosted e LGBM, le importanze delle caratteristiche sono i loro punteggi di importanza intrinseca delle caratteristiche, basati sulla riduzione del criterio utilizzato per selezionare i punti di divisione e calcolati quando questi algoritmi vengono addestrati sui dati di formazione.

Per gli algoritmi non ad albero come Logistic Regression, LInear Regression, SnapSVM, e Ridge, le importanze delle caratteristiche sono le importanze delle caratteristiche di un algoritmo Random Forest addestrato sugli stessi dati di addestramento dell'algoritmo non ad albero.

Per qualsiasi algoritmo, tutte le importanze delle caratteristiche sono comprese tra zero e uno e sono state normalizzate come rapporto rispetto all'importanza massima della caratteristica.

trasformazioni dati

Per l'ingegnerizzazione delle caratteristiche, AutoAI utilizza un approccio innovativo che esplora varie scelte di costruzione delle caratteristiche in modo strutturato e non esaustivo, massimizzando progressivamente l'accuratezza del modello grazie all'apprendimento per rinforzo. Ne risulta una sequenza ottimizzata di trasformazioni per i dati che meglio si adattano agli algoritmi, o agli algoritmi, della fase di selezione del modello. Questa tabella elenca alcune delle trasformazioni utilizzate e alcune condizioni note in cui sono utili. Non si tratta di un elenco esaustivo di scenari in cui la trasformazione è utile, poiché può essere complesso e difficile da interpretare. Infine, gli scenari elencati non spiegano come vengono selezionate le trasformazioni. La scelta delle trasformazioni da applicare avviene per tentativi ed errori, in base alle prestazioni.

Tabella 3: Trasformazioni per l'ingegneria delle caratteristiche
Nome Codice funzione
Analisi delle componenti principali pca Ridurre le dimensioni dei dati e riallinearli in un sistema di coordinate più adatto. Aiuta ad affrontare la "maledizione della dimensionalità" nei dati linearmente correlati. Elimina la ridondanza e separa i segnali significativi nei dati.
Scaler standard stdscaler Scala le caratteristiche dei dati a un intervallo standard. Questo aiuta l'efficacia e l'efficienza di alcuni algoritmi di apprendimento e di altre trasformazioni come la PCA.
Logaritmo log Riduce la skewness destra delle caratteristiche e le rende più simmetriche. La simmetria delle caratteristiche che ne deriva aiuta gli algoritmi a comprendere meglio i dati. Anche la scalatura basata su media e varianza è più significativa per i dati simmetrici. Inoltre, può catturare specifiche relazioni fisiche tra elemento e bersaglio, meglio descritte attraverso un logaritmo.
Root cubo cbrt Riduce l'asimmetria destra dei dati come il logaritmo, ma ha un impatto più debole del log, che potrebbe essere più adatto in alcuni casi. Si applica anche a valori negativi o nulli ai quali non si applica il log. La radice del cubo può anche cambiare unità di misura, come ad esempio ridurre il volume alla lunghezza.
Radice quadrata sqrt Riduce la lieve asimmetria destra dei dati. È più debole del log o della radice cubica. Lavora con gli zeri e riduce le dimensioni spaziali come l'area alla lunghezza.
Quadrato quadrato Riduce in misura moderata la skewness sinistra per rendere tali distribuzioni più simmetriche. Può anche essere utile per catturare alcuni fenomeni come la crescita super-lineare.
Prodotto product Il prodotto di due caratteristiche può esporre una relazione non lineare per prevedere meglio il valore target rispetto ai singoli valori. Ad esempio, il costo degli articoli e il numero di articoli venduti sono un'indicazione migliore delle dimensioni di un'azienda rispetto a qualsiasi altro dato.
XOR numerico nxor Questa trasformazione consente di catturare relazioni di tipo "disgiunzione esclusiva" tra variabili, simili a un XOR bitwise, ma in un contesto numerico generale.
Somma somma A volte la somma di due caratteristiche è meglio correlata all'obiettivo di predizione rispetto alle caratteristiche da sole. Ad esempio, i prestiti provenienti da fonti diverse, se sommati, danno un'idea più precisa dell'indebitamento totale di un richiedente di credito.
Divisione divide La divisione è un operando fondamentale che viene utilizzato per esprimere quantità come il PIL lordo sulla popolazione (PIL pro capite), che rappresenta la durata media della vita di un paese meglio del solo PIL o della sola popolazione.
Massimo massimo Prendere il valore più alto tra i due.
Arrotondamento arrotondamento Questa trasformazione può essere vista come una perturbazione o come l'aggiunta di un po' di rumore per ridurre l'overfitting che potrebbe essere il risultato di osservazioni imprecise.
Valore assoluto abs Considerare solo la grandezza e non il segno dell'osservazione. A volte, non conta tanto la direzione o il segno di un'osservazione, quanto la sua entità, ad esempio lo spostamento fisico, considerando il carburante o il tempo trascorso nel movimento effettivo.
Tangente iperbolica TANH La funzione di attivazione non lineare può migliorare l'accuratezza della previsione, analogamente alle funzioni di attivazione delle reti neurali.
Seno SIN Può riorientare i dati per scoprire tendenze periodiche come i moti armonici semplici.
Coseno lattuga romana Può riorientare i dati per scoprire tendenze periodiche come i moti armonici semplici.
Tangente TAN La trasformata tangente trigonometrica è solitamente utile in combinazione con altre trasformate.
Agglomerazione funzioni Agglomerazione funzioni Il raggruppamento di diverse caratteristiche in gruppi, in base alla distanza o all'affinità, facilita la classificazione per l'algoritmo di apprendimento.
Sigmoide sigmoide La funzione di attivazione non lineare può migliorare l'accuratezza della previsione, analogamente alle funzioni di attivazione delle reti neurali.
Foresta di isolamento isoforestanomalia Esegue il clustering utilizzando una Foresta di isolamento per creare una nuova caratteristica contenente un punteggio di anomalia per ciascun campione.
da parola a vettore word2vec Questo algoritmo, utilizzato per l'analisi del testo, viene applicato prima di tutte le altre trasformazioni. Prende in input un corpus di testi e produce un insieme di vettori. Trasformando il testo in una rappresentazione numerica, è in grado di rilevare e confrontare parole simili. Se addestrato con un numero sufficiente di dati, " word2vec è in grado di fare previsioni accurate sul significato di una parola o sulla sua relazione con altre parole. Le previsioni possono essere utilizzate per analizzare il testo e prevedere il significato nelle applicazioni di sentiment analysis.

Ottimizzazione degli iperparametri

La fase finale di AutoAI è l'ottimizzazione degli iperparametri. L'approccio AutoAI ottimizza i parametri delle pipeline più performanti delle fasi precedenti. Si tratta di esplorare le gamme di parametri di queste pipeline utilizzando un ottimizzatore iperparametrico a scatola nera chiamato RBFOpt. RBFOpt è descritto nel documento di ricerca RBFOpt: an open-source library for black-box optimization with costly function evaluations. RBFOpt è adatto agli esperimenti di AutoAI perché è costruito per ottimizzazioni con valutazioni costose, come nel caso dell'addestramento e del punteggio di un algoritmo. L'approccio di RBFOpt costruisce e affina iterativamente un modello surrogato della funzione obiettivo sconosciuta per convergere rapidamente nonostante i lunghi tempi di valutazione di ogni iterazione.


Domande frequenti su AutoAI

Di seguito sono riportate le domande più frequenti sulla creazione di un esperimento AutoAI.

Quante pipeline vengono create?

Due parametri di AutoAI determinano il numero di pipeline:

  • max_num_daub_ensembles: Numero massimo (top-K classificato dalla selezione del modello DAUB) dell'algoritmo o dei tipi di stimatore selezionati, ad esempio LGBMClassifierEstimator, XGBoostClassifierEstimator, o LogisticRegressionEstimator da usare nella composizione della pipeline. L'impostazione predefinita è 1, per cui viene utilizzato solo il tipo di algoritmo di selezione del modello più alto in classifica.

  • num_folds: Numero di sottoinsiemi del set di dati completo per addestrare le pipeline oltre al set di dati completo. L'impostazione predefinita è 1 per l'addestramento dell'intero set di dati.

Per ogni piega e tipo di algoritmo, AutoAI crea quattro pipeline di affinamento crescente, corrispondenti a:

  1. Pipeline con parametri sklearn predefiniti per questo tipo di algoritmo,
  2. Pipeline con algoritmo ottimizzato utilizzando HPO
  3. Pipeline con ingegneria delle caratteristiche ottimizzata
  4. Pipeline con feature engineering ottimizzato e algoritmo ottimizzato utilizzando HPO

Il numero totale di pipeline generate è:

TotalPipelines= max_num_daub_ensembles * 4, if num_folds = 1:  
                       
TotalPipelines= (num_folds+1) * max_num_daub_ensembles * 4,  if num_folds > 1 :

Quale ottimizzazione degli iperparametri viene applicata al mio modello?

AutoAI utilizza un algoritmo di ricerca globale senza derivati e basato su un modello, chiamato RBfOpt, che è stato creato su misura per il costoso addestramento dei modelli di apprendimento automatico e per le valutazioni dei punteggi richieste dall'ottimizzazione degli iperparametri (HPO). A differenza dell'ottimizzazione bayesiana, che adatta un modello gaussiano alla funzione obiettivo sconosciuta, RBfOpt adatta una modalità di funzione a base radiale per accelerare la scoperta di configurazioni di iperparametri che massimizzano la funzione obiettivo del problema di apprendimento automatico in questione. Questa accelerazione è ottenuta riducendo al minimo il numero di costose valutazioni dei modelli di apprendimento automatico e di scoring ed eliminando la necessità di calcolare le derivate parziali.

Per ogni piega e tipo di algoritmo, AutoAI crea due pipeline che utilizzano HPO per ottimizzare il tipo di algoritmo.

  • Il primo si basa sull'ottimizzazione di questo tipo di algoritmo in base all'insieme di dati preelaborati (imputati/codificati/scalati) (pipeline 2) di cui sopra).
  • Il secondo si basa sull'ottimizzazione del tipo di algoritmo in base all'ingegnerizzazione ottimizzata delle caratteristiche del set di dati preelaborati (imputati/codificati/scalati).

I valori dei parametri degli algoritmi di tutte le pipeline generate da AutoAI vengono pubblicati nei messaggi di stato.

Per maggiori dettagli sull'algoritmo RbfOpt, vedere:

Come viene calcolata la significatività delle caratteristiche?

Quando si configura un esperimento di classificazione o regressione, è possibile specificare come gestire le caratteristiche che non hanno alcun impatto sul modello. Le scelte sono: rimuovere sempre la caratteristica, rimuoverla quando migliora la qualità del modello o non rimuoverla. La significatività delle caratteristiche viene calcolata come segue:

  • L'importanza delle caratteristiche viene calcolata sul campione di dati.
  • Alcuni stimatori non dispongono di funzionalità integrate per restituire le importanze delle caratteristiche. In questi casi, per misurare l'impatto si utilizza uno stimatore come RandomForest.
  • Il numero di caratteristiche è importante: se il valore di importanza di una caratteristica è 0.0000000001 ma ci sono molte caratteristiche di bassa importanza (ad esempio, più di 200), lasciarle o rimuoverle può avere un certo impatto sui risultati dell'esperimento.

In modalità automatica, i seguenti passaggi vengono utilizzati per verificare che la rimozione delle caratteristiche di scarsa importanza non influisca sui risultati dell'esperimento:

  • Se la rimozione di tutte le caratteristiche con importanza calcolata pari a 0 ha un certo impatto sull'accuratezza del modello, l'algoritmo dell'analisi delle componenti principali viene applicato a tali caratteristiche e seleziona le prime K componenti che spiegano il 90% della varianza tra le caratteristiche non significative.
  • Successivamente, le componenti trasformate vengono utilizzate come nuove caratteristiche al posto di quelle originali e il modello viene nuovamente valutato.
  • Se l'accuratezza continua a diminuire, tutte le caratteristiche originali vengono aggiunte nuovamente all'esperimento.

Riferimenti di ricerca

Questo elenco comprende alcuni articoli di ricerca fondamentali che illustrano in dettaglio come AutoAI è stato progettato e implementato per promuovere la fiducia e la trasparenza nel processo di creazione di modelli automatizzati.

Passi successivi

Imputazione dei dati negli esperimenti " AutoAI

Argomento principale: PanoramicaAutoAI

Ricerca e risposta AI generativa
Queste risposte sono generate da un modello di lingua di grandi dimensioni in watsonx.ai basato sul contenuto della documentazione del prodotto. Ulteriori informazioni