Până acum, imaginea noastră despre clasificare a fost foarte generală. Nu am spus nimic despre cum ar putea funcționa de fapt clasificatorul nostru; am spus doar că, având în vedere valorile pentru fiecare dintre caracteristici, acesta va oferi o predicție despre cum va fi eticheta.
În capitolele 27 și 28, vom studia un anumit algoritm pentru clasificare în învățarea automată: algoritmul arborelui decizional. Nu numai că reprezintă o tehnică introductivă bună datorită atractivității sale intuitive și nu numai că poate clasifica destul de bine în sine, dar servește și ca bază pentru o metodă de clasificare mai sofisticată, de ultimă generație, numită „pădure aleatorie”, pe care o vom explora în volumul doi al acestei serii.
Un exemplu funcțional
Iată o problemă de domeniu (fictivă) pe care o vom folosi pentru a demonstra principiile din acest capitol și din următorul. Să presupunem că deținem o afacere cu jocuri video și vrem să trimitem cataloage de produse color studenților neavizați, astfel încât aceștia să cumpere jocurile noastre și să ne mențină în afacere (în timp ce, între timp, eșuează la școală din cauza faptului că joacă mereu jocuri).
Acum, cataloagele color sunt scumpe de imprimat și expediat, așa că vrem să fim inteligenți în această privință. Cu siguranță nu vrem să trimitem o grămadă de cataloage studenților care nu sunt probabili cumpărători; asta ne-ar falimenta. În schimb, am dori să identificăm subsetul de studenți care probabil sunt jucători și să trimitem cataloage doar acelor studenți.
Să presupunem că, prin mijloace necinstite, am obținut următorul set de date:
| Materia | Vârsta | Gen | Jucător | |
| 0 | PSYC | 22 | F | Nu |
| 1 | MATH | 20 | F | Nu |
| 2 | PSYC | 19 | F | Nu |
| 3 | CPSC | 20 | M | Da |
| 4 | MATH | 18 | M | Da |
| 5 | CPSC | 20 | F | Nu |
| 6 | CPSC | 19 | O | Nu |
| 7 | CPSC | 17 | M | Da |
| 8 | PSYC | 18 | F | Nu |
| 9 | CPSC | 20 | F | Nu |
| 10 | MATH | 18 | F | Nu |
| 11 | CPSC | 22 | F | Da |
| 12 | MATH | 21 | M | Nu |
| 13 | CPSC | 23 | M | Da |
| 14 | PSYC | 17 | M | Da |
| 15 | CPSC | 18 | F | Nu |
| 16 | PSYC | 19 | F | Da |
Fiecare rând reprezintă un student, cu trei caracteristici. Prima este specializarea sa – PSYC (Psihologie), MATH (Matematică) sau CPSC (Informatică). (Pentru simplitate, vom spune că acestea sunt singurele trei posibilități, deoarece autorului tău îi plac cel mai mult.) A doua este vârsta lor (numerică), iar a treia este sexul lor: masculin, feminin sau altul. Ultima coloană este ținta noastră: dacă acest student este sau nu un jucător video. Aruncați o privire peste acest DataFrame pentru o clipă.
Cu ochii pe ce e important
După cum vă amintiți din secțiunea 26.3, înainte de a ne gândi la caracteristici, am putea să ne alocăm un minut pentru a analiza variabila țintă în sine. Ne întrebăm „dacă nu avem alte informații despre un student, care ar fi impresia noastră despre statutul său în jocuri video?” Prietena noastră, metoda .value_counts() este perfectă pentru a calcula asta:
print(students.VG.value_counts())
▌N 10 ▌Y 7 ▌Name: VG, dtype: int64
Deci, dacă suntem deștepți, am ghici „nu” pentru astfel de persoane misterioase, dar ne-am putea aștepta să avem dreptate doar în jurul valorii de 10/17, sau 59%, din cazuri. Nu e grozav, deși e mai bine decât o aruncare cu o monedă.
Rămânând la caracteristicile categorice
Acum se pare că arborii de decizie funcționează cel mai bine cu toate caracteristicile categorice, nu cu un amestec de categorice și numerice. Așadar, deocamdată, vom clasifica pur și simplu fiecare dintre studenții noștri în trei categorii: „tineri” (18 ani sau mai mici), „mijlocii” (19-21 ani) și „bătrâni” (22+)[1]. Deocamdată, nu întrebați de ce am ales trei categorii de vârstă în loc de două sau patru și nu întrebați de ce am ales acele puncte de divizare anume. Tocmai am făcut-o. Mai multe despre asta mai târziu.
Datele noastre de antrenament arată acum astfel:
| Materia | Vârsta | Gen | Jucător | |
| 0 | PSYC | bătrân | F | Nu |
| 1 | MATH | mijlociu | F | Nu |
| 2 | PSYC | mijlociu | F | Nu |
| 3 | CPSC | mijlociu | M | Da |
| 4 | MATH | tânăr | M | Da |
| 5 | CPSC | mijlociu | F | Nu |
| 6 | CPSC | mijlociu | O | Nu |
| 7 | CPSC | tânăr | M | Da |
| 8 | PSYC | tânăr | F | Nu |
| 9 | CPSC | mijlociu | F | Nu |
| 10 | MATH | tânăr | F | Nu |
| 11 | CPSC | bătrân | F | Da |
| 12 | MATH | mijlociu | M | Nu |
| 13 | CPSC | bătrân | M | Da |
| 14 | PSYC | tânăr | M | Da |
| 15 | CPSC | tânăr | F | Nu |
| 16 | PSYC | mijlociu | F | Da |
și acum suntem oficial pregătiți să luăm în considerare arborii decizionali.
Arbori decizionali
Mai întâi, să înțelegem ce este un arbore decizional. Exemplul nostru inaugural este prezentat în Figura 27.1. Primul lucru pe care îl veți observa este că are o structură ramificată care se ramifică… în jos. Nu sunt sigur de ce specialiștii în date desenează copaci care cresc în jos, în timp ce restul lumii (inclusiv copacii înșiși: uitați-vă afară dacă nu mă credeți) îi are crescând în sus, dar aceasta este convenția, așa că ne vom ocupa pur și simplu de asta. Pentru a fi și mai comic, ovalul din vârful arborelui se numește rădăcina arborelui. Serios.
Continuând analogia botanică, liniile care leagă diferitele forme sunt, așa cum ați putea bănui, numite ramuri, iar dreptunghiurile mai închise la culoare se numesc frunze. O parte din jargonul non-botanic este denumirea celorlalte ovale: acestea se numesc noduri.
Un arbore decizional (nu unul deosebit de bun, după cum se va dovedi) pentru setul de date despre jocuri video.
Clasificarea cu un arbore decizional
Bine. Acum ce „înseamnă” un arbore decizional? Pe scurt, este codificarea picturală a unui algoritm de clasificare. Mai liber spus, este o hartă care îi spune clasificatorului tău ce reguli să urmeze pe măsură ce își formează predicția pentru un punct de date de exemplu.
Pur și simplu începi de la rădăcină, luând în considerare valorile caracteristicilor la fiecare nod și urmând ramura corespunzătoare în josul arborelui. Când ajungi la o frunză, predicția pe care o dai este scrisă pe nodul frunzei. Este atât de simplu.
- Primul exemplu: să presupunem că avem un tânăr de 24 de ani, student la Psihologie. Vrem să știm dacă este probabil să joace jocuri video. Arborele decizional din Figura 27.1 ne spune să luăm în considerare mai întâi specializarea lui, deoarece aceasta este rădăcina. Acum, deoarece specializarea acestui tip este PSYC, luăm ramura din stânga și am terminat imediat: am ajuns deja la o frunză. Predicția noastră pentru acest tip va fi Nu, probabil că nu joacă jocuri video.
- Al doilea exemplu: avem un tânăr de 18 ani, student la Matematică, care nu se identifică cu niciunul dintre genurile binare. Începând din nou de la rădăcină, urmăm acum ramura din mijloc pentru MATH. Acum, ne uităm la sexul persoanei. Deoarece este 0, urmăm ramura din dreapta și facem o predicție de Da: prezicem că joacă jocuri video.
- Al treilea exemplu: avem acum o tânără de 22 de ani, studentă la Informatică. Credem că ar juca jocuri video? Rădăcina ne spune să ne uităm mai întâi la specializarea ei, ceea ce înseamnă că mergem la dreapta; apoi ne uităm la vârsta ei și, din moment ce este pozitiv în vârstă, mergem din nou la dreapta; și, în final, sexul ei ne spune să prezicem Nu, probabil că nu este o jucătoare.
Majoritatea studenților consideră acest proces foarte simplu. În capitolul următor, vom analiza două întrebări cheie: în primul rând, cum să transformăm o diagramă precum Figura 27.1 în cod Python? Și în al doilea rând, care este cea mai bună modalitate de a crea un arbore bun – adică unul care face cât mai multe predicții reușite posibil?
[1] Credeți sau nu, va veni un moment în viața voastră când 22 de ani nu vor mai părea nici pe departe „bătrâni”. Pentru studenții de licență, însă, înțeleg de ce 22 de ani ar părea cam gri, în ciuda cântecului lui Taylor Swift.
Sursa: Stephen Davies, The Crystal Ball – Instruction Manual, Vol. 1: Introduction to Data Science, v. 1.1. Copyright © 2021 Stephen Davies. Licența CC BY-SA 4.0. Traducere și adaptare: Nicolae Sfetcu. © 2024 MultiMedia Publishing, Introducere în Știința Datelor, Volumul 1
Descoperă mai multe la MultiMedia
Abonează-te ca să primești ultimele articole prin email.




Lasă un răspuns