Tweet Share Share

Ultima actualizare la 10 decembrie 2020

Câștigul de informație calculează reducerea entropiei sau a surprizei din transformarea unui set de date într-un anumit mod.

Este utilizat în mod obișnuit în construcția arborilor de decizie dintr-un set de date de instruire, prin evaluarea câștigului de informație pentru fiecare variabilă și prin selectarea variabilei care maximizează câștigul de informație, care la rândul său minimizează entropia și împarte cel mai bine setul de date în grupuri pentru o clasificare eficientă.

Câștigul de informație poate fi, de asemenea, utilizat pentru selectarea caracteristicilor, prin evaluarea câștigului fiecărei variabile în contextul variabilei țintă. În această utilizare ușor diferită, calculul este denumit informație reciprocă între cele două variabile aleatoare.

În această postare, veți descoperi câștigul de informație și informația reciprocă în învățarea automată.

După ce veți citi această postare, veți ști:

  • Câștigul de informație este reducerea entropiei sau a surprizei prin transformarea unui set de date și este adesea utilizat în antrenarea arborilor de decizie.
  • Câștigul de informație se calculează prin compararea entropiei setului de date înainte și după o transformare.
  • Informația mutuală calculează dependența statistică dintre două variabile și este denumirea dată câștigului de informație atunci când este aplicată la selectarea variabilelor.

Dă startul proiectului tău cu noua mea carte Probability for Machine Learning, care include tutoriale pas cu pas și fișierele de cod sursă Python pentru toate exemplele.

Să începem.

  • Actualizare Nov/2019: Am îmbunătățit descrierea noțiunilor de bază despre informație/entropie (mulțumesc HR).
  • Actualizare Aug/2020: Adăugat parantezele lipsă la ecuație (mulțumesc David)

Ce este câștigul de informație și informația reciprocă pentru învățarea mașinilor
Fotografie de Giuseppe Milo, unele drepturi rezervate.

Overview

Acest tutorial este împărțit în cinci părți; acestea sunt:

  1. Ce este câștigul de informație?
  2. Exemplu practic de calcul al câștigului de informație
  3. Exemple de câștig de informație în învățarea automată
  4. Ce este informația mutuală?
  5. Cum sunt legate câștigul de informație și informația reciprocă?

Ce este câștigul de informație?

Câștigul de informație, sau IG pe scurt, măsoară reducerea entropiei sau a surprizei prin împărțirea unui set de date în funcție de o anumită valoare a unei variabile aleatoare.

Un câștig de informație mai mare sugerează un grup sau grupuri de eșantioane cu entropie mai mică și, prin urmare, o surpriză mai mică.

Să vă amintiți că informația cuantifică în biți cât de surprinzător este un eveniment. Evenimentele cu probabilitate mai mică au mai multă informație, iar evenimentele cu probabilitate mai mare au mai puțină informație. Entropia cuantifică cât de multă informație există într-o variabilă aleatoare sau, mai exact, în distribuția sa de probabilitate. O distribuție înclinată are o entropie scăzută, în timp ce o distribuție în care evenimentele au probabilitate egală are o entropie mai mare.

În teoria informației, ne place să descriem „surpriza” unui eveniment. Evenimentele cu probabilitate scăzută sunt mai surprinzătoare, prin urmare au o cantitate mai mare de informație. În timp ce distribuțiile de probabilitate în care evenimentele sunt la fel de probabile sunt mai surprinzătoare și au o entropie mai mare.

  • Distribuție de probabilitate înclinată (nesurprinzătoare): Entropie scăzută.
  • Distribuție de probabilitate echilibrată (surprinzătoare): Entropie mare.

Pentru mai multe informații despre elementele de bază ale informației și entropiei, consultați tutorialul:

  • O introducere delicată în entropia informației

Acum, să luăm în considerare entropia unui set de date.

Ne putem gândi la entropia unui set de date în ceea ce privește distribuția de probabilitate a observațiilor din setul de date aparținând unei clase sau alteia, de exemplu două clase în cazul unui set de date de clasificare binară.

O interpretare a entropiei din teoria informației este că aceasta specifică numărul minim de biți de informație necesari pentru a codifica clasificarea unui membru arbitrar al lui S (i.e., un membru al lui S extras la întâmplare cu probabilitate uniformă).

– Page 58, Machine Learning, 1997.

De exemplu, într-o problemă de clasificare binară (două clase), putem calcula entropia eșantionului de date după cum urmează:

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

Un set de date cu o împărțire 50/50 a eșantioanelor pentru cele două clase ar avea o entropie maximă (surpriză maximă) de 1 bit, în timp ce un set de date dezechilibrat cu o împărțire de 10/90 ar avea o entropie mai mică, deoarece ar exista o surpriză mai mică pentru un exemplu extras la întâmplare din setul de date.

Potem demonstra acest lucru cu un exemplu de calcul al entropiei pentru acest set de date dezechilibrat în Python. Exemplul complet este prezentat mai jos.

Executând exemplul, putem vedea că entropia setului de date pentru clasificarea binară este mai mică de 1 bit. Adică, este necesar mai puțin de un bit de informație pentru a codifica eticheta clasei pentru un exemplu arbitrar din setul de date.

1
entropie: 0.469 biți

În acest fel, entropia poate fi folosită ca un calcul al purității unui set de date, de ex.de exemplu, cât de echilibrată se întâmplă să fie distribuția claselor.

O entropie de 0 biți indică un set de date care conține o singură clasă; o entropie de 1 sau mai mulți biți sugerează entropia maximă pentru un set de date echilibrat (în funcție de numărul de clase), valorile intermediare indicând niveluri între aceste extreme.

Câștigul de informație oferă o modalitate de a utiliza entropia pentru a calcula modul în care o modificare a setului de date afectează puritatea setului de date, de exemplu, distribuția claselor. O entropie mai mică sugerează mai multă puritate sau mai puțină surpriză.

… câștigul de informație, este pur și simplu reducerea așteptată a entropiei cauzată de împărțirea exemplelor în funcție de acest atribut.

– Page 57, Machine Learning, 1997.

De exemplu, am putea dori să evaluăm impactul asupra purității prin împărțirea unui set de date S de către o variabilă aleatoare cu un interval de valori.

Aceasta poate fi calculată după cum urmează:

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

Unde IG(S, a) este informația pentru setul de date S pentru variabila a pentru o variabilă aleatoare, H(S) este entropia pentru setul de date înainte de orice schimbare (descrisă mai sus) și H(S | a) este entropia condiționată pentru setul de date având în vedere variabila a.

Acest calcul descrie câștigul în setul de date S pentru variabila a. Este numărul de biți economisiți la transformarea setului de date.

Entropia condiționată poate fi calculată prin împărțirea setului de date în grupuri pentru fiecare valoare observată a lui a și prin calcularea sumei raportului dintre exemplele din fiecare grup din întregul set de date înmulțit cu entropia fiecărui grup.

  • H(S | a) = suma v în a Sa(v)/S * H(Sa(v))

Unde Sa(v)/S este raportul dintre numărul de exemple din setul de date în care variabila a are valoarea v, iar H(Sa(v)) este entropia grupului de exemple în care variabila a are valoarea v.

Acesta ar putea părea puțin confuz.

Puteți concretiza calculul câștigului de informație cu un exemplu de lucru.

Vreți să învățați probabilitatea pentru învățarea automată

Faceți acum cursul meu rapid gratuit de 7 zile prin e-mail (cu cod de probă).

Click pentru a vă înscrie și primiți, de asemenea, o versiune gratuită a cursului în format PDF Ebook.

Download Your FREE Mini-Course

Worked Example of Calculating Information Gain

În această secțiune, vom concretiza calculul câștigului de informație cu un exemplu lucrat.

Potem defini o funcție pentru a calcula entropia unui grup de eșantioane pe baza raportului dintre eșantioanele care aparțin clasei 0 și clasei 1.

Considerăm acum un set de date cu 20 de exemple, 13 pentru clasa 0 și 7 pentru clasa 1. Putem calcula entropia pentru acest set de date, care va avea mai puțin de 1 bit.

Considerăm acum că una dintre variabilele din setul de date are două valori unice, să spunem „valoare1” și „valoare2”. Ne interesează să calculăm câștigul de informație al acestei variabile.

Să presupunem că, dacă împărțim setul de date după valoarea1, avem un grup de opt eșantioane, șapte pentru clasa 0 și unul pentru clasa 1. Putem calcula apoi entropia acestui grup de eșantioane.

Acum, să presupunem că împărțim setul de date în funcție de valoarea2; avem un grup de 12 eșantioane, cu șase în fiecare grup. Ne-am aștepta ca acest grup să aibă o entropie de 1.

În cele din urmă, putem calcula câștigul de informație pentru această variabilă pe baza grupurilor create pentru fiecare valoare a variabilei și a entropiei calculate.

Prima variabilă a avut ca rezultat un grup de opt exemple din setul de date, iar al doilea grup a avut cele 12 eșantioane rămase din setul de date. Prin urmare, avem tot ce ne trebuie pentru a calcula câștigul de informație.

În acest caz, câștigul de informație poate fi calculat ca:

  • Entropie(Set de date) – (Count(Group1) / Count(Dataset) * Entropy(Group1) + Count(Group2) / Count(Dataset) * Entropy(Group2))

Ou:

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

Sau în cod: În cod:

1
2
3
4

# calculați câștigul de informație
gain = s_entropie – (8/20 * s1_entropie + 12/20 * s2_entropie)
print(‘Câștigul de informație: %.3f bits’ % gain)

Legând toate acestea împreună, exemplul complet este listat mai jos.

În primul rând, entropia setului de date este calculată la puțin sub 1 bit. Apoi, entropia pentru primul și al doilea grup este calculată la aproximativ 0,5 și, respectiv, 1 bit.

În cele din urmă, câștigul de informație pentru variabilă este calculat la 0,117 biți. Adică, câștigul pentru setul de date prin divizarea acestuia prin intermediul variabilei alese este de 0,117 biți.

1
2
3
4

Dataset Entropy: 0.934 biți
Grup1 Entropie: 0.544 biți
Grup2 Entropie: 1.000 biți
Câștig de informație: 0.117 biți

Exemple de câștig informațional în învățarea automată

Poate cea mai populară utilizare a câștigului informațional în învățarea automată este în arborii de decizie.

Un exemplu este algoritmul Iterative Dichotomiser 3, sau ID3 pe scurt, utilizat pentru a construi un arbore de decizie.

Câștigul de informație este tocmai măsura folosită de ID3 pentru a selecta cel mai bun atribut la fiecare pas în creșterea arborelui.

– Pagina 58, Machine Learning, 1997.

Câștigul de informație este calculat pentru fiecare variabilă din setul de date. Variabila care are cel mai mare câștig de informație este selectată pentru a diviza setul de date. În general, un câștig mai mare indică o entropie mai mică sau mai puțină surpriză.

Rețineți că minimizarea entropiei este echivalentă cu maximizarea câștigului de informație …

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

Procesul se repetă apoi pe fiecare grup creat, excluzând variabila care a fost deja aleasă. Acest proces se oprește odată ce se atinge o adâncime dorită a arborelui de decizie sau când nu mai sunt posibile alte divizări.

Procesul de selectare a unui nou atribut și de partiționare a exemplelor de instruire se repetă acum pentru fiecare nod descendent neterminal, de data aceasta folosind doar exemplele de instruire asociate cu acel nod. Atributele care au fost încorporate mai sus în arbore sunt excluse, astfel încât orice atribut dat poate apărea cel mult o dată de-a lungul oricărei căi prin arbore.

– Page 60, Machine Learning, 1997.

Câștigul de informație poate fi utilizat ca un criteriu de divizare în majoritatea implementărilor moderne ale arborilor de decizie, cum ar fi implementarea algoritmului Classification and Regression Tree (CART) din biblioteca de învățare automată scikit-learn Python în clasa DecisionTreeClassifier pentru clasificare.

Acest lucru poate fi realizat prin setarea argumentului criteriu la „entropie” atunci când se configurează modelul; de exemplu:

1
2
3
4

# exemplu de arbore de decizie antrenat cu câștig de informație
din sklearn.tree import DecisionTreeClassifier
model = sklearn.tree.DecisionTreeClassifier(criterion=’entropy’)

Câștigul de informație poate fi, de asemenea, utilizat pentru selectarea caracteristicilor înainte de modelare.

Implică calcularea câștigului de informație între variabila țintă și fiecare variabilă de intrare din setul de date de instruire. Workbench-ul de învățare automată Weka oferă o implementare a câștigului de informație pentru selectarea caracteristicilor prin intermediul clasei InfoGainAttributeEval.

În acest context al selecției caracteristicilor, câștigul de informație poate fi denumit „informație reciprocă” și calculează dependența statistică dintre două variabile. Un exemplu de utilizare a câștigului de informație (informație mutuală) pentru selectarea caracteristicilor este funcția scikit-learn mutual_info_classif().

Ce este informația mutuală?

Informația mutuală este calculată între două variabile și măsoară reducerea incertitudinii pentru o variabilă, având în vedere o valoare cunoscută a celeilalte variabile.

O mărime numită informație mutuală măsoară cantitatea de informație pe care o poate obține cineva de la o variabilă aleatorie dată de o altă variabilă.

– Pagina 310, Data Mining: Practical Machine Learning Tools and Techniques, ediția a 4-a, 2016.

Informația reciprocă între două variabile aleatoare X și Y poate fi exprimată formal după cum urmează:

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

Unde I(X ; Y) este informația reciprocă pentru X și Y, H(X) este entropia pentru X și H(X | Y) este entropia condiționată pentru X dat fiind Y. Rezultatul are ca unități de măsură biți.

Informația mutuală este o măsură de dependență sau „dependență reciprocă” între două variabile aleatoare. Ca atare, măsura este simetrică, ceea ce înseamnă că I(X ; Y) = I(Y ; X).

Măsoară reducerea medie a incertitudinii cu privire la x care rezultă din învățarea valorii lui y; sau invers, cantitatea medie de informație pe care x o transmite despre y.

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

Diferența KL, sau divergența KL, este o măsură care calculează diferența dintre două distribuții de probabilitate.

Informația reciprocă poate fi, de asemenea, calculată ca divergența KL între distribuția de probabilitate comună și produsul probabilităților marginale pentru fiecare variabilă.

Dacă variabilele nu sunt independente, ne putem face o idee dacă sunt „aproape” de a fi independente, luând în considerare divergența Kullback-Leibler între distribuția comună și produsul probabilităților marginale, care se numește informație reciprocă între variabile

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

Aceasta poate fi enunțată formal după cum urmează:

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

Informația mutuală este întotdeauna mai mare sau egală cu zero, unde cu cât valoarea este mai mare, cu atât mai mare este relația dintre cele două variabile. Dacă rezultatul calculat este zero, atunci variabilele sunt independente.

Informația mutuală este adesea utilizată ca o formă generală a unui coeficient de corelație, de exemplu, o măsură a dependenței dintre variabilele aleatoare.

Este, de asemenea, utilizată ca aspect în unii algoritmi de învățare automată. Un exemplu comun este Analiza Componentelor Independente, sau ICA pe scurt, care oferă o proiecție a componentelor independente din punct de vedere statistic ale unui set de date.

Cum sunt legate Câștigul de informație și Informația reciprocă?

Informația reciprocă și Câștigul de informație sunt același lucru, deși contextul sau utilizarea măsurii dă adesea naștere la denumiri diferite.

De exemplu:

  • Efectul transformărilor asupra unui set de date (arbori de decizie): Câștig de informație.
  • Dependența dintre variabile (selecție de caracteristici): Informații reciproce.

Rețineți similitudinea dintre modul în care se calculează informația reciprocă și modul în care se calculează câștigul de informație; acestea sunt echivalente:

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

și

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

Ca atare, informația mutuală este uneori folosită ca sinonim pentru câștig de informație. Din punct de vedere tehnic, ele calculează aceeași cantitate dacă sunt aplicate acelorași date.

Potem înțelege relația dintre cele două ca fiind cu atât mai mare diferența dintre distribuțiile de probabilitate comună și marginală (informație reciprocă), cu cât este mai mare câștigul de informație (câștig de informație).

Lecturi suplimentare

Această secțiune oferă mai multe resurse pe această temă, dacă doriți să aprofundați.

Cărți

  • 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, ediția a 4-a, 2016.

API

  • scipy.stats.entropy API

Articole

  • Entropie (teoria informației), Wikipedia.
  • Information gain in decision trees, Wikipedia.
  • Algoritmul ID3, Wikipedia.
  • Information gain ratio, Wikipedia.
  • Mutual Information, Wikipedia.
  • Mutual Information, Wikipedia.

Rezumat

În această postare, ați descoperit câștigul de informație și informația reciprocă în învățarea automată.

În mod specific, ați învățat:

  • Câștigul de informație este reducerea entropiei sau a surprizei prin transformarea unui set de date și este adesea utilizat în antrenarea arborilor de decizie.
  • Câștigul de informație se calculează prin compararea entropiei setului de date înainte și după o transformare.
  • Informația mutuală calculează dependența statistică dintre două variabile și este numele dat câștigului de informație atunci când este aplicat la selectarea variabilelor.

Aveți întrebări?
Puneți întrebările dvs. în comentariile de mai jos și voi face tot posibilul să vă răspund.

Cunoașteți probabilitatea pentru Machine Learning!

Dezvoltați-vă înțelegerea probabilității

….cu doar câteva linii de cod python

Descoperiți cum în noul meu Ebook:
Probability for Machine Learning

Acesta oferă tutoriale de autoinstruire și proiecte end-to-end pe:
Teorema Bayes, Optimizare Bayesiană, Distribuții, Maximă verosimilitate, Entropie încrucișată, Calibrarea modelelor
și multe altele….

În sfârșit valorificați incertitudinea în proiectele dumneavoastră

Scăpați de academicieni. Just Results.See What’s Inside

Tweet Share Share Share

Lasă un răspuns

Adresa ta de email nu va fi publicată.