Adaboost in Sklearn

Adaboost in Sklearn
“Adaboost è una tecnica di potenziamento del gradiente utilizzata per convertire gli studenti deboli in forti. È ampiamente utilizzato in varie piattaforme di apprendimento automatico competitivo. Questo articolo discuterà dell'algoritmo Adaboost, dei suoi usi e della sua implementazione in Sklearn."

Cos'è l'apprendimento dell'ensemble?

Combinando molti modelli, l'apprendimento dell'ensemble migliora i risultati dell'apprendimento automatico. Rispetto all'utilizzo di un singolo modello, questa strategia consente la generazione di maggiori prestazioni di previsione. Al fine di ridurre la varianza (insaccamento), ridurre la distorsione (potenziamento) e migliorare le previsioni, gli approcci di ensemble fondono più tecniche di apprendimento automatico in un modello predittivo (impilamento).

Cos'è Adaboost?

Adaboost è un esempio di "apprendimento dell'ensemble", che prevede l'uso di molti studenti per creare un algoritmo di apprendimento più efficace. Adaboost opera selezionando un algoritmo di base (come gli alberi decisionali) e migliorandolo in modo incrementale considerando i campioni classificati in modo improprio nel set di addestramento. Selezioniamo un metodo di base e diamo ogni esempio di allenamento lo stesso peso. Il set di allenamento è soggetto all'algoritmo di base ad ogni iterazione e i pesi dei casi che sono stati erroneamente classificati sono aumentati. Applichiamo lo studente di base al set di allenamento con pesi aggiornati ogni volta che ripetiamo i tempi "n". La media ponderata degli studenti "N" costituisce il modello finale.

Perché usiamo Adaboost?

Poiché i parametri di input nell'algoritmo Adaboost non sono contemporaneamente ottimizzati, è meno influenzato dall'adattamento eccessivo. Applicando Adaboost, la precisione dei classificatori deboli può essere aumentata. Invece dei problemi di classificazione binaria, Adaboost viene anche utilizzato per risolvere i problemi di classificazione del testo e delle immagini. Adaboost è anche spesso impiegato in problemi di apprendimento automatico.

Implementazione di Adaboost in Sklearn

Importazione di biblioteche
da Sklearn.import ensemble adaboostclassifier
da Sklearn.set di dati Importa make_classification
Creazione del set di dati
X, y = make_classification (n_samples = 500, n_features = 4, n_informative = 2, n_redundant = 0, random_state = 0, shuffle = false)
Stampa ("Dati di funzionalità è", x)
print ("etichetta i dati è", y)

Produzione

I dati delle funzionalità sono [[0.44229321 0.08089276 0.54077359 -1.81807763]
[1.34699113 1.48361993 -0.04932407 0.2390336]
[-0.54639809 -1.1629494 -1.00033035 1.67398571]
..
[0.8903941 1.08980087 -1.53292105 -1.71197016]
[0.73135482 1.25041511 0.04613506 -0.95837448]
[0.26852399 1.70213738 -0.08081161 -0.70385904]]
I dati dell'etichetta sono [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]

Creare il modello e fare previsioni

Clf = AdaboostClassifier (N_ESTIMATOR = 100, random_state = 0)
CLF.Fit (x, y)
Print ("Etichetta di output è", CLF.prevedere ([1.5, 1, 0.5, -0.5]]))
stampa ("punteggio di classificazione è", CLF.Punteggio (x, y))

Produzione

L'etichetta di output è [1]
Il punteggio di classificazione è 0.94

Conclusione

Abbiamo discusso dell'algoritmo Adaboost nell'apprendimento automatico, inclusi l'apprendimento degli ensemble, i suoi vantaggi e l'implementazione in Sklearn. Questo è un algoritmo utile in quanto utilizza una serie di modelli per decidere l'output anziché uno e converte anche gli studenti deboli in studenti forti. Sklearn fornisce l'implementazione di Adaboost nella classe "Ensemble", in cui forniamo parametri personalizzati per il modello.