Tweet Share Share

Ultimo aggiornamento del 10 dicembre 2020

L’information gain calcola la riduzione dell’entropia o della sorpresa derivante dalla trasformazione di un dataset in qualche modo.

E’ comunemente usato nella costruzione di alberi decisionali da un set di dati di allenamento, valutando il guadagno di informazioni per ogni variabile, e selezionando la variabile che massimizza il guadagno di informazioni, che a sua volta minimizza l’entropia e divide meglio il set di dati in gruppi per una classificazione efficace.

Il guadagno di informazioni può anche essere usato per la selezione delle caratteristiche, valutando il guadagno di ogni variabile nel contesto della variabile obiettivo. In questo uso leggermente diverso, il calcolo è indicato come informazione reciproca tra le due variabili casuali.

In questo post, scoprirete il guadagno informativo e l’informazione reciproca nell’apprendimento automatico.

Dopo aver letto questo post, saprai:

  1. Che cos’è il guadagno di informazioni?
  2. Esempio di lavoro sul calcolo del guadagno di informazioni
  3. Esempi di guadagno di informazioni nell’apprendimento automatico
  4. Che cos’è la mutua informazione?
  5. Come sono correlati il guadagno di informazioni e la mutua informazione?

Che cos’è il guadagno di informazioni?

Il guadagno di informazioni, o IG in breve, misura la riduzione dell’entropia o della sorpresa, dividendo un set di dati secondo un dato valore di una variabile casuale.

Un guadagno di informazione maggiore suggerisce un gruppo o gruppi di campioni a più bassa entropia, e quindi meno sorpresa.

Potreste ricordare che l’informazione quantifica quanto un evento sia sorprendente in bit. Gli eventi a bassa probabilità hanno più informazione, gli eventi a più alta probabilità hanno meno informazione. L’entropia quantifica quanta informazione c’è in una variabile casuale, o più specificamente nella sua distribuzione di probabilità. Una distribuzione asimmetrica ha una bassa entropia, mentre una distribuzione in cui gli eventi hanno uguale probabilità ha un’entropia maggiore.

Nella teoria dell’informazione, ci piace descrivere la “sorpresa” di un evento. Gli eventi a bassa probabilità sono più sorprendenti, quindi hanno una maggiore quantità di informazione. Mentre le distribuzioni di probabilità in cui gli eventi sono ugualmente probabili sono più sorprendenti e hanno una maggiore entropia.

  • Distribuzione di probabilità obliqua (non sorprendente): Bassa entropia.
  • Distribuzione di probabilità bilanciata (sorprendente): Alta entropia.

Per maggiori informazioni sulle basi dell’informazione e dell’entropia, vedi il tutorial:

  • Un’introduzione gentile all’entropia dell’informazione

Ora, consideriamo l’entropia di un set di dati.

Possiamo pensare all’entropia di un set di dati in termini di distribuzione di probabilità delle osservazioni nel set di dati appartenenti a una classe o a un’altra, per esempio due classi nel caso di un set di dati di classificazione binaria.

Una interpretazione dell’entropia dalla teoria dell’informazione è che essa specifica il numero minimo di bit di informazione necessari per codificare la classificazione di un membro arbitrario di S (cioè, un membro di S estratto a caso con probabilità uniforme).

– Page 58, Machine Learning, 1997.

Per esempio, in un problema di classificazione binaria (due classi), possiamo calcolare l’entropia del campione di dati come segue:

  • Entropia = -(p(0) * log(P(0)) + p(1) * log(P(1)))

Un set di dati con una divisione 50/50 dei campioni per le due classi avrebbe un’entropia massima (sorpresa massima) di 1 bit, mentre un set di dati sbilanciato con una divisione di 10/90 avrebbe un’entropia minore poiché ci sarebbe meno sorpresa per un esempio estratto a caso dal set di dati.

Si può dimostrare questo con un esempio di calcolo dell’entropia per questo set di dati sbilanciato in Python. L’esempio completo è elencato di seguito.

Eseguendo l’esempio, possiamo vedere che l’entropia del dataset per la classificazione binaria è inferiore a 1 bit. Cioè, meno di un bit di informazione è richiesto per codificare l’etichetta di classe per un esempio arbitrario dal set di dati.

1
entropia: 0.469 bit

In questo modo, l’entropia può essere usata come calcolo della purezza di un set di dati, ad es.Un’entropia di 0 bit indica un dataset contenente una classe; un’entropia di 1 o più bit suggerisce la massima entropia per un dataset bilanciato (a seconda del numero di classi), con valori intermedi che indicano livelli tra questi estremi.

Il guadagno informativo fornisce un modo per usare l’entropia per calcolare come una modifica al dataset impatti sulla purezza del dataset, ad esempio la distribuzione delle classi. Un’entropia più piccola suggerisce più purezza o meno sorpresa.

… information gain, è semplicemente la riduzione attesa dell’entropia causata dal partizionamento degli esempi secondo questo attributo.

– Page 57, Machine Learning, 1997.

Per esempio, potremmo voler valutare l’impatto sulla purezza dividendo un dataset S da una variabile casuale con un intervallo di valori.

Questo può essere calcolato come segue:

  • IG(S, a) = H(S) – H(S | a)

dove IG(S, a) è l’informazione per il dataset S per la variabile a per una variabile casuale, H(S) è l’entropia per il dataset prima di qualsiasi cambiamento (descritto sopra) e H(S | a) è l’entropia condizionata per il dataset data la variabile a.

Questo calcolo descrive il guadagno nel set di dati S per la variabile a. È il numero di bit risparmiati quando si trasforma il set di dati.

L’entropia condizionata può essere calcolata dividendo il set di dati in gruppi per ogni valore osservato di a e calcolando la somma del rapporto degli esempi in ogni gruppo sull’intero set di dati moltiplicato per l’entropia di ogni gruppo.

  • H(S | a) = somma v in un Sa(v)/S * H(Sa(v))

Dove Sa(v)/S è il rapporto del numero di esempi nel dataset con variabile a ha il valore v, e H(Sa(v)) è l’entropia del gruppo di campioni dove la variabile a ha il valore v.

Questo potrebbe sembrare un po’ confuso.

Possiamo rendere concreto il calcolo del guadagno di informazione con un esempio lavorato.

Vuoi imparare la probabilità per l’apprendimento automatico

Prendi ora il mio corso crash gratuito di 7 giorni via email (con codice di esempio).

Clicca per iscriverti e ottieni anche una versione gratuita del corso in PDF Ebook.

Scarica il tuo mini-corso gratuito

Esempio di lavoro sul calcolo del guadagno di informazioni

In questa sezione, renderemo concreto il calcolo del guadagno di informazioni con un esempio di lavoro.

Possiamo definire una funzione per calcolare l’entropia di un gruppo di campioni in base al rapporto di campioni che appartengono alla classe 0 e alla classe 1.

Ora, consideriamo un set di dati con 20 esempi, 13 per la classe 0 e 7 per la classe 1. Possiamo calcolare l’entropia per questo set di dati, che avrà meno di 1 bit.

Consideriamo ora che una delle variabili nel set di dati abbia due valori unici, diciamo “valore1” e “valore2”. Ci interessa calcolare il guadagno di informazione di questa variabile.

Immaginiamo che se dividiamo il dataset per valore1, abbiamo un gruppo di otto campioni, sette per la classe 0 e uno per la classe 1. Possiamo quindi calcolare l’entropia di questo gruppo di campioni.

Ora, supponiamo di dividere il set di dati per valore2; abbiamo un gruppo di 12 campioni con sei in ogni gruppo. Ci aspetteremmo che questo gruppo abbia un’entropia di 1.

Infine, possiamo calcolare il guadagno di informazioni per questa variabile basandoci sui gruppi creati per ogni valore della variabile e l’entropia calcolata.

La prima variabile ha prodotto un gruppo di otto esempi dal dataset, e il secondo gruppo aveva i restanti 12 campioni nel set di dati. Pertanto, abbiamo tutto ciò di cui abbiamo bisogno per calcolare il guadagno di informazioni.

In questo caso, il guadagno informativo può essere calcolato come:

  • Entropia(Dataset) – (Conteggio(Gruppo1) / Conteggio(Dataset) * Entropia(Gruppo1) + Conteggio(Gruppo2) / Conteggio(Dataset) * Entropia(Gruppo2))

Oppure:

  • Entropia(13/20, 7/20) – (8/20 * Entropia(7/8, 1/8) + 12/20 * Entropia(6/12, 6/12))

Or in codice:

1
2
3
4

# calcolare il guadagno di informazione
guadagno = s_entropia – (8/20 * s1_entropia + 12/20 * s2_entropia)
print(‘Guadagno di informazione: %.3f bits’ % gain)

Collegando il tutto, l’esempio completo è elencato qui sotto.

Prima, l’entropia del dataset è calcolata a poco meno di 1 bit. Poi l’entropia per il primo e il secondo gruppo sono calcolati rispettivamente a circa 0,5 e 1 bit.

Infine, il guadagno di informazione per la variabile è calcolato a 0,117 bit. Cioè, il guadagno per il set di dati dividendolo attraverso la variabile scelta è di 0,117 bit.

1
2
3
4

Dataset Entropia: 0.934 bit
Gruppo1 Entropia: 0.544 bit
Gruppo2 Entropia: 1.000 bit
Guadagno informativo: 0.117 bit

Esempi di guadagno informativo nell’apprendimento automatico

Forse l’uso più popolare del guadagno informativo nell’apprendimento automatico è negli alberi decisionali.

Un esempio è l’algoritmo Iterative Dichotomiser 3, o ID3 in breve, usato per costruire un albero decisionale.

Il guadagno informativo è precisamente la misura usata da ID3 per selezionare l’attributo migliore ad ogni passo nella crescita dell’albero.

– Page 58, Machine Learning, 1997.

Il guadagno informativo è calcolato per ogni variabile nel dataset. La variabile che ha il più grande guadagno di informazione è selezionata per dividere il set di dati. Generalmente, un guadagno maggiore indica una minore entropia o meno sorpresa.

Nota che minimizzare l’entropia è equivalente a massimizzare il guadagno di informazione…

– Pagina 547, Machine Learning: A Probabilistic Perspective, 2012.

Il processo viene poi ripetuto su ogni gruppo creato, escludendo la variabile che era già stata scelta. Questo si ferma una volta raggiunta la profondità desiderata dell’albero decisionale o quando non sono più possibili altre suddivisioni.

Il processo di selezione di un nuovo attributo e di partizionamento degli esempi di formazione viene ora ripetuto per ogni nodo discendente non terminale, questa volta utilizzando solo gli esempi di formazione associati a quel nodo. Gli attributi che sono stati incorporati più in alto nell’albero sono esclusi, in modo che ogni dato attributo possa apparire al massimo una volta lungo qualsiasi percorso attraverso l’albero.

– Page 60, Machine Learning, 1997.

Il guadagno informativo può essere usato come criterio di divisione nella maggior parte delle moderne implementazioni di alberi decisionali, come l’implementazione dell’algoritmo Classification and Regression Tree (CART) nella libreria di apprendimento automatico scikit-learn Python nella classe DecisionTreeClassifier per la classificazione.

Questo può essere ottenuto impostando l’argomento criterio su “entropia” quando si configura il modello; per esempio:

1
2
3
4

# esempio di un albero decisionale allenato con guadagno di informazioni
da sklearn.tree import DecisionTreeClassifier
model = sklearn.tree.DecisionTreeClassifier(criterio=’entropia’)

Il guadagno di informazioni può anche essere usato per la selezione delle caratteristiche prima della modellazione.

Si tratta di calcolare il guadagno di informazioni tra la variabile obiettivo e ogni variabile di ingresso nel set di dati di allenamento. Il Weka machine learning workbench fornisce un’implementazione dell’information gain per la selezione delle caratteristiche attraverso la classe InfoGainAttributeEval.

In questo contesto di selezione delle caratteristiche, l’information gain può essere indicato come “mutua informazione” e calcola la dipendenza statistica tra due variabili. Un esempio di utilizzo del guadagno informativo (informazione reciproca) per la selezione delle caratteristiche è la funzione mutual_info_classif() di scikit-learn.

Che cos’è l’informazione reciproca?

L’informazione reciproca è calcolata tra due variabili e misura la riduzione dell’incertezza per una variabile dato un valore noto dell’altra variabile.

Una quantità chiamata informazione reciproca misura la quantità di informazioni che si possono ottenere da una variabile casuale data un’altra.

– Pagina 310, Data Mining: Practical Machine Learning Tools and Techniques, 4a edizione, 2016.

L’informazione reciproca tra due variabili casuali X e Y può essere dichiarata formalmente come segue:

  • I(X ; Y) = H(X) – H(X | Y)

dove I(X ; Y) è l’informazione reciproca per X e Y, H(X) è l’entropia per X e H(X | Y) è l’entropia condizionata per X dato Y. Il risultato ha le unità di bit.

L’informazione reciproca è una misura di dipendenza o “mutua dipendenza” tra due variabili casuali. Come tale, la misura è simmetrica, nel senso che I(X ; Y) = I(Y ; X).

Misura la riduzione media dell’incertezza su x che risulta dall’apprendimento del valore di y; o viceversa, la quantità media di informazioni che x trasmette su y.

– Page 139, Information Theory, Inference, and Learning Algorithms, 2003.

La divergenza di Kullback-Leibler, o KL, è una misura che calcola la differenza tra due distribuzioni di probabilità.

L’informazione reciproca può anche essere calcolata come la divergenza KL tra la distribuzione congiunta di probabilità e il prodotto delle probabilità marginali per ogni variabile.

Se le variabili non sono indipendenti, possiamo farci un’idea se sono ‘vicine’ all’indipendenza considerando la divergenza di Kullback-Leibler tra la distribuzione congiunta e il prodotto dei marginali che è chiamato informazione reciproca tra le variabili

– Pagina 57, Pattern Recognition and Machine Learning, 2006.

Questo può essere dichiarato formalmente come segue:

  • I(X ; Y) = KL(p(X, Y) || p(X) * p(Y))

L’informazione reciproca è sempre maggiore o uguale a zero, dove più grande è il valore, maggiore è la relazione tra le due variabili. Se il risultato calcolato è zero, allora le variabili sono indipendenti.

L’informazione reciproca è spesso usata come forma generale di un coefficiente di correlazione, ad esempio una misura della dipendenza tra variabili casuali.

E’ anche usata come un aspetto in alcuni algoritmi di apprendimento automatico. Un esempio comune è l’Independent Component Analysis, o ICA in breve, che fornisce una proiezione di componenti statisticamente indipendenti di un set di dati.

Come sono correlati Information Gain e Mutual Information?

Mutual Information e Information Gain sono la stessa cosa, anche se il contesto o l’uso della misura spesso dà origine a nomi diversi.

Per esempio:

  • Effetto delle trasformazioni a un set di dati (alberi decisionali): Information Gain.
  • Dipendenza tra variabili (selezione delle caratteristiche): Informazione reciproca.
  • Nota la somiglianza tra il modo in cui viene calcolata l’informazione reciproca e il modo in cui viene calcolato il guadagno di informazione; sono equivalenti:

    • I(X ; Y) = H(X) – H(X | Y)

    e

    • IG(S, a) = H(S) – H(S | a)

    Come tale, l’informazione reciproca è talvolta usata come sinonimo di guadagno informativo. Tecnicamente, calcolano la stessa quantità se applicate agli stessi dati.

    Possiamo intendere la relazione tra i due come maggiore è la differenza nelle distribuzioni di probabilità congiunte e marginali (informazione reciproca), maggiore è il guadagno di informazione (guadagno di informazione).

    Altre letture

    Questa sezione fornisce altre risorse sull’argomento se si vuole approfondire.

    Libri

    • Information Theory, Inference, and Learning Algorithms, 2003.
    • Machine Learning: A Probabilistic Perspective, 2012.
    • Pattern Recognition and Machine Learning, 2006.
    • Machine Learning, 1997.
    • Data Mining: Practical Machine Learning Tools and Techniques, 4th edition, 2016.

    API

    • scipy.stats.entropy API

    Articles

    • Entropia (information theory), Wikipedia.
    • Guadagno di informazione negli alberi di decisione, Wikipedia.
    • Algoritmo ID3, Wikipedia.
    • Rapporto di guadagno di informazione, Wikipedia.
    • Informazione reciproca, Wikipedia.

    Sommario

    In questo post, hai scoperto il guadagno di informazione e l’informazione reciproca nell’apprendimento automatico.

    Specificamente, hai imparato:

    • Il guadagno di informazione è la riduzione dell’entropia o sorpresa trasformando un set di dati ed è spesso usato nell’addestramento degli alberi di decisione.
    • Il guadagno di informazione è calcolato confrontando l’entropia del set di dati prima e dopo una trasformazione.
    • L’informazione reciproca calcola la dipendenza statistica tra due variabili ed è il nome dato all’information gain quando viene applicato alla selezione delle variabili.

    Hai qualche domanda?
    Fai le tue domande nei commenti qui sotto e farò del mio meglio per rispondere.

    Get a Handle on Probability for Machine Learning!

    Develop Your Understanding of Probability

    …con poche righe di codice python

    Scopri come nel mio nuovo Ebook:
    Probability for Machine Learning

    Fornisce tutorial di autoapprendimento e progetti end-to-end su:
    Teorema di Bayes, Ottimizzazione Bayesiana, Distribuzioni, Massima Probabilità, Cross-Entropia, Calibrazione dei Modelli
    e molto altro…

    Finalmente sfrutta l’incertezza nei tuoi progetti

    Fai a meno degli accademici. Solo risultati. Guarda cosa c’è dentro

    Tweet Share Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.