AutoAI prepara automaticamente i dati, applica gli algoritmi o gli stimatori e crea le pipeline del modello più adatte per i tuoi dati e il tuo caso di utilizzo.
Le seguenti sezioni descrivono alcuni di questi dettagli tecnici che si riferiscono alla generazione delle pipeline e forniscono un elenco di articoli di ricerca che descrivono come è stato progettato e implementato AutoAI .
- Preparazione dei dati per l'addestramento (pre - elaborazione)
- Selezione automatica del modello
- Algoritmi utilizzati per modelli di classificazione
- Algoritmi utilizzati per i modelli di regressione
- Metriche per modello
- trasformazioni dati
- Feature Engineering automatizzata
- Ottimizzazione degli iperparametri
- FAQAutoAI
- Ulteriori informazioni
Preparazione dei dati per la formazione (pre - elaborazione dei dati)
Durante la preparazione automatica dei dati, o la 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 dataset contiene valori mancanti, ma gli algoritmi di machine learning generalmente non prevedono valori mancanti. Un'eccezione a questa regola è descritta nella sezione 3.4 di xgboost. Gli algoritmi AutoAI eseguono diverse assegnazioni di valori mancanti nel dataset utilizzando varie tecniche, rendendo i dati pronti per il machine learning. Inoltre, AutoAI rileva e categorizza le funzioni in base ai relativi tipi di dati, ad esempio categoriali o numerici. Esplora le strategie di codifica e ridimensionamento basate sulla categorizzazione delle funzioni.
La preparazione dei dati comporta le seguenti fasi:
- Classificazione colonna elemento
- Progettazione di funzioni
- Pre - elaborazione (assegnazione e codifica dati)
Classificazione colonna funzione
- Rileva i tipi di colonne di funzioni e le classifica come classe categoriale o numerica
- Rileva vari tipi di valori mancanti (predefiniti, forniti dall'utente, valori anomali)
Progettazione di funzioni
- Gestisce le righe per cui mancano i valori di destinazione (rilascio (predefinito) o assegnazione di destinazione)
- Elimina colonne di valori univoci (eccetto data/ora e data/ora)
- Elimina colonne di valori costanti
Pre - elaborazione (assegnazione e codifica dei dati)
- Applica le strategie di assegnazione / codificazione/scalabilità Sklearn (separatamente per ogni classe di elementi). Ad esempio, il metodo predefinito corrente per le strategie di assegnazione dei valori mancanti, utilizzato nel prodotto, sono
most frequent
per le variabili categoriali emean
per quelle numeriche. - Gestisce le etichette della serie di test che non sono state visualizzate nella serie di addestramento
- Funzione HPO: ottimizza le strategie di assegnazione / codifica/ridimensionamento dati un insieme di dati e un algoritmo
Selezione automatica del modello
La seconda fase in un addestramento esperimento AutoAI è la selezione automatica del modello. L'algoritmo di selezione del modello automatizzato utilizza la strategia di allocazione dei dati utilizzando i limiti superiori. Questo approccio assegna sequenzialmente piccoli sottoinsiemi di dati di addestramento tra un ampio insieme di algoritmi. L'obiettivo è quello di selezionare un algoritmo che fornisca una precisione quasi ottimale quando viene addestrato su tutti i dati, riducendo al minimo il costo dei campioni non correttamente posizionati. Il sistema attualmente supporta tutti gli algoritmi Scikit-learn e gli algoritmi popolari XGBoost e LightGBM . L'addestramento e la valutazione dei modelli su insiemi di dati di grandi dimensioni sono costosi. L'approccio di avviare sottoinsiemi di piccole dimensioni e allocare in modo incrementale quelli più grandi ai modelli che funzionano bene sul dataset consente di risparmiare tempo, senza sacrificare le prestazioni. Gli algoritmi di apprendimento automatico a scatto sono stati aggiunti al sistema per aumentare ancora di più le prestazioni.
Selezione di algoritmi per un modello
Gli algoritmi sono selezionati per corrispondere ai dati e alla natura del modello, ma possono anche bilanciare l'accuratezza e la durata del runtime, se il modello è configurato per tale opzione. Ad esempio, gli algoritmi Snap ML sono generalmente più veloci per l'addestramento rispetto agli algoritmi Scikit-learn. Sono spesso gli algoritmi preferiti che AutoAI seleziona automaticamente per i casi in cui l'addestramento è ottimizzato per un tempo di esecuzione e una precisione più brevi. È possibile selezionarle manualmente se la velocità di addestramento è 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 utilizzati per la selezione del modello per problemi di classificazione.
Algoritmo | Descrizione |
---|---|
Classificatore strutture ad albero decisionali | Associa le osservazioni relative a un elemento (rappresentato in rami) alle conclusioni sul valore di destinazione dell'elemento (rappresentato in foglie). Supporta etichette binarie e multiclasse e funzioni continue e categoriali. |
Classificatore strutture ad albero supplementari | Un algoritmo di media basato su strutture ad albero decisionali randomizzate. |
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 funzioni continue e categoriali. |
Classificatore LGBM | Framework di boosting gradiente che utilizza un algoritmo di apprendimento basato su strutture ad albero orientate a foglia (orizzontali). |
Regressione logistica | Analizza un dataset in cui una o più variabili indipendenti determinano uno dei due risultati. È supportata solo la regressione logistica binaria |
Classificatore foresta casuale | Costruisce più strutture ad albero decisionali per produrre l'etichetta che è una modalità di ciascuna struttura ad albero decisionale. Supporta le etichette binarie e multiclasse e le funzioni continue e categoriali. |
SnapDecisionTreeClassifier | Questo algoritmo fornisce un classificatore dell'albero decisionale utilizzando la libreria IBM Snap ML. |
SnapLogisticRegression | Questo algoritmo fornisce la regressione logistica regolarizzata utilizzando IBM Snap ML solver. |
SnapRandomForestClassifier | Questo algoritmo fornisce un classificatore di strutture casuale utilizzando la libreria IBM Snap ML. |
SnapSVMClassifier | Questo algoritmo fornisce una macchina vettore di supporto regolarizzata utilizzando il solutore IBM Snap ML. |
Classificatore XGBoost | Una procedura sicura e accurata che può essere utilizzata per i problemi di classificazione. I modelli XGBoost sono utilizzati in varie aree, tra cui la classificazione delle ricerche web e l'ecologia. |
SnapBoostingMachineClassifier | Macchina di boosting per attività di classificazione binarie e multi - classe che combinano strutture ad albero delle decisioni binarie con modelli lineari con funzioni fourier casuali. |
Algoritmi utilizzati per i modelli di regressione
Questi algoritmi sono gli algoritmi predefiniti utilizzati per la selezione automatica del modello per problemi di regressione.
Algoritmo | Descrizione |
---|---|
Regressione albero decisionale | Associa le osservazioni relative a un elemento (rappresentato nei rami) alle conclusioni sul valore di destinazione dell'elemento (rappresentato nelle foglie). Supporta funzioni continue e categoriali. |
Regressione strutture ad albero supplementari | Un algoritmo di media basato su strutture ad albero decisionali randomizzate. |
Regressione boosting gradiente | Produce un modello di previsione di regressione sotto forma di un insieme di strutture ad albero decisionali. Supporta funzioni continue e categoriali. |
Regressione LGBM | Framework di boosting gradiente che utilizza algoritmi di apprendimento basati sulle strutture ad albero. |
Regressione lineare | Modella la relazione lineare tra una variabile scalare dipendente y e 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 funzioni continue e categoriali. |
In rilievo | La regressione di Ridge è simile ai minimi quadrati ordinari 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 creare un insieme di strutture ad albero delle decisioni. |
SnapDecisionTreeRegressor | Questo algoritmo fornisce un albero decisionale utilizzando la libreria IBM Snap ML. |
SnapRandomForestRegressor | Questo algoritmo fornisce una struttura casuale utilizzando la libreria IBM Snap ML. |
Regressione XGBoost | GBRT è una procedura accurata ed efficace che può essere utilizzata per i problemi di regressione. I modelli Gradient Tree Boosting sono utilizzati in varie aree, tra cui la classificazione della ricerca Web e l'ecologia. |
Metriche per tipo di modello
Le seguenti metriche sono disponibili per misurare l'accuratezza delle pipeline durante l'addestramento e per i dati di calcolo del punteggio.
Metriche di classificazione binaria
- Accuratezza (valore predefinito per la classificazione delle pipeline)
- ROC AUC
- Precisione media
- F
- Perdita log negativa
- Precisione
- Richiamo
Metriche di classificazione a più classi
Le metriche per i modelli multi - classe generano punteggi per quanto bene una pipeline funziona rispetto alla misurazione specificata. Ad esempio, una F1 media dei punteggi precisione (delle previsioni effettuate, quante previsioni positive erano corrette) e richiamo (di tutte le possibili previsioni positive, quante erano state previste correttamente).
È possibile perfezionare ulteriormente un punteggio qualificandolo per calcolare la metrica fornita globalmente (macro), per etichetta (micro) o per pesare un dataset non bilanciato per favorire le classi con una maggiore rappresentazione.
- Le metriche con il qualificatore micro calcolano globalmente le metriche contando il numero totale di veri positivi, falsi negativi e falsi positivi.
- Le metriche con il qualificatore macro calcolano le metriche per ciascuna etichetta e ne individuano la media non ponderata. Tutte le etichette hanno la stessa ponderazione.
- Le metriche con il qualificatore weighted calcolano le metriche per ogni etichetta e trovano la media ponderata in base al contributo di ciascuna classe. Ad esempio, in un insieme di dati che include categorie per mele, pesche e prugne, se ci sono molte più istanze di mele, la metrica ponderata dà maggiore importanza alla previsione corretta delle mele. Ciò modifica la macro per tenere conto dello squilibrio delle etichette. Utilizzare una metrica ponderata come F1-weighted per un dataset non bilanciato.
Queste sono le metriche di classificazione multi - classe:
- Accuratezza (valore predefinito 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 (valore predefinito per la classificazione della pipeline)
- Errore assoluto della media negativa
- Errore logaritmo della media dei quadrati negativo
- Varianza spiegata
- Errore quadratico medio negativo
- Errore logaritmo della media dei quadrati negativo
- Errore assoluto mediano negativo
- R2
Ingegneria delle funzioni automatizzata
La terza fase del processo AutoAI è la progettazione automatica delle funzionalità. 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'ingegneria delle funzionalità, ma condotta da un agente autonomo al posto di un essere umano.
Metriche utilizzate per l'importanza della funzione
Per gli algoritmi di classificazione e regressione basati sulla struttura ad albero, quali Decision Tree, Extra Trees, Random Forest, XGBoost, Gradient Boosted e LGBM, le importanze della funzione sono i punteggi di importanza della funzione intrinseca basati sulla riduzione nel criterio utilizzato per selezionare i punti di suddivisione e calcolati quando questi algoritmi vengono addestrati sui dati di addestramento.
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 funzioni sono comprese nell'intervallo tra zero e uno e sono state normalizzate come il rapporto rispetto all'importanza massima delle funzioni.
trasformazioni dati
Per l'ingegneria delle funzionalità, AutoAI utilizza un nuovo approccio che esplora diverse opzioni di costruzione delle funzioni in modo strutturato e non esaustivo, massimizzando progressivamente l'accuratezza del modello utilizzando l'apprendimento di rinforzo. Ne risulta una sequenza ottimizzata di trasformazioni per i dati che meglio corrispondono agli algoritmi, o algoritmi, della fase di selezione del modello. Questa tabella elenca alcune delle trasformazioni utilizzate e alcune condizioni note in cui sono utili. Questo non è un elenco esaustivo di scenari in cui la trasformazione è utile, in quanto può essere complessa e difficile da interpretare. Infine, gli scenari elencati non sono una spiegazione di come vengono selezionate le trasformazioni. La selezione delle trasformazioni da applicare viene effettuata in modo di prova ed errore, orientato alle prestazioni.
Nome | Codice | funzione |
---|---|---|
Analisi componente principale | pca | Ridurre le dimensioni dei dati e riallinearli in un sistema di coordinate più adatto. Aiuta ad affrontare la 'maledizione della dimensionalità' in dati linearmente correlati. Elimina la ridondanza e separa segnali significativi nei dati. |
Scaler standard | stdscaler | Ridimensiona le funzioni dei dati in un intervallo standard. Questo aiuta l'efficacia e l'efficienza di alcuni algoritmi di apprendimento e di altre trasformazioni come PCA. |
Logaritmo | log | Riduce l'asimmetria delle funzioni e le rende più simmetriche. La simmetria risultante nelle feature aiuta gli algoritmi a comprendere meglio i dati. La scalabilità uniforme basata sulla media e sulla varianza è più significativa nei dati simmetrici. Inoltre, può catturare specifiche relazioni fisiche tra la funzione e la destinazione che è meglio descritta attraverso un logaritmo. |
Root cubo | cbrt | Riduce l'asimmetria destra nei dati come il logaritmo, ma è più debole del log nel suo impatto, che potrebbe essere più adatto in alcuni casi. Si applica anche ai valori negativi o zero a cui il log non si applica. La radice del cubo può anche modificare le unità come la riduzione del volume alla lunghezza. |
Radice quadrata | quadrato | Riduce l'asimmetria destra dei dati. È più debole del log o della root cubo. Funziona con zeri e riduce le dimensioni spaziali come l'area alla lunghezza. |
Quadrato | quadrato | Riduce l'asimmetria sinistra in misura moderata per rendere tali distribuzioni più simmetriche. Può anche essere utile per catturare alcuni fenomeni come la crescita super - lineare. |
Prodotto | prodotto | Un prodotto di due funzioni può esporre una relazione non lineare per prevedere meglio il valore di destinazione rispetto ai singoli valori. Ad esempio, il costo dell'articolo nel numero di articoli venduti è un'indicazione migliore della dimensione di un'azienda rispetto a qualsiasi altro prodotto da solo. |
XOR numerico | nxor | Questa trasformazione consente di catturare il tipo di "disgiunzione esclusiva" delle relazioni tra le variabili, simile a un XOR bitwise, ma in un contesto numerico generale. |
Somma | somma | A volte la somma di due funzioni è correlata meglio all'obiettivo di previsione rispetto alle sole funzioni. Ad esempio, i prestiti provenienti da diverse fonti, una volta riassunti, forniscono un'idea migliore dell'indebitamento totale di un richiedente il credito. |
Dividi | dividere | 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 | Prendi il più alto dei due valori. |
Arrotondamento | arrotondare | Questa trasformazione può essere vista come una perturbazione o l'aggiunta di un certo rumore per ridurre il sovradattamento che potrebbe essere il risultato di osservazioni inaccurate. |
Valore assoluto | abs | Considerate solo la grandezza e non il segno dell'osservazione. A volte, la direzione o il segno di un'osservazione non importa tanto quanto la sua grandezza, come 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, simile a quella delle funzioni di attivazione della rete neurale. |
Seno | SIN | Può riorientare i dati per scoprire tendenze periodiche come semplici movimenti armonici. |
Coseno | lattuga romana | Può riorientare i dati per scoprire tendenze periodiche come semplici movimenti armonici. |
Tangente | TAN | La trasformazione tangente trigonometrica è di norma utile in combinazione con altre trasformazioni. |
Agglomerazione funzioni | Agglomerazione funzioni | Raggruppare diverse funzioni in gruppi, in base alla distanza o all'affinità, fornisce facilità di classificazione per l'algoritmo di apprendimento. |
Sigmoide | sigmoide | La funzione di attivazione non lineare può migliorare l'accuratezza della previsione, simile a quella delle funzioni di attivazione della rete neurale. |
Foresta di isolamento | isoforestanomalia | Esegue il clustering utilizzando un Isolation Forest per creare una nuova funzione contenente un punteggio di anomalia per ciascun esempio. |
da parola a vettore | word2vec | Questo algoritmo, utilizzato per l'analisi del testo, viene applicato prima di tutte le altre trasformazioni. Prende un corpus di testo come input e produce un insieme di vettori. Trasformando il testo in una rappresentazione numerica, può rilevare e confrontare parole simili. Quando viene addestrato con dati sufficienti, word2vec può effettuare 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 analisi delle opinioni. |
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. Viene eseguito esplorando gli intervalli di parametri di queste pipeline utilizzando un ottimizzatore di iperparametri black box denominato RBFOpt. RBFOpt è descritto nel documento di ricerca RBFOpt: an open-source library for black-box optimization with costly function evaluations. RBFOpt è adatto per gli esperimenti AutoAI perché è creato per ottimizzazioni con valutazioni costose, come nel caso dell'addestramento e del calcolo del punteggio di un algoritmo. L'approccio di RBFOpt crea e affina iterativamente un modello surrogato della funzione obiettivo sconosciuta per convergere rapidamente nonostante i lunghi tempi di valutazione di ogni iterazione.
FAQ AutoAI
Le seguenti sono le domande più comuni relative alla creazione di un esperimento AutoAI .
Quante pipeline vengono create?
Due parametri 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 utilizzare nella composizione della pipeline. Il valore predefinito è 1, dove viene utilizzato solo il più alto classificato per tipo di algoritmo di selezione del modello.
num_folds: numero di sottoinsiemi del dataset completo per addestrare le pipeline in aggiunta al dataset completo. Il valore predefinito è 1 per l'addestramento del dataset completo.
Per ciascun tipo di occorrenze e di algoritmi, AutoAI crea quattro pipeline di maggiore raffinazione, corrispondenti a:
- Pipeline con parametri sklearn predefiniti per questo tipo di algoritmi,
- Pipeline con algoritmo ottimizzato utilizzando HPO
- Pipeline con progettazione ottimizzata delle funzionalità
- Pipeline con funzioni ottimizzate 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 di iperparametri viene applicata al 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 si adatta a un modello gaussiano alla funzione obiettivo sconosciuta, RBfOpt si adatta a una modalità di funzione di base radiale per accelerare il rilevamento delle configurazioni iper - parametro che massimizzano la funzione obiettivo del problema di machine learning a portata di mano. Questa accelerazione si ottiene riducendo al minimo il numero di costose valutazioni di modelli di apprendimento automatico e eliminando la necessità di calcolare derivate parziali.
Per ogni fold e tipo di algoritmo, AutoAI crea due pipeline che utilizzano HPO per ottimizzare il tipo di algoritmo.
- Il primo è basato sull'ottimizzazione di questo tipo di algoritmi in base al dataset preelaborato (imputato/codificato/scalato) (pipeline 2) sopra).
- Il secondo si basa sull'ottimizzazione del tipo di algoritmo basato sulla progettazione ottimizzata della funzione del dataset preelaborato (imputato/codificato/scalato).
I valori dei parametri degli algoritmi di tutte le pipeline generate da AutoAI sono pubblicati in messaggi di stato.
Per ulteriori dettagli sull'algoritmo RbfOpt , consultare:
Come viene calcolata la significatività della funzione?
Quando si configura un esperimento di classificazione o regressione, è possibile specificare come gestire le funzioni senza alcun impatto sul modello. Le scelte sono di rimuovere sempre la funzione, rimuoverle quando migliora la qualità del modello o non rimuoverle. La significatività della funzione viene calcolata come segue:
- L'importanza della funzione viene calcolata sul campione di dati.
- Alcuni stimatori non dispongono di funzionalità integrate per restituire le importanze delle funzioni. In questi casi, uno stimatore come RandomForest viene utilizzato per misurare l'impatto.
- Il numero di funzioni è importante - se il valore di importanza per una funzione è 0.0000000001 ma esiste un numero elevato di funzioni di importanza bassa (ad esempio, più di 200), lasciarle o rimuoverle può avere un impatto sui risultati dell'esperimento.
In modalità automatica, i seguenti passi vengono utilizzati per confermare che la rimozione di funzioni di bassa importanza non influisce sui risultati dell'esperimento:
- Se la rimozione di tutte le funzioni con importanza 0 calcolata ha un certo impatto sulla precisione del modello, l'algoritmo di analisi del componente principale viene applicato a tali funzioni e seleziona i componenti K principali che spiegano il 90% della varianza tra tali funzioni insignificanti.
- Successivamente, i componenti trasformati vengono utilizzati come nuove funzioni al posto di quelle originali e il modello viene nuovamente valutato.
- Se c'è ancora un calo di precisione, tutte le funzioni originali vengono aggiunte di nuovo all'esperimento.
Riferimenti di ricerca
Questo elenco include alcuni degli articoli di ricerca fondamentali che descrivono in dettaglio come AutoAI è stato progettato e implementato per promuovere la fiducia e la trasparenza nel processo di creazione del modello automatizzato.
Passi successivi
Assegnazione dati in esperimenti AutoAI
Argomento principale AutoAI