Articles

A complete guide to the random forest algorithm (Italiano)

Posted by admin

Random forest è un algoritmo di apprendimento automatico flessibile e facile da usare che produce, anche senza la messa a punto di iper-parametri, un ottimo risultato la maggior parte del tempo. È anche uno degli algoritmi più utilizzati, a causa della sua semplicità e diversità (può essere utilizzato sia per compiti di classificazione che di regressione). In questo post impareremo come funziona l’algoritmo della foresta casuale, come si differenzia dagli altri algoritmi e come usarlo.

Che cos’è la foresta casuale?,

Random forest è un algoritmo di apprendimento supervisionato. La” foresta “che costruisce, è un insieme di alberi decisionali, di solito addestrati con il metodo “insaccamento”. L’idea generale del metodo di insacco è che una combinazione di modelli di apprendimento aumenta il risultato complessivo.,

Sommario

  • Come funziona
  • vita Reale analogia
  • Funzione di importanza
  • Differenza tra la decisione di alberi e foreste casuali
  • Importante hyperparameters (potere predittivo, velocità)
  • Vantaggi e svantaggi
  • i casi d’Uso
  • Sommario

Come Casuale Foresta Funziona

Random forest è un algoritmo di apprendimento supervisionato. La” foresta “che costruisce, è un insieme di alberi decisionali, di solito addestrati con il metodo “insaccamento”., L’idea generale del metodo di insacco è che una combinazione di modelli di apprendimento aumenta il risultato complessivo.

In parole povere: random forest costruisce più alberi decisionali e li unisce insieme per ottenere una previsione più accurata e stabile.

Un grande vantaggio di random forest è che può essere utilizzato sia per problemi di classificazione che di regressione, che costituiscono la maggior parte degli attuali sistemi di apprendimento automatico. Diamo un’occhiata alla foresta casuale nella classificazione, dal momento che la classificazione è talvolta considerata l’elemento costitutivo dell’apprendimento automatico., Di seguito puoi vedere come sarebbe una foresta casuale con due alberi:

La foresta casuale ha quasi gli stessi iperparametri di un albero decisionale o di un classificatore di insacco. Fortunatamente, non è necessario combinare un albero decisionale con un classificatore di insacco perché è possibile utilizzare facilmente la classe classificatore della foresta casuale. Con random forest, puoi anche gestire attività di regressione utilizzando il regressore dell’algoritmo.

Random forest aggiunge ulteriore casualità al modello, mentre cresce gli alberi., Invece di cercare la caratteristica più importante durante la divisione di un nodo, cerca la caratteristica migliore tra un sottoinsieme casuale di caratteristiche. Ciò si traduce in un’ampia diversità che generalmente si traduce in un modello migliore.

Pertanto, nella foresta casuale, solo un sottoinsieme casuale delle funzionalità viene preso in considerazione dall’algoritmo per dividere un nodo. Puoi anche rendere gli alberi più casuali utilizzando inoltre soglie casuali per ogni caratteristica piuttosto che cercare le migliori soglie possibili (come fa un normale albero decisionale).,

Analogia della vita reale

Andrew vuole decidere dove andare durante una vacanza di un anno, quindi chiede suggerimenti alle persone che lo conoscono meglio. Il primo amico che cerca gli chiede delle simpatie e antipatie dei suoi viaggi passati. Sulla base delle risposte, darà ad Andrew qualche consiglio.

Questo è un tipico approccio dell’algoritmo dell’albero decisionale. L’amico di Andrew ha creato regole per guidare la sua decisione su ciò che dovrebbe raccomandare, usando le risposte di Andrew.,

In seguito, Andrew inizia a chiedere sempre più ai suoi amici di consigliarlo e gli fanno di nuovo domande diverse da cui possono trarre alcune raccomandazioni. Infine, Andrew sceglie i luoghi che dove raccomandare di più a lui, che è il tipico approccio algoritmo foresta casuale.

Feature Importance

Un’altra grande qualità dell’algoritmo random forest è che è molto facile misurare l’importanza relativa di ogni caratteristica sulla previsione., Sklearn fornisce un ottimo strumento per questo che misura l’importanza di una funzione osservando quanto i nodi dell’albero che utilizzano tale funzione riducono l’impurità su tutti gli alberi della foresta. Calcola questo punteggio automaticamente per ogni caratteristica dopo l’allenamento e scala i risultati in modo che la somma di tutta l’importanza sia uguale a uno.

Se non sai come funziona un albero decisionale o cosa sia una foglia o un nodo, ecco una buona descrizione da Wikipedia: ‘”In un albero decisionale ogni nodo interno rappresenta un ‘test’ su un attributo (ad esempio, se un lancio di monete arriva testa o croce), ogni ramo rappresenta il risultato del test e ogni nodo foglia rappresenta un’etichetta di classe (decisione presa dopo aver calcolato tutti gli attributi). Un nodo che non ha figli è una foglia.'”

Osservando l’importanza delle funzionalità puoi decidere quali funzionalità eliminare perché non contribuiscono abbastanza (o talvolta nulla) al processo di previsione. Questo è importante perché una regola generale nell’apprendimento automatico è che più funzioni hai più è probabile che il tuo modello soffrirà di overfitting e viceversa.,

Di seguito è riportata una tabella e una visualizzazione che mostra l’importanza di 13 funzionalità, che ho usato durante un progetto di classificazione supervisionato con il famoso set di dati Titanic su kaggle. Potete trovare l’intero progetto qui.

Differenza tra la Decisione di Alberi e Foreste Casuali

Mentre random forest è una collezione di alberi di decisione, ci sono alcune differenze.,

Se si immette un set di dati di formazione con funzionalità ed etichette in un albero decisionale, verrà formulata una serie di regole, che verranno utilizzate per fare le previsioni.

Ad esempio, per prevedere se una persona farà clic su un annuncio online, potresti raccogliere gli annunci su cui la persona ha fatto clic in passato e alcune funzionalità che descrivono la sua decisione. Se inserisci le caratteristiche e le etichette in un albero decisionale, genererà alcune regole che aiutano a prevedere se l’annuncio verrà cliccato o meno., In confronto, l’algoritmo random forest seleziona casualmente osservazioni e caratteristiche per costruire diversi alberi decisionali e quindi calcola la media dei risultati.

Un’altra differenza è che gli alberi decisionali “profondi” potrebbero soffrire di overfitting. La maggior parte delle volte, random forest impedisce questo creando sottoinsiemi casuali delle caratteristiche e costruendo alberi più piccoli usando quei sottoinsiemi. Successivamente, combina i sottoalberi. È importante notare che questo non funziona ogni volta e rende anche il calcolo più lento, a seconda di quanti alberi costruisce la foresta casuale.,

Iperparametri importanti

Gli iperparametri nella foresta casuale vengono utilizzati per aumentare la potenza predittiva del modello o per rendere il modello più veloce. Diamo un’occhiata agli iperparametri della funzione foresta casuale incorporata di sklearns.

1. Aumentando la potenza predittiva

In primo luogo, c’è l’iperparametro n_estimators, che è solo il numero di alberi che l’algoritmo costruisce prima di prendere il voto massimo o prendere le medie delle previsioni., In generale, un numero maggiore di alberi aumenta le prestazioni e rende le previsioni più stabili, ma rallenta anche il calcolo.

Un altro iperparametro importante è max_features, che è il numero massimo di funzionalità che random forest considera per dividere un nodo. Sklearn offre diverse opzioni, tutte descritte nella documentazione.

L’ultimo iperparametro importante è min_sample_leaf. Questo determina il numero minimo di fogli necessari per dividere un nodo interno.

2., Aumentando la velocità del modello

L’iperparametro n_jobs indica al motore quanti processori è consentito utilizzare. Se ha un valore di uno, può utilizzare solo un processore. Un valore di ” -1 ” significa che non c’è limite.

L’iperparametro random_state rende replicabile l’output del modello. Il modello produrrà sempre gli stessi risultati quando ha un valore definito di random_state e se gli sono stati dati gli stessi iperparametri e gli stessi dati di allenamento.

Infine, c’è l’oob_score (chiamato anche oob sampling), che è un metodo di validazione incrociata casuale della foresta., In questo campionamento, circa un terzo dei dati non viene utilizzato per addestrare il modello e può essere utilizzato per valutare le sue prestazioni. Questi campioni sono chiamati campioni fuori borsa. È molto simile al metodo leave-one-out-cross-validation, ma quasi nessun onere computazionale aggiuntivo va di pari passo con esso.

Vantaggi e svantaggi dell’algoritmo Random Forest

Uno dei maggiori vantaggi della random forest è la sua versatilità. Può essere utilizzato sia per le attività di regressione che di classificazione, ed è anche facile visualizzare l’importanza relativa che assegna alle funzionalità di input.,

Random forest è anche un algoritmo molto utile perché gli iperparametri predefiniti che utilizza spesso producono un buon risultato di previsione. Capire gli iperparametri è piuttosto semplice, e non ce ne sono molti.

Uno dei maggiori problemi nell’apprendimento automatico è l’overfitting, ma il più delle volte questo non accadrà grazie al classificatore di foresta casuale. Se ci sono abbastanza alberi nella foresta, il classificatore non si adatta troppo al modello.,

La limitazione principale della foresta casuale è che un gran numero di alberi può rendere l’algoritmo troppo lento e inefficace per le previsioni in tempo reale. In generale, questi algoritmi sono veloci da addestrare, ma piuttosto lenti a creare previsioni una volta addestrati. Una previsione più accurata richiede più alberi, il che si traduce in un modello più lento. Nella maggior parte delle applicazioni del mondo reale, l’algoritmo della foresta casuale è abbastanza veloce, ma ci possono essere certamente situazioni in cui le prestazioni in fase di esecuzione sono importanti e altri approcci sarebbero preferiti.,

E, naturalmente, random forest è uno strumento di modellazione predittiva e non uno strumento descrittivo, il che significa che se stai cercando una descrizione delle relazioni nei tuoi dati, altri approcci sarebbero migliori.

Random Forest Use Cases

L’algoritmo random forest viene utilizzato in molti campi diversi, come il settore bancario, il mercato azionario, la medicina e l’e-commerce.

In finanza, ad esempio, viene utilizzato per rilevare i clienti più propensi a rimborsare il loro debito in tempo, o utilizzare i servizi di una banca più frequentemente. In questo dominio viene anche utilizzato per rilevare i truffatori per truffare la banca., Nel trading, l’algoritmo può essere utilizzato per determinare il comportamento futuro di un titolo.

Nel settore sanitario viene utilizzato per identificare la corretta combinazione di componenti in medicina e per analizzare la storia medica di un paziente per identificare le malattie.

La foresta casuale viene utilizzata nell’e-commerce per determinare se un cliente apprezzerà effettivamente il prodotto o meno.

Sommario

Random forest è un ottimo algoritmo per allenarsi all’inizio del processo di sviluppo del modello, per vedere come si comporta. La sua semplicità rende la costruzione di una foresta casuale “cattiva” una proposta difficile.,

L’algoritmo è anche un’ottima scelta per chiunque abbia bisogno di sviluppare rapidamente un modello. Inoltre, fornisce un buon indicatore dell’importanza che assegna alle tue funzionalità.

Le foreste casuali sono anche molto difficili da battere in termini di prestazioni. Naturalmente, probabilmente si può sempre trovare un modello che può funzionare meglio, come una rete neurale per esempio, ma questi di solito richiedono più tempo per svilupparsi, anche se possono gestire un sacco di diversi tipi di funzionalità, come binario, categorico e numerico.,

Nel complesso, random forest è uno strumento (per lo più) veloce, semplice e flessibile, ma non senza alcune limitazioni.

Niklas Donges è un imprenditore, scrittore tecnico ed esperto di IA. Ha lavorato su un team AI di SAP per 1,5 anni, dopo di che ha fondato Markov Solutions. L’azienda con sede a Berlino è specializzata in intelligenza artificiale, machine learning e deep learning, offrendo soluzioni software personalizzate basate sull’IA e programmi di consulenza a varie aziende.

Leave A Comment