Apprendimento dell'ensemble in Python con l'esempio

Apprendimento dell'ensemble in Python con l'esempio

Non c'è segreto che l'apprendimento automatico stia migliorando con il tempo e i modelli predittivi. I modelli predittivi formano il nucleo dell'apprendimento automatico. È bene migliorare l'accuratezza del modello per risultati migliori nel modello di apprendimento automatico. Una tecnica chiamata "Ensemble Machine Learning" viene utilizzata per aumentare le prestazioni e l'accuratezza di un modello.

Ensemble Learning utilizza diversi modelli di apprendimento automatico per cercare di fare previsioni migliori sul set di dati. Le previsioni di un modello sono combinate in un modello di ensemble per rendere il successo della previsione finale. Tuttavia, molte persone non hanno familiarità con l'apprendimento automatico dell'ensemble. Leggere sotto; Spieghiamo tutto su questa tecnica di apprendimento automatico usando Python con esempi appropriati.

Supponiamo che tu stia partecipando a un gioco curiosità e di avere una buona conoscenza di alcuni argomenti, ma non sai niente altri pochi argomenti. A un membro del team sarebbe tenuto a coprire tutti gli argomenti di gioco se si desidera ottenere un punteggio massimo nel gioco. È l'idea di base alla base dell'apprendimento dell'ensemble in cui combiniamo le previsioni da diversi modelli per un output accurato.

L'immagine mostra un esempio di schemi di un ensemble. Nell'immagine sopra, l'array di input è riempito da tre pipeline di preelaborazione e ci sono studenti di base. Tutti gli ensemble combinano le previsioni degli studenti di base nell'array di previsione finale "P".

Supponiamo che tu stia pensando di combinare tutte le previsioni. Se consideriamo l'esempio sopra, è facile rispondere quando hai una squadra; L'apprendimento automatico è lo stesso dei problemi di classificazione. Nell'apprendimento automatico, il sistema prende una previsione dell'etichetta di classe più comune equivalente alla regola della maggioranza. Tuttavia, ci sono diversi modi per combinare varie previsioni e puoi usare un modello per l'apprendimento per combinare le previsioni in modo appropriato.

Cos'è l'apprendimento dell'ensemble?

L'apprendimento automatico e le statistiche si stanno diffondendo in tutto il mondo, quindi abbiamo bisogno di tecniche diverse per aumentare le prestazioni di un modello predittivo per una migliore precisione. L'apprendimento dell'ensemble è una procedura per l'utilizzo di diversi modelli di apprendimento automatico e la costruzione di strategie per risolvere un problema specifico.

L'ensemble combina diversi set di modelli per improvvisare sulla potenza e la stabilità predittive. Secondo i modelli basati su ensemble, ci sono due scenari diversi, io.e., una quantità di dati più alta o inferiore.

Comprendiamo l'apprendimento dell'ensemble usando un esempio; Supponiamo di voler investire nella società "ABC", ma non siamo sicuri delle sue prestazioni. Quindi prendiamo consigli da persone diverse sulle prestazioni della società "ABC". Potremmo prendere il consiglio da:

Dipendenti della società "ABC": I dipendenti dell'azienda sanno tutto sulla funzionalità interna dell'azienda e tutte le informazioni interne. Tuttavia, i dipendenti non hanno una prospettiva più ampia sulla concorrenza, su come si sta evolvendo la tecnologia e sugli effetti sul prodotto dell'azienda "ABC". Secondo le informazioni e le esperienze passate, avere consigli da parte dei dipendenti è giusto del 65%.

Consulenti finanziari della società "ABC": I consulenti finanziari hanno una prospettiva più ampia sull'ambiente competitivo. Tuttavia, la consulenza del consulente finanziario della società è stata corretta del 75% in passato.

Trader del mercato azionario: Questi trader osservano sempre il prezzo delle azioni dell'azienda e conoscono le tendenze stagionali e le prestazioni complessive del mercato. Sviluppano anche un'istituzione acuta sulla variazione delle azioni nel tempo. Tuttavia, i consigli degli operatori del mercato azionario sono stati utili al 70% in passato.

Dipendenti dell'azienda del concorrente: Questi dipendenti conoscono le funzionalità interne dell'azienda di un concorrente e sono a conoscenza delle modifiche specifiche. Tuttavia, non hanno ogni vista della loro azienda e fattori esterni legati alla crescita del concorrente. Tuttavia, i dipendenti dell'azienda del concorrente erano in passato il 60%.

Team di ricerca di mercato: Questo team lavora per analizzare le preferenze del cliente del prodotto dell'azienda "ABC" sui concorrenti. Questo team si occupa della squadra del cliente per non essere a conoscenza della variazione che la società "ABC" porterà a causa dell'allineamento ai loro obiettivi. Tuttavia, il team di ricerche di mercato è stato utile al 75% in passato in passato.

Team di esperti di social media: Questo team è utile per capire come i prodotti dell'azienda "ABC" sono posizionati sul mercato. Analizzano anche i sentimenti del cliente che cambiano con l'azienda nel tempo. Team di esperti di social media ignaro di qualsiasi informazione oltre il marketing digitale. Quindi, sono il 65% di volte nel passato.

Nello scenario di cui sopra, abbiamo diversi aspetti del prendere una buona decisione in quanto il tasso di precisione può essere del 99%. Tuttavia, le ipotesi che abbiamo usato sopra sono indipendenti e leggermente estremi perché dovrebbero essere correlati.

Metodi di ensemble

Ora discutiamo le informazioni complete delle diverse tecniche di apprendimento dell'ensemble in Python:

Metodo di base dell'ensemble

Esistono tre tipi di tecniche nel metodo dell'ensemble di base e sono:

Voto massimo

Il principale lavoro di voto massimo viene utilizzato per risolvere i problemi di classificazione. Questo metodo ha più modelli indipendenti e l'output individuale è noto come "voto". Vengono utilizzati più modelli per prevedere ogni punto dati. La classe con un voto massimo tornerà come output. La previsione che gli utenti ottengono dalla maggior parte del modello verranno utilizzati come previsione finale.

Ad esempio, abbiamo cinque esperti per la valutazione di un prodotto, hanno fornito le valutazioni come questa:

Esperto 1 Esperto 2 Esperto 3 Esperto 4 Esperto 5 Valutazione finale
4 5 4 5 4 4

Ecco il codice di esempio per l'esempio sopra:

Modello1 = albero.DecisionTreEClassifier ()
Model2 = KneighBorsClassifier ()
Model3 = LogisticRegression ()
Modello1.fit (x_train, y_train)
Modello2.fit (x_train, y_train)
Modello3.fit (x_train, y_train)
PRED1 = Modello1.prevedere (x_test)
PRED2 = Modello2.prevedere (x_test)
PRED3 = Modello3.prevedere (x_test)
Final_pred = np.vettore([])
per i in gamma (0, len (x_test)):
Final_pred = np.append (Final_pred, modalità ([Pred1 [i], pred2 [i], pred3 [i]]))

Nel codice di esempio sopra, X_TRAIN è una variabile indipendente dei dati di allenamento e Y_TRAIN è una variabile target dei dati di allenamento. Qui x_train, x_test e y_test sono set di convalida.

Media

Ci sono più previsioni fatte per ogni punto dati nella media; è usato per il problema di regressione. In questa tecnica, troviamo una media di previsioni multiple dai modelli indicati, quindi utilizza questa media per ottenere una previsione finale.

Il metodo di media ha modelli indipendenti che vengono utilizzati per trovare la media delle previsioni. Generalmente, l'output combinato è più accurato dell'output individuale poiché la varianza è ridotta. Questo metodo viene utilizzato per fare previsioni appropriate nel problema della regressione o trovare la possibilità del problema della classificazione.

Se consideriamo l'esempio sopra, la media delle valutazioni sarà

Esperto 1 Esperto 2 Esperto 3 Esperto 4 Esperto 5 Valutazione finale
4 5 4 5 4 4

media delle valutazioni = (4+5+4+5+4+4)/5 = 4.4

Il codice di esempio per il problema di cui sopra sarà:

Modello1 = albero.DecisionTreEClassifier ()
Model2 = KneighBorsClassifier ()
Model3 = LogisticRegression ()
Modello1.fit (x_train, y_train)
Modello2.fit (x_train, y_train)
Modello3.fit (x_train, y_train)
PRED1 = Modello1.predict_proba (x_test)
PRED2 = Modello2.predict_proba (x_test)
PRED3 = Modello3.predict_proba (x_test)
FinalPred = (Pred1+Pred2+Pred3)/3

Media ponderata

Questo metodo è un tipo esteso del metodo medio poiché ai modelli vengono assegnati vari pesi che definiscono l'importanza di ogni modello per una previsione adeguata. Ad esempio, se una squadra ha due esperti e due principianti, l'importanza verrà data agli esperti anziché ai principianti.

Il risultato della media ponderata può essere calcolato come [(5 × 0.24) + (4 × 0.24) + (5 × 0.19) + (4 × 0.19) + (4 × 0.19)] = 4.68.

Fattori Esperto 1 Esperto 2 Esperto 3 Esperto 4 Esperto 5 Valutazione finale
peso 0.24 0.24 0.19 0.19 0.19
valutazione 5 4 5 4 4 4.68

Codice di esempio per l'esempio di cui sopra della media ponderata:

Modello1 = albero.DecisionTreEClassifier ()
Model2 = KneighBorsClassifier ()
Model3 = LogisticRegression ()
Modello1.fit (x_train, y_train)
Modello2.fit (x_train, y_train)
Modello3.fit (x_train, y_train)
PRED1 = Modello1.predict_proba (x_test)
PRED2 = Modello2.predict_proba (x_test)
PRED3 = Modello3.predict_proba (x_test)
FinalPred = (Pred1*0.3+pred2*0.3+Pred3*0.4)

Metodi avanzati di ensemble

Impilamento

Metodo di stacking, più modelli come regressione o classificazione sono combinati attraverso un meta-modello. In altre parole, questo metodo utilizza diverse previsioni da vari modelli per la costruzione di un nuovo modello. Tutti i modelli di base sono adeguatamente addestrati sul set di dati, quindi un meta-modello è correttamente addestrato sulle funzionalità restituite dai modelli di base. Pertanto, un modello di base nello stacking è specificamente diverso e il meta-modello è utile per trovare le caratteristiche dal modello di base per ottenere una grande precisione. Lo stacking ha un passaggio algoritmo specifico di seguito:

  • Innanzitutto, allena un set di dati in N Parti.
  • Il modello di base sarà montato nelle parti N-1 e le previsioni sono divise nell'ennesima parte. Richiede di essere eseguito per ogni anziana parte di un set di treni.
  • Il modello sarà montato su un set di dati completo del treno e questo modello verrà utilizzato per prevedere un set di dati di test.
  • Successivamente, la previsione su un set di dati del treno verrà utilizzata come funzionalità per creare un nuovo modello.
  • Finalmente, il modello finale verrà utilizzato per prevedere su un set di dati di test.

Miscelare

La fusione è la stessa del metodo di impilamento, ma utilizza un set di holdout da un treno set per fare le previsioni. In parole semplici, Blending utilizza un set di dati di convalida e lo mantiene separato per fare le previsioni invece di utilizzare un set di dati completo per addestrare un modello di base. Quindi ecco i passaggi algoritmici che possiamo usare nella fusione:

  • Innanzitutto, dobbiamo dividere set di dati di formazione in diversi set di dati come set di dati di test, convalida e formazione.
  • Ora, inserisci il modello di base con un set di dati di allenamento.
  • Successivamente, prevedi il set di dati di test e validazione.
  • Le previsioni di cui sopra vengono utilizzate come caratteristica per la costruzione del modello di secondo livello.
  • Infine, il modello di secondo livello viene utilizzato per fare le previsioni sul test e sulla meta-caratteristica.

Insaccamento

Il bagaglio è anche chiamato metodo di bootstrap; combina i risultati di diversi modelli per ottenere risultati generalizzati. In questo metodo, un modello di base viene eseguito sui sacchi o sottoinsiemi per ottenere una distribuzione equa di un set di dati completo. Questi sacchetti sono sottoinsiemi di un set di dati con la sostituzione per fare le dimensioni di una borsa simile a un set di dati completo. L'output di insaccamento si forma una volta che tutti i modelli di base sono combinati per l'uscita. Esiste un algoritmo specifico per l'accattonaggio come di seguito:

  • Innanzitutto, creare set di dati diversi da un set di dati di formazione scegliendo le osservazioni con una sostituzione.
  • Ora, eseguire modelli di base su ogni set di dati creati in modo indipendente.
  • Infine, combina tutte le previsioni del modello di base ad ogni risultato finale.

Potenziamento

Il potenziamento funziona per evitare che il modello di base errato influisca su un output finale, piuttosto che combinare un modello di base, aumentando il focalizzato sulla creazione di un nuovo modello dipendente da un precedente. Questo nuovo modello rimuove tutti gli errori dei modelli precedenti e ogni modello è noto come studente debole. Il modello finale è chiamato uno studente forte, creato ottenendo una media ponderata degli studenti deboli. È una procedura sequenziale in cui ogni modello successivo lavora per correggere errori dei modelli precedenti. Di seguito sono riportati i passaggi sequenziali dell'algoritmo per il potenziamento:

  • Innanzitutto, prendi il sottoinsieme di un set di dati di addestramento e quindi forma il modello di base sul set di dati.
  • Ora, usa il terzo modello per fare previsioni su un set di dati completo.
  • Successivamente, calcola l'errore dal valore previsto e effettivo.
  • Una volta calcola l'errore, quindi inizializza il punto dati con lo stesso peso.
  • Ora, assegna un peso più elevato al punto dati previsto in modo errato.
  • Successivamente, crea un nuovo modello rimuovendo gli errori precedenti e fai previsioni appropriate dal nuovo modello.
  • Dobbiamo creare diversi modelli, ogni modello successivo correggendo gli errori degli ultimi modelli.
  • Infine, lo studente forte o il modello finale è una media ponderata dello studente precedente o debole.

Conclusione

Ciò conclude la nostra spiegazione dettagliata dell'apprendimento dell'ensemble con gli esempi appropriati in Python. Come accennato in precedenza, Ensemble Learning ha più previsioni, quindi in altre parole, usiamo più modelli per trovare l'output più accurato possibile. Abbiamo citato tipi di apprendimento dell'ensemble con esempi e algoritmi. Esistono più metodi per scoprire i risultati utilizzando più previsioni. Secondo molti data scientist, Ensemble Learning offre l'output più accurato possibile in quanto utilizza più previsioni o modelli.