Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara La Casualità della Foresta | Random Forest
Classificazione con Python

bookLa Casualità della Foresta

Random Forest costruisce un grande numero di alberi decisionali - tipicamente intorno a 100 o anche di più. Creare così tanti alberi diversi non è semplice solo modificando le impostazioni, quindi viene introdotta la casualità per aiutare. Fortunatamente, gli alberi decisionali sono molto sensibili a piccoli cambiamenti nei dati e nelle impostazioni, il che porta naturalmente a una vasta varietà di alberi nella foresta.

Ci sono due fonti di casualità in una Random Forest:

  1. Campionamento dei dati per ogni albero;
  2. Campionamento delle caratteristiche a ogni nodo decisionale di ciascun albero.

Campionamento dei dati

Per creare un set di addestramento diverso per ogni albero decisionale in una foresta, si utilizza il metodo bootstrap (noto anche come bagging). L'idea è di campionare, con reinserimento, un dataset della stessa dimensione per ogni albero.

Per impostazione predefinita, la dimensione del dataset di ciascun albero corrisponde alla dimensione del dataset originale. Il campionamento con reinserimento può essere visto come una selezione casuale di un punto dati dal set di addestramento - simile all'estrazione di una carta da un mazzo. Tuttavia, a differenza dell'estrazione normale, ogni punto dati selezionato non viene rimosso, quindi lo stesso punto dati può essere scelto più volte.

Ogni albero viene addestrato su un sottoinsieme diverso dei dati, il che già contribuisce a rendere gli alberi eterogenei. Per aggiungere ancora più casualità e velocizzare l'addestramento, è possibile anche limitare il numero di caratteristiche che ogni albero considera durante le suddivisioni.

Campionamento delle Caratteristiche

In un albero decisionale standard, ogni nodo esamina tutte le caratteristiche disponibili per trovare la migliore suddivisione, solitamente calcolando metriche come l'impurità di Gini. Questo processo è computazionalmente oneroso.

In una Random Forest, solo un sottoinsieme casuale di caratteristiche viene considerato a ciascun nodo. Questo accelera l'addestramento e aggiunge casualità, contribuendo a rendere gli alberi più diversi. Un approccio comune consiste nell'utilizzare la radice quadrata del numero totale di caratteristiche. Ad esempio, se ci sono 9 caratteristiche, 3 potrebbero essere scelte casualmente a ciascun nodo; se ci sono 10.000 caratteristiche, circa 100 potrebbero essere selezionate.

Le caratteristiche vengono campionate senza reinserimento, quindi la stessa caratteristica non apparirà più di una volta in un singolo nodo. Il numero di caratteristiche da considerare può essere regolato in base al caso d'uso.

È possibile controllare quante caratteristiche vengono considerate a ciascun nodo decisionale utilizzando il parametro max_features nell'implementazione di scikit-learn. Ecco alcune delle scelte più comuni:

  • max_features='sqrt': utilizza la radice quadrata del numero totale di caratteristiche. Questo è un valore predefinito comune che bilancia accuratezza ed efficienza;
  • max_features='log2': utilizza il logaritmo in base 2 del numero totale di caratteristiche, offrendo ancora più casualità;
  • max_features=0.1: utilizza il 10% delle caratteristiche, dove il valore è trattato come proporzione.
Note
Nota

È anche possibile impostare max_features su qualsiasi proporzione tra 0 e 1 (ad esempio, max_features=0.1 utilizza il 10% delle caratteristiche).

In sintesi, una Random Forest è progettata in modo che ogni albero venga addestrato su un campione diverso dei dati e ogni nodo decisionale all'interno di questi alberi consideri un diverso sottoinsieme casuale di caratteristiche. Questa casualità integrata porta a una collezione diversificata di alberi, che alla fine migliora le prestazioni complessive del modello.

question mark

Cosa ci aiuta a ottenere la casualità in una Random Forest? Seleziona tutte le risposte corrette.

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 2

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 4.17

bookLa Casualità della Foresta

Scorri per mostrare il menu

Random Forest costruisce un grande numero di alberi decisionali - tipicamente intorno a 100 o anche di più. Creare così tanti alberi diversi non è semplice solo modificando le impostazioni, quindi viene introdotta la casualità per aiutare. Fortunatamente, gli alberi decisionali sono molto sensibili a piccoli cambiamenti nei dati e nelle impostazioni, il che porta naturalmente a una vasta varietà di alberi nella foresta.

Ci sono due fonti di casualità in una Random Forest:

  1. Campionamento dei dati per ogni albero;
  2. Campionamento delle caratteristiche a ogni nodo decisionale di ciascun albero.

Campionamento dei dati

Per creare un set di addestramento diverso per ogni albero decisionale in una foresta, si utilizza il metodo bootstrap (noto anche come bagging). L'idea è di campionare, con reinserimento, un dataset della stessa dimensione per ogni albero.

Per impostazione predefinita, la dimensione del dataset di ciascun albero corrisponde alla dimensione del dataset originale. Il campionamento con reinserimento può essere visto come una selezione casuale di un punto dati dal set di addestramento - simile all'estrazione di una carta da un mazzo. Tuttavia, a differenza dell'estrazione normale, ogni punto dati selezionato non viene rimosso, quindi lo stesso punto dati può essere scelto più volte.

Ogni albero viene addestrato su un sottoinsieme diverso dei dati, il che già contribuisce a rendere gli alberi eterogenei. Per aggiungere ancora più casualità e velocizzare l'addestramento, è possibile anche limitare il numero di caratteristiche che ogni albero considera durante le suddivisioni.

Campionamento delle Caratteristiche

In un albero decisionale standard, ogni nodo esamina tutte le caratteristiche disponibili per trovare la migliore suddivisione, solitamente calcolando metriche come l'impurità di Gini. Questo processo è computazionalmente oneroso.

In una Random Forest, solo un sottoinsieme casuale di caratteristiche viene considerato a ciascun nodo. Questo accelera l'addestramento e aggiunge casualità, contribuendo a rendere gli alberi più diversi. Un approccio comune consiste nell'utilizzare la radice quadrata del numero totale di caratteristiche. Ad esempio, se ci sono 9 caratteristiche, 3 potrebbero essere scelte casualmente a ciascun nodo; se ci sono 10.000 caratteristiche, circa 100 potrebbero essere selezionate.

Le caratteristiche vengono campionate senza reinserimento, quindi la stessa caratteristica non apparirà più di una volta in un singolo nodo. Il numero di caratteristiche da considerare può essere regolato in base al caso d'uso.

È possibile controllare quante caratteristiche vengono considerate a ciascun nodo decisionale utilizzando il parametro max_features nell'implementazione di scikit-learn. Ecco alcune delle scelte più comuni:

  • max_features='sqrt': utilizza la radice quadrata del numero totale di caratteristiche. Questo è un valore predefinito comune che bilancia accuratezza ed efficienza;
  • max_features='log2': utilizza il logaritmo in base 2 del numero totale di caratteristiche, offrendo ancora più casualità;
  • max_features=0.1: utilizza il 10% delle caratteristiche, dove il valore è trattato come proporzione.
Note
Nota

È anche possibile impostare max_features su qualsiasi proporzione tra 0 e 1 (ad esempio, max_features=0.1 utilizza il 10% delle caratteristiche).

In sintesi, una Random Forest è progettata in modo che ogni albero venga addestrato su un campione diverso dei dati e ogni nodo decisionale all'interno di questi alberi consideri un diverso sottoinsieme casuale di caratteristiche. Questa casualità integrata porta a una collezione diversificata di alberi, che alla fine migliora le prestazioni complessive del modello.

question mark

Cosa ci aiuta a ottenere la casualità in una Random Forest? Seleziona tutte le risposte corrette.

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 2
some-alt